问题标签 [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.

0 投票
1 回答
707 浏览

x11 - XCB 事件循环没有收到任何事件

我正在 Firefox 中制作插件,所以我有一个 ChromeWorker - 这是一个特权 WebWorker。这只是主线程之外的一个线程。

在这里我没有代码,但这个(修改使其看起来不像 js-ctypes [这是插件的语言])

在启动时我运行这段代码,conn是一个全局变量:

然后我以 200 毫秒的间隔运行它:

然而evt,总是null,我从来没有得到任何事件。我的目标是获取系统上的所有事件。

任何人都知道是什么导致如此简单的事情无法工作?

我努力了

但这并没有解决它:(

我可以让它工作的唯一方法是做xcb_create_window xcb_map_window 但是我只得到在这个创建的窗口中发生的事件。

0 投票
1 回答
2153 浏览

c++ - 使用 Qt5 处理 X11 事件

我正在将我的应用程序从 Qt4 移植到 Qt5。

据我所知,Qt5 不再支持处理 Xlib 事件,而是使用 XCB 事件(事件处理程序获取xcb_generic_event_t对象)。但是spnav我使用的库仅支持 X11 事件(它解析XEvent对象以检索必要的信息)。是否可以在 Qt5 中处理 X11 事件或转换xcb_generic_event_tXEvent

在 Qt4 代码看起来像:

0 投票
1 回答
511 浏览

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

0 投票
1 回答
1939 浏览

xcb - XCB 获取所有显示器及其 x、y 坐标

到目前为止,我已经拥有了所有显示器。监视器是屏幕。所以我所做的是:

这给了我宽度和高度。然而,我得到 x 和 y 是至关重要的。是在做得到x和yxcb_get_window_attributes_cookie_tscreen->root路上吗?

我在这里阅读 - http://www.linuxhowtos.org/manpages/3/xcb_get_window_attributes_unchecked.htm - 但没有给出 x/y 坐标。

0 投票
1 回答
200 浏览

xcb - Windows 覆盖所有屏幕 - 甚至是 struts - 全屏失败

我创建了两个监视器。我创建了两个窗口。我把它们移到不同的显示器上,然后全屏显示。现在,当窗口具有焦点时,所有保留的“支柱”(我认为它们被称为)都被覆盖了。但是,当窗口没有焦点时,后面的“支柱”会显示在窗口上方。

无论如何,是否可以暂时使我的窗口最高(甚至在所有支柱上)。我确实将我的窗户设置为始终在顶部。

0 投票
1 回答
44 浏览

xcb - reply_t vs request_t - 交替传递它们?

我遇到了 XCB 的问题。我不明白*_reply_tvs*_request_t类型之间的区别。

似乎*_reply_t是 代替 传递的*_response_t,但是结构非常不同。

例如:

所以现在reply*_reply_t. 但现在我需要使用xcb_randr_get_screen_resources_current_outputswhich 期望第一个参数是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

0 投票
2 回答
931 浏览

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 的通用代码,而不会弄乱。

0 投票
1 回答
1126 浏览

qt - 使用类或名称从 xcb 获取窗口 ID

我想使用 Qt 的QWindow::fromWinID功能将小部件绘制到外部窗口上(希望这会起作用)。

不幸的是,我需要在具有特定名称/类的窗口上绘图(我可以使用 xwininfo 和 xprop 显示它)。我能找到的唯一代码是在 xwininfo 和 xprop 的源代码中,但它似乎是一堆不必要的代码来做一件简单的事情:找到某个属性等于某个字符串的窗口,并返回它的窗口 ID供 Qt 使用。不幸的是,我对 XCB 非常精通,不知道如何开始。

如果没有 200 行代码,我怎么能做到这一点?

0 投票
1 回答
760 浏览

python - python:使用 XResQueryClientIds 将 PID 转换为 X11 窗口 ID

注意:这是对What process created this X11 window的回答的延续?来自 unix.stackexchange。该答案提到XResQueryClientIdsX-Resource v1.2 extension。我想知道如何使用它。

如何使用python 的 xcffib 模块查找与提供的 PID 关联的所有 X11 窗口 ID(假设没有竞争条件;没有创建或销毁窗口或进程)。

我对 X11 了解不多,XCB API 文档似乎不完整,并且自动生成的 xcffib python 绑定没有文档记录。根据我收集的信息,我需要:

  1. 创建连接:xcb_connect
  2. 获取扩展名: ?undocumented?
  3. 查询分机:? xcb_get_extension_data提到“?QueryExtension 请求”
  4. 获取查询响应:xcb_get_extension_data
  5. 使用扩展文档协议存根 API来解压响应。
0 投票
0 回答
785 浏览

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 和剪贴板上有任何材料吗?谢谢