问题标签 [xcb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
x11 - XCB 事件循环没有收到任何事件
我正在 Firefox 中制作插件,所以我有一个 ChromeWorker - 这是一个特权 WebWorker。这只是主线程之外的一个线程。
在这里我没有代码,但这个(修改使其看起来不像 js-ctypes [这是插件的语言])
在启动时我运行这段代码,conn
是一个全局变量:
然后我以 200 毫秒的间隔运行它:
然而evt
,总是null
,我从来没有得到任何事件。我的目标是获取系统上的所有事件。
任何人都知道是什么导致如此简单的事情无法工作?
我努力了
但这并没有解决它:(
我可以让它工作的唯一方法是做xcb_create_window
xcb_map_window
但是我只得到在这个创建的窗口中发生的事件。
c++ - 使用 Qt5 处理 X11 事件
我正在将我的应用程序从 Qt4 移植到 Qt5。
据我所知,Qt5 不再支持处理 Xlib 事件,而是使用 XCB 事件(事件处理程序获取xcb_generic_event_t
对象)。但是spnav
我使用的库仅支持 X11 事件(它解析XEvent
对象以检索必要的信息)。是否可以在 Qt5 中处理 X11 事件或转换xcb_generic_event_t
为XEvent
?
在 Qt4 代码看起来像:
x11 - XCB equivalent of XkbSetDetectableAutoRepeat
I was running code from a separate thread, so couldn't call any Xlib functions, I can only call XCB. I was wondering what the equivalent for XkbSetDetectableAutoRepeat
would be?
Thanks
xcb - XCB 获取所有显示器及其 x、y 坐标
到目前为止,我已经拥有了所有显示器。监视器是屏幕。所以我所做的是:
这给了我宽度和高度。然而,我得到 x 和 y 是至关重要的。是在做得到x和yxcb_get_window_attributes_cookie_t
的screen->root
路上吗?
我在这里阅读 - http://www.linuxhowtos.org/manpages/3/xcb_get_window_attributes_unchecked.htm - 但没有给出 x/y 坐标。
xcb - Windows 覆盖所有屏幕 - 甚至是 struts - 全屏失败
我创建了两个监视器。我创建了两个窗口。我把它们移到不同的显示器上,然后全屏显示。现在,当窗口具有焦点时,所有保留的“支柱”(我认为它们被称为)都被覆盖了。但是,当窗口没有焦点时,后面的“支柱”会显示在窗口上方。
无论如何,是否可以暂时使我的窗口最高(甚至在所有支柱上)。我确实将我的窗户设置为始终在顶部。
xcb - reply_t vs request_t - 交替传递它们?
我遇到了 XCB 的问题。我不明白*_reply_t
vs*_request_t
类型之间的区别。
似乎*_reply_t
是 代替 传递的*_response_t
,但是结构非常不同。
例如:
所以现在reply
是*_reply_t
. 但现在我需要使用xcb_randr_get_screen_resources_current_outputs
which 期望第一个参数是xcb_randr_get_screen_resources_current_request_t
这里的文档的类型:
http://www.linuxhowtos.org/manpages/3/xcb_randr_get_screen_resources_current_outputs.htm
但是,第一次调用的响应是xcb_randr_get_screen_resources_current_reply_t
( *_reply_t
) 类型的。如何在不强制转换的情况下将其传递给输出调用?每个文档的结构完全不同:
并且 的结构*_request_t
不在我从这里的源代码中获得的文档中:
https://xcb.freedesktop.org/manual/randr_8h_source.html#l00896
我做 ctypes 所以我必须事先声明我要传入的类型作为方法的签名。所以我很困惑一个完全不同的结构(reply
)是如何进入第二个结构的调用的request
。
c - Wayland、Xlib、XCB、MIR 窗口系统的预处理器符号
在 Vulkan 文档中,我们有以下关于 WSI 平台的内容:
Vulkan API 没有定义任何类型的平台对象。定义了特定于平台的 WSI 扩展,其中包含使用 WSI 的特定于平台的功能。这些扩展的使用受到预处理器符号的保护。
• VK_USE_PLATFORM_ANDROID_KHR - Android
• VK_USE_PLATFORM_MIR_KHR - 米尔
• VK_USE_PLATFORM_WAYLAND_KHR - 韦兰
• VK_USE_PLATFORM_WIN32_KHR - Microsoft Windows
• VK_USE_PLATFORM_XCB_KHR - X 窗口系统,使用 XCB 库
• VK_USE_PLATFORM_XLIB_KHR - X 窗口系统,使用 Xlib 库
我知道我应该选择一个平台或一个窗口系统,然后在编译之前定义正确的符号。在针对 Android 或 Windows 进行编译时,我可以编写如下内容:
到目前为止,好的。Android 和 Windows 都有自己独特的窗口系统,这已经足够好了。但是 Linux 有几个窗口系统——Xlib、XCB、Wayland 和 MIR,afaik。
我想知道是否有一个 C/C++预处理器符号可能有助于了解该环境使用哪个窗口系统,因此可以编写能够处理每个 API 的通用代码,而不会弄乱。
qt - 使用类或名称从 xcb 获取窗口 ID
我想使用 Qt 的QWindow::fromWinID
功能将小部件绘制到外部窗口上(希望这会起作用)。
不幸的是,我需要在具有特定名称/类的窗口上绘图(我可以使用 xwininfo 和 xprop 显示它)。我能找到的唯一代码是在 xwininfo 和 xprop 的源代码中,但它似乎是一堆不必要的代码来做一件简单的事情:找到某个属性等于某个字符串的窗口,并返回它的窗口 ID供 Qt 使用。不幸的是,我对 XCB 非常精通,不知道如何开始。
如果没有 200 行代码,我怎么能做到这一点?
python - python:使用 XResQueryClientIds 将 PID 转换为 X11 窗口 ID
注意:这是对What process created this X11 window的回答的延续?来自 unix.stackexchange。该答案提到XResQueryClientIds
了X-Resource v1.2 extension。我想知道如何使用它。
如何使用python 的 xcffib 模块查找与提供的 PID 关联的所有 X11 窗口 ID(假设没有竞争条件;没有创建或销毁窗口或进程)。
我对 X11 了解不多,XCB API 文档似乎不完整,并且自动生成的 xcffib python 绑定没有文档记录。根据我收集的信息,我需要:
xcb - 剪贴板和 XCB
我试图检查剪贴板上是否有任何文件,如果有,则获取它们的完整文件路径。我在这里帮助这个用户 - http://forums.mozillazine.org/viewtopic.php?f=19&t=3003617 - 我为他提供了 Windows 和 Mac 解决方案。但我找不到任何关于剪贴板与 XCB 交互的文档。我很抱歉这篇文章中没有代码,但我找不到任何代码。
我发现的唯一东西是在这里:
http://xpt.sourceforge.net/techdocs/nix/x/general/xwin12-Xclipboard/single/
其中有一段说:
Xcb 提供对每个 X 服务器中内置的剪切缓冲区的访问。它允许通过命令行或鼠标以点击方式操作缓冲区。缓冲区可以用作存储和检索任意数据片段的笔,因此可以保存任意数量的不同数据片段并在以后调用。该程序主要设计用于文本数据。
然后它链接到一个断开的链接: ftp: //ftp.x.org/contrib/utilities/xcb-2.3.README
有人在 XCB 和剪贴板上有任何材料吗?谢谢