c++ - 如何在 C++ 中获得所有连接到 Linux 机器的显示器的组合分辨率?
问题描述
我发现这个问题相关,但没有直接回答我的问题,即:
如何在 C++ 中获得所有连接到 Linux 机器的显示器的组合分辨率?(所有显示器周围的矩形,以放置者为准)
我对 C++ 知之甚少,但我已经编写了这段代码,不确定它是否正确地完成了这项工作,因为我没有多个显示器布局,我只是在编写一些必须考虑到所有连接的显示器的东西.
我的代码摘录如下:
#include <X11/Xlib.h>
#include <iostream>
Display * my_display = XOpenDisplay(NULL);
Screen * my_screen = XDefaultScreenOfDisplay(my_display);
const int screen_width = my_screen->width;
const int screen_height = my_screen->height;
if (x_coord >= screen_width)
{
std::cerr
<< "X coord bigger than the screen width\n";
return 1;
}
if (y_coord >= screen_height)
{
std::cerr
<< "Y coord bigger than the screen height\n";
return 1;
}
谢谢你。
解决方案
一种可能的方法似乎是(调用答案中未包含的 shell 命令,但应该非常简单):
xdpyinfo | awk '/dimensions:/ { print $2 }'
评论:在多显示器设置中,这将显示包含所有显示器的边界框的尺寸。
推荐阅读
- mypy - 为什么 mypy 不从 @overload 推断函数注释?
- laravel - Laravel API 条件关系
- java - 在 REDIS 缓存中/从 REDIS 缓存中保存/检索列表或记录
- javascript - 验证集成到 react.js 项目中
- android - 更新配置文件活动后,如何保持相同的活动并允许其他活动根据数据指向不同的活动?
- c# - 使用 C# 浏览器语言打开网站
- regex - 删除 .bat 文件中的一段文件名
- javascript - 如何使用节点 js 向 firebase 添加数据?
- node.js - NodeJS不正确的`console.log`日期值
- python - Pandas:如何将日志文件换行合并到前一行/行的最后一列?