Articles of xorg

xlib是否有一个活动的窗口事件?

我正在尝试编写一个程序来跟踪活动窗口使用Xlib时的变化。 我很难找出最好的方法来做到这一点。 这些是我的想法到目前为止: 每秒钟使用_NET_ACTIVE_WINDOW来获取活动窗口,如果它已经改变,然后运行事件的相关代码。 获取所有窗口的列表,并听取他们的重点事件。 我将不得不弄清楚如何保持最新的打开窗口列表。 他们是一个更简单/更好的方法? 我是用Xlib编程的新手。

为什么evdev在/ usr / share / X11 / xkb / rules中与evdev.lst不匹配?

看来evdev.lst中列出的一些setxkbmap选项实际上并不支持evdev文件。 例如ctrl:nocaps支持,但ctrl:swap_lalt_lctl不是,如 $ grep 'ctrl:nocaps' /usr/share/X11/xkb/rules/evdev{,.lst} /usr/share/X11/xkb/rules/evdev: ctrl:nocaps = +ctrl(nocaps) /usr/share/X11/xkb/rules/evdev.lst: ctrl:nocaps Caps Lock as Ctrl $ grep 'ctrl:swap_lalt_lctl_lwin' /usr/share/X11/xkb/rules/evdev{,.lst} /usr/share/X11/xkb/rules/evdev.lst: ctrl:swap_lalt_lctl_lwin Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt $ 这使我无法使用缺less的选项,详见我的早期问题为什么一些setxkbmap选项被忽略? 作为一个额外的问题,有没有什么方法可以让我支持这些缺失的选项呢?

如何从用户代码移动鼠标光标?

我的数据来自arduino(从传感器获取)。 我想通过用户程序处理数据(从/ dev / ttyUSB0读取数据后)。 之后,我需要使用程序的输出来控制鼠标光标。 (我现在真的很想避免编写一个内核驱动程序。) 推荐的方法是什么(在Linux环境下)? 也许一个库的顶部X …或一些工具/脚本我可以直接pipe道数据到?

如何创build一个英特尔graphics“监视器插入”的callback?

我有一个英特尔graphicseeepc。 我想钩上一个脚本,通过VGA插入显示器事件。 怎么做?

xwindow剪贴板的机制

任何人都可以向我解释xwindow剪贴板的机制吗? 例如,如果我从gedit中打开一个文件并使用ctrl + c复制这个文件的内容。 然后我打开vim并使用Ctrl + V将内容粘贴到新打开的文件中。 我知道它将使用xwindow的缓冲区来存储内容。 但我很好奇它是如何在系统级别工作的。 更具体地说,底层的linux内核需要如何处理这个复制粘贴操作? 是否有与此操作相关的系统调用? 谢谢

每次按下某个键(不pipe哪个窗口都有焦点),函数callback?

我想在Linux(Ubuntu Linux 9.10)上编写一个程序(在python中),它将logging我每秒/分钟的按键次数。 这包括正常的字母键和控制/移位/空格等。 有没有办法挂钩到X,以便我可以说“当按下一个键时调用这个函数?”。 由于我想在正常工作的时候在后台运行这个函数,因此这个函数调用必须能够知道所有程序的所有按键。 我想这有点像键盘logging。 这只是一个私人的事情,所以我不在乎使它在Windows / OSX上工作,我不关心什么时候有人喜欢远程X会话等。

用bash脚本发送keycode到Xorg + wine

如何发送键码到当前正在运行的应用程序在Linux下运行的葡萄酒? 我希望它是在简单的情况下。

没有X的硬件加速

我想知道是否有可能没有Xorg和DDX驱动程序的graphics硬件加速,只有内核模块和其余的用户空间驱动程序。 我问这是因为我开始在embedded式平台上开发(比如beagleboard或者更为粗略的是德州仪器集成GPU的ARM芯片),而且我会在没有graphics服务器开销的情况下获得硬件加速(这不是需要)。 如果是的话,怎么样? 我在想OpenGL或OpengGLES的实现,或者Qtembeddedhttp://harmattan-dev.nokia.com/docs/library/html/qt4/qt-embeddedlinux-accel.html 而TI提供了大量的文档,但仍然不清楚http://processors.wiki.ti.com/index.php/Sitara_Linux_Software_Developer%E2%80%99s_Guide 谢谢。

从udev启动的脚本不再有DISPLAY访问?

当我插入外部驱动器时,我有一个从udev运行的脚本。 它一直工作。 但从Linux 3.8 / Xorg 1.12 / Mint 14 ( Ubuntu 12.10兼容)升级到Linux 3.11 / Xorg 1.14 / Mint 16 ( Ubuntu 13.10兼容)后,它不再工作。 该脚本仍然运行,但没有任何需要显示的命令工作。 我想通过退出udev守护进程并手动运行udevd –debug进行详细输出(更多下面)。 这个脚本用于Mint 14 / 12.10 : export DISPLAY=:0 UUID=$1 DEV=$2 notify-send -t 700 "mounting $DEV ($UUID)" gnome-terminal -t "Backing up home…" -x rsync long line of data zenity –warning –text="Done." […]

如何获取和同步所有X11窗口的完整列表?

我想监视X11下所有打开的窗口。 目前,我正在做这个如下: 最初通过从根窗口recursion调用XQueryTree来遍历整个树 在整个桌面上监听子结构更改: XSelectInput( display, root_window, SubstructureNotifyMask | PropertyChangeMask ) 处理所有的MapNotify,UnmapNotify和DestroyNotify事件,更新我自己的窗口列表 我主要担心第1点。在recursion过程中,XQueryTree会被多次调用。 有什么方法可以确保树在此期间不会改变? 换句话说,要在一个时间点获得整个树的“快照”? 另外,我注意到在一些X11系统下,并不是所有的事件都能正确地到达。 例如,在桌面上打开新窗口时,该窗口的MapNotify可能永远不会到达我的监视应用程序。 怎么会这样? 在抵达之前是否有可能被扔掉? 更新: 我写了一个小程序来监视根窗口上的X事件(见下文)。 现在,当我运行这个程序,并启动并退出xcalc,我得到以下输出: Reparented: 0x4a0005b to 0x1001e40 Mapped : 0x1001e40 Destroyed : 0x1001e40 而已。 我从来没有被通知被销毁的真正的窗口(0x4a0005b)。 甚至没有被映射! 谁能告诉我为什么不呢? SubStructureNotifyMask只会导致直接子窗口的事件被发送而不是整个子树? 顺便说一下,Compiz运行时,这显然不会发生。 然后没有重新完成: Mapped : 0x4a0005b Mapped : 0x4e00233 Destroyed : 0x4a0005b Destroyed : 0x4e00233 监测scheme来源: #include <X11/Xlib.h> #include […]