- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我想知道如何获得我系统上所有 Xorg 显示的列表,以及与每个显示关联的屏幕列表。我花了一些时间查看 Xlib 文档,但没能找到满足我要求的函数。请假设除了符合 POSIX 规范的操作系统和 X(例如,没有 GTK)之外,我没有其他依赖项。如果假设这些最小的依赖关系不可能实现我的要求,那么使用其他库的解决方案就可以了。
非常感谢您的帮助!
最佳答案
我知道的获取显示列表的唯一方法是检查 /tmp/.X11-unix
目录。
完成后,您可以使用 Xlib 查询每个显示器以获取更多信息。
例如:
#include <stdio.h>
#include <dirent.h>
#include <string.h>
#include <X11/Xlib.h>
int main(void) {
DIR* d = opendir("/tmp/.X11-unix");
if (d != NULL) {
struct dirent *dr;
while ((dr = readdir(d)) != NULL) {
if (dr->d_name[0] != 'X')
continue;
char display_name[64] = ":";
strcat(display_name, dr->d_name + 1);
Display *disp = XOpenDisplay(display_name);
if (disp != NULL) {
int count = XScreenCount(disp);
printf("Display %s has %d screens\n",
display_name, count);
int i;
for (i=0; i<count; i++)
printf(" %d: %dx%d\n",
i, XDisplayWidth(disp, i), XDisplayHeight(disp, i));
XCloseDisplay(disp);
}
}
closedir(d);
}
return 0;
}
运行上面的代码会给我当前显示/屏幕的输出:
Display :0 has 1 screens
0: 3046x1050
Display :1 has 2 screens
0: 1366x768
1: 1680x1050
再也找不到比这更好的列出 X 显示器的方法了。我非常想知道是否存在更好的选择。
关于c - 获取所有 Xorg 显示的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11367354/
VendorString() 不起作用,它始终是 Sun Microsystems,即使它是为 Solaris 构建的 Xorg。 最佳答案 $ xdpyinfo |供应商 供应商字符串:X.Org
我需要获取鼠标光标下方像素的十六进制代码颜色。有很多精美的 GUI 工具可以解决此任务,但我需要一种简单的命令行方式来获取颜色,以便我可以在 shell 脚本中使用该解决方案。 可能我可以使用 Ima
在过去的 2 个小时里,我一直在努力寻找 Xorg API 文档中与“选择”相关的任何内容。我正在寻找一种方法来检索 Xorg PRIMARY 选择(或剪贴板,如果你喜欢的话)的内容。 我找到了头文件
当前运行:Arch linux 4.0.7-2 我已经使用 X11 一段时间了,没有遇到任何问题。直到最近重新启动后出现以下错误:No screens found 。我查了类似的问题,但没有一个有所需
我需要为虚拟设备编写一个 xinput 驱动程序,例如http://cgit.freedesktop.org/~whot/xf86-input-random .设备已连接到 LAN。该设备的客户端是用
我正在为 Xorg(X11、Linux)编写一个简单的应用程序,它应该有一个全屏窗口。 它似乎工作得很好,窗口管理器忽略了窗口,因此它被正确定位为全屏。但是有一个问题,事件循环永远不会获取任何 Key
我正在编写一个需要监控XServer 的屏幕分辨率的程序。频繁地。为此,我每秒都在使用 XOpenDisplay以获得对实际设置的新引用。到目前为止,一切都很好。 我现在面临的问题是 XServer在
我下载并编译了最新的英特尔视频驱动程序,因为我的似乎有问题,我安装前缀为/usr/local。然后我添加了适当的 Section "Device" Identifier "devname" D
显然,这些信息可以在 xorg.conf 中找到,所以我可以尝试解析这个文件。但是有没有办法仅使用 Xlib 调用(+ 扩展)来实现这一点? 谢谢,PMJ 最佳答案 这一定是可能的,因为我知道程序xd
我正在使用 Xlib 和 GLX 在 Linux 中编写一个 OpenGL 应用程序。我想使用鼠标指针在窗口中绘制和拖动对象。但是无论我使用什么方法绘制或移动图形对象,实际鼠标指针位置(由 X 服务器
我正在尝试使用 python 获取窗口图标名称,以便在基于 pyclutter 的任务栏中使用。我已经通过 wnck 获得了 XID,但 wnck 似乎只能给我一个 gtk.gdk.Pixbuf,这对
是否有任何 API 或文档可以帮助解析 X 服务器的授权文件? 我正在使用 xcb 连接到显示器。它接受用于授权信息的 xcb_auth_info_t 结构。但是,我找不到有关如何构建此结构的任何信息
我正在尝试编译 xkbcomp(来自 xorg 应用程序)但出现以下错误: warning: libxcb.so.1, needed by /lib/libX11.so, not found (try
我有一个带有 GPIO 显示器的 Raspberry Pi。我目前在/dev/fb1 将其设置为帧缓冲设备。有没有办法让它成为 X windows 的默认显示器或主显示器?我最终试图为其绘制图形,我最
我有一个运行 X 的主用户:username1。我有另一个用户帐户,我在其中做了很多工作,username2。 我该怎么做才能将命令的输出从 userame2 复制到 username1s 剪贴板。
我没有使用像 Gnome 或 KDE 这样的大型 DE,也没有使用 xset 命令更改键盘速率: xset r rate 250 70 但是在系统挂起后(通过 pm-suspend)这个设置丢失了,因
谁能告诉我一个地方(PDF),在那里我可以找到关于 Xserver(Xorg)的详细描述,例如 DIX 层、操作系统层等。 具体来说,我正在寻找如何从 Xserver(Xorg) 内部获取所有事件客户
我想知道如何获得我系统上所有 Xorg 显示的列表,以及与每个显示关联的屏幕列表。我花了一些时间查看 Xlib 文档,但没能找到满足我要求的函数。请假设除了符合 POSIX 规范的操作系统和 X(例如
为什么下面的 X11/Xorg 代码在 Ubuntu 18.04 下没有隐藏鼠标光标?如果这不是这样做的方法,那是什么?是否缺少一些依赖项/库/.dev 包? 我的直觉说这可能是 Ubuntu(或 D
我想在 Xorg 服务器模块上工作,我想知道如何在运行时重新加载该模块。 此外,也许有人可以给我一些关于执行此操作的好提示(因为我以前从未使用过 Xorg 服务器代码)。 特别是我正在运行 Xorg
我是一名优秀的程序员,十分优秀!