标签: xlib

获取最顶层窗口的pid和详细信息

有谁知道如何获得顶部活动窗口的PID,然后如何使用PID获取窗口的属性?我指的是流程名称,程序名称等属性.

我在Linux下使用Qt(Ubuntu 9.10).

linux qt pid xlib

17
推荐指数
5
解决办法
2万
查看次数

你如何用pip安装Python Xlib?

"Python Xlib"(http://pypi.python.org/pypi/Python%20Xlib)是一个用于处理xlib的低级python库.我通过apt安装在我的Ubuntu Linux机器上,即sudo aptitude install python-xlib.但是可以pip在virtualenv中安装吗?我正在编写一个使用xlib的软件包,并希望能够install_requires在我的脑中包含一行setup.py.

由于包是PyPI上(并出现在的成绩pip search xlib),我想pip install …下面的包名,但没有工作:python\ xlib,python-xlib,Python Xlib,Python-Xlib,Python%20Xlib,但没有奏效.`是否可以用pip安装python xlib?

python pip xlib

17
推荐指数
1
解决办法
1万
查看次数

编写窗口管理器的现代方法

我正在尝试写一个窗口管理器.(实际上,我已经编写了一个操作系统和编译器,但这不是重点.)

XLib和xcb并不是完全令人讨厌的,至少不是因为win32标准,但它们肯定是非常古老的,并且不能很好地利用体面的抽象来让我的生活变得更轻松.不仅如此,但现代高级语言明显缺乏良好的绑定.

我的问题是:这几天所有这些低级别的东西真的很必要吗?是否存在能够为我封装所有令人讨厌的东西的库?我有一个模糊的记忆,启蒙人已经做过这样的事情,却找不到任何东西.或者像GDK这样的现代小部件库是否具有足够的功能,我不需要触及Xlib层?

任何带有Java绑定的库都特别有意义......

x11 window-managers xlib

16
推荐指数
2
解决办法
6965
查看次数

在没有xrandr的情况下获取Python中每个显示的显示计数和分辨率

我正在运行Ubuntu,我想获得附加显示器的数量,它们当前的分辨率,如果可能的话,我们想要相互之间的位置.因为我不喜欢解析xrandr的控制台输出 - 至少不是我不需要 - 我想用Python-XLib或类似的Pythonic方法来做.

这是我的显示配置的xrandr输出:

$ xrandr
Screen 0: minimum 320 x 200, current 2960 x 1050, maximum 8192 x 8192
DVI-0 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 473mm x 296mm
   1680x1050      60.0*+
   1400x1050      60.0  
   1280x1024      75.0     60.0  
   1440x900       59.9  
   1280x960       75.0     60.0  
   1152x864       75.0  
   1280x720       75.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   640x480        72.8     75.0     66.7     60.0  
   720x400        70.1  
VGA-0 connected 1280x1024+1680+26 (normal left inverted …
Run Code Online (Sandbox Code Playgroud)

python xlib

14
推荐指数
2
解决办法
9381
查看次数

在不捕获键盘事件的情况下聆听键盘事件?

我正在编写一个命令行应用程序,它在X Windows中侦听Control key release事件,并在检测到它时向另一个进程发出警报.

作为GNU/Linux的新手,我宁愿避免与GCC混淆,因此我正在寻找基于脚本的解决方案.因为我知道一点Python,看起来很自然地去寻找基于Python的解决方案,在清理了互联网以获取示例并阅读Python Xlib文档后,我将这些程序放在一起工作,但需要注意的是:陷阱事件而不仅仅是听取它们(我的意思是这些事件不再传递给它们首先被引导到的应用程序).

我通过运行"xev"来跟踪控制键代码.由于我已经重新映射了我的修改键,因此在您的系统上它们可能会有所不同.

为了简单起见,我省略了处理外部流程的代码.

谢谢您的帮助.

软件:

  • Python 2.7.2

  • Python Xlib 0.15 RC1

  • Perl v5.10.1

  • Debian GNU/Linux版本:6.0.3

  • 内核版本:Linux debian 2.6.32-5-686

编辑:我无法弄清楚的是键盘事件不会被捕获,除非它们被处理(在我的程序中,这意味着行'打印'KeyRelease"'被执行).因为在我的代码中我没有在Xlib或事件对象上调用任何方法,所以我不明白处理的区别在哪里.

EDIT2:除了使用Xlib之外,还欢迎提供有关替代解决方案的建议.

EDIT3:我也知道Perl,并且对Perl库的建议也很受欢迎,只要它们不需要最新版本的系统库,因为Debian在其存储库中可用的软件包方面臭名昭着,并且编译并且如果它们有很多依赖项,那么安装最新版本的库可能很困难(我已经尝试安装PyGTK,但在未能引用我安装的最新GLib后放弃了).

    #!/usr/bin/env python

    from Xlib.display import Display
    from Xlib import X

    Control_R  = 64 # Keycode for right Control.
    Control_L  = 108 # Keycode for left Control.
    keycodes = [Control_R, Control_L] # Keycodes we are listening for.

    # Handle X events.
    def handle_event(event):
        # Let us know whether this event is about a Key Release …
Run Code Online (Sandbox Code Playgroud)

python perl xlib keyboard-events keyrelease

14
推荐指数
2
解决办法
5607
查看次数

如何将32位图像上传到服务器端像素图

我正在尝试从客户端缓冲区创建服务器端RGBA像素图.CreatePixmap和CreateImage适用于32位和24位,但XPutImage导致服务器返回匹配错误

X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  72 (X_PutImage)
  Serial number of failed request:  8
  Current serial number in output stream:  8
Run Code Online (Sandbox Code Playgroud)

服务器支持32位pixmaps(xdpyinfo输出:https://gist.github.com/2582961 ).在ubuntu 12.04(X.Org版本:1.11.3)和OSX与X.app(X.Org版本:1.10.3)上的行为相同

为什么以下代码失败?

#include     <stdlib.h>
#include     <X11/Xlib.h>

int main(int argc, char **argv)
{
    int width = 100;
    int height = 100;
    int depth = 32; // works fine with depth = 24
    int bitmap_pad = 32; // 32 for 24 and 32 bpp, 16, for 15&16
    int …
Run Code Online (Sandbox Code Playgroud)

c x11 xlib

14
推荐指数
2
解决办法
7125
查看次数

如何使用xlib识别顶级X11窗口?

我正在尝试在X11会话中获取所有顶级桌面窗口的列表.基本上,我想获得窗口管理器应用程序切换UI中显示的所有窗口的列表(通常在用户按下ALT + TAB时打开).

我之前从未做过任何X11编程,但到目前为止,我已经设法通过整个窗口列表进行枚举,代码看起来像这样:

void CSoftwareInfoLinux::enumerateWindows(Display *display, Window rootWindow)
{
    Window parent;
    Window *children;
    Window *child;
    quint32 nNumChildren;

    XTextProperty wmName;
    XTextProperty wmCommand;

    int status = XGetWMName(display, rootWindow, &wmName);
    if (status && wmName.value && wmName.nitems)
    {
        int i;
        char **list;
        status = XmbTextPropertyToTextList(display, &wmName, &list, &i);
        if (status >= Success && i && *list)
        {
            qDebug() << "Found window with name:" << (char*) *list;
        }

        status = XGetCommand(display, rootWindow, &list, &i);
        if (status >= Success && i && *list)
        {
            qDebug() …
Run Code Online (Sandbox Code Playgroud)

c++ x11 xlib icccm ewmh

13
推荐指数
2
解决办法
1万
查看次数

单击透明xlib窗口

我有一个透明的,水印般的应用程序,用C语言写的XLib.目前,如果你点击应用程序的任何地方没有任何反应,但我希望它将鼠标输入传递给它下面的任何东西.例如,如果单击X关闭应用程序下方的窗口,它应该关闭应用程序,而不是什么都不做.

c xlib

13
推荐指数
1
解决办法
1298
查看次数

不支持OpenGL GLX扩展

我在Ubuntu 10.04中安装了OpenGL和freeglut,它在10.04和10.10中运行良好.但是在我升级到11.04之后,我使用OpenGL开发的应用程序运行不正常.他们正在编译而没有错误,但是当我尝试执行它们时,我遇到了错误:

对于GLUT:

Xlib:  extension "GLX" missing on display ":0.0".
freeglut (./a.out): OpenGL GLX extension not supported by display ':0.0'
Run Code Online (Sandbox Code Playgroud)

对于OpenGL:

Xlib:  extension "GLX" missing on display ":0.0".
main: X server has no OpenGL GLX extension
Run Code Online (Sandbox Code Playgroud)

我试过的一些事情:

$glxgears
Xlib:  extension "GLX" missing on display ":0.0".
Error: couldn't get an RGB, Double-buffered visual


$glxinfo
name of display: :0.0
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension …
Run Code Online (Sandbox Code Playgroud)

opengl ubuntu glut xlib glx

12
推荐指数
2
解决办法
6万
查看次数

如何在Xlib应用程序中等待VSYNC?

我正在使用XWindow Drawable,Pixmap和XRender在屏幕上绘图.我可以看到有时闪烁.有没有办法等待VBLANK?我已经google了很多,感觉就像在森林里寻找一枚硬币.

没有OpenGL参与.它是Linux(Ubuntu).我可以使用(纳米)睡眠(),但需要知道什么时候绘制时间已经到了一些方法.

c++ linux x11 xlib vsync

12
推荐指数
1
解决办法
1227
查看次数

标签 统计

xlib ×10

x11 ×4

python ×3

c ×2

c++ ×2

linux ×2

ewmh ×1

glut ×1

glx ×1

icccm ×1

keyboard-events ×1

keyrelease ×1

opengl ×1

perl ×1

pid ×1

pip ×1

qt ×1

ubuntu ×1

vsync ×1

window-managers ×1