问题标签 [xrandr]

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 回答
2997 浏览

ubuntu - 使用 xrandr 自动将屏幕分辨率添加到 Ubuntu 14.04

我使用带有笔记本电脑和分辨率为 1600x900 的外部屏幕的 Ubuntu 14.04。在原始安装中,分辨率限制为 1024x768。所以我配置了一个在使用 xrandr 启动时自动运行的脚本:

当机器启动并连接 VGA 电缆时,它工作正常。当屏幕连接并且我启动或重新启动计算机时,会出现此错误:

无法将 CRTC 分配给输出:尝试 CRTC 63 CRTC 63 的模式:尝试模式 1600x900@60Hz,输出为 1600x900@60Hz(通过 0) 所选模式均不与可能的模式兼容:尝试 CRTC 63 CRTC 63 的模式:尝试模式 1024x768@60Hz,输出为 1600x900@60Hz(通过 0) CRTC 63:尝试模式 800x600@60Hz,输出为 1600x900@60Hz(通过 0) CRTC 63:尝试模式 800x600@56Hz,输出为 1600x900@60Hz(通过 0 ) CRTC 63:尝试模式 848x480@60Hz,输出为 1600x900@60Hz(通过 0) CRTC 63:尝试模式 640x480@60Hz,输出为 1600x900@60Hz(通过 0) CRTC 63:尝试模式 1024x768@60Hz,输出为 1600x900@ 60Hz(通过 1) CRTC 63:尝试模式 800x600@60Hz,输出为 1600x900@60Hz(通过 1) CRTC 63:尝试模式 800x600@56Hz,输出为 1600x900@60Hz(通过 1) CRTC 63:尝试模式 848x480@60Hz,输出为 1600x900@60Hz(通过 1) CRTC 63:尝试模式 640x480@60Hz,输出为 1600x900@60Hz(通过 1) CRTC 64 的尝试模式 ...

是否有解决方案可以在每次启动或重新启动时不连接和断开电缆的情况下使该脚本工作?

0 投票
2 回答
1502 浏览

xlib - 如何在linux中找到放置特定窗口的监视器的dpi?

当我的应用程序窗口根据目标监视器的底层 dpi 从一个监视器移动到另一个监视器时,我想更改字体大小。

我玩过 xrandr、xdpyinfo 和 xlib。我查看了源代码,但找不到关联放置窗口(窗口 ID)的监视器的方法。

Qt 有 QDesktopWidget,它提供物理 DpiX/Y,但仅(看起来)用于主监视器。

xrandr.h 包含提供 mm_width 和 mm_height 的 XRROutputInfo,但我如何才能连接到窗口 ID?

由于这个问题得到了一些关注,我想分享我的研究。我还没有找到完美的解决方案。看起来这是不可能的。

但是使用以下代码片段可能会对您有所帮助。这个想法是通过比较窗口位置来计算底层显示。如果位置大于第一个屏幕的分辨率,则必须是第二个显示器。很直接。

实际上有 2 个函数可以查询有关屏幕的资源:XRRGetScreenResourcesCurrent 和 XRRGetScreenResources。第一个返回一些缓存值,而后一个询问可能引入轮询的服务器。说明(搜索 RRGetScreenResources): https ://www.x.org/releases/X11R7.6/doc/randrproto/randrproto.txt

有人在计时时遇到了麻烦: https ://github.com/glfw/glfw/issues/347

XRRGetScreenResourcesCurrent:通常从 20 到 100 我们。h XRRGetScreenResources:通常从 13600 到 13700 us。

0 投票
1 回答
1034 浏览

c++ - 在Linux下以编程方式更改屏幕分辨率而不使用监视器?

我正在编写一个 GUI 程序,它将在 OS ( CentOS 6.6) 启动时执行。

分辨率配置在initGUI 程序部分编程,我现在的解决方案是获取显示器使用的分辨率集xrandr并解析结果并将其设置为候选之一,您可以在Preferences部分中选择其中之一GUI程序稍后。但是xrandr如果没有插入显示器就不会工作,对吧?

如果我没有将显示器插入盒子,这意味着我不知道一台显示器可以提供的分辨率设置(至少不是从xrandr),所以现在我想要的是,如果我打开计算机,GUI 程序将执行,稍后插入监视器后,我可以看到GUI程序已经加载到监视器中。

我的意思是1152x864 75.0Hz如果没有插入监视器,我希望使用一些命令或 API 在 GUI 程序初始化部分中固定分辨率(例如)?

有谁知道可用的commandsAPIs

0 投票
2 回答
1158 浏览

c - X11 - Xrandr 给了我假监视器

我试图找到所有监视器及其坐标(宽度w、高度h、x origin/top-left-mostx和 y origin/top-left-most y)并且正在使用此代码,它在某些系统上运行良好。但在其他系统上,我得到错误和重复的条目。如果我测试监视器是否为镜像,我能否避免这些重复/错误的监视器条目?如何测试它的镜像?

所以这是我的代码:

这会将其输出到日志中:

这是 JSON 格式的:

我真的只有两台显示器,一台是 1920x1200,一台是 1366x768。为什么所有其他条目以及如何进行测试以避免(而不是根据重复或 0 h/w 回想起来过滤掉)?

0 投票
1 回答
811 浏览

rgb - QNAP QTS HD-Station (TS-251) 设置 Full Range RGB 0-255 with Xrandr

如何将 QNAP HD-Station 配置为 Full Range RGB 0-255?

运行 QTS 4.1.4

0 投票
2 回答
2735 浏览

linux - Linux Mint 17.2 屏幕分辨率

我是 linux 的新手,并试图使用 DVI连接电视
http://www.cnet.com/products/samsung-ln-s325d/specs/ 。
问题:屏幕分辨率不好:(
我用 xrandr 命令尝试了很多东西,但最后,新模式不起作用(黑屏)。

这是终端:

从那里,

或系统设置 > 显示 >1368x768 (16:9)

只是给我一个黑屏说该模式不可用

我尝试了许多其他分辨率,但任何自定义分辨率都可以做到这一点。

有人有想法吗?谢谢!:)

编辑:

最后2个被添加

0 投票
0 回答
428 浏览

fedora - Fedora xrandr 无法打开外部 DP1(DisplayPort) 显示器

我的笔记本电脑是 T420,我的操作系统是 fedora 19,内核是 3.2 我有一个 VGA 和 DP(DisplayPort)。VGA效果很好。但是DP效果不好。DP在windows系统下运行良好。

当我使用“xrand -q”查询时,它无法检测到 DP。

[xiuxia@Mars ~]$ xrandr 屏幕0:最小320 x 200,当前3520 x 1080,最大8192 x 8192 LVDS1连接初级1600x900+0+0(正常左倒右x轴y轴)310mm x 174mm 1600x900 60.0*+ 1024x768 60.0
800x600 60.3 56.2
640x480 59.9
VGA1 connected 1920x1080+1600+0 (normal left inverted right x axis y axis) 531mm x 299mm 1920x1080 60.0*+ 1680x1050 60.0
1600x900 60.0
1280x1024 75.0 60.0
1280x800 59.8
1152x864 75.0
1280x720 60.0
1024x768 75.1 60.0
832x624 74.6
800x600 75.0 60.3
640x480 75.0 60.0
720x400 70.1

我用谷歌搜索,但我无法解决我的问题?我是否缺少驱动程序,那么驱动程序名称是什么?我对此感到沮丧,希望有好心人可以帮助我。

0 投票
1 回答
971 浏览

mouse - X11 将鼠标限制在可见区域

我目前正在运行带有 Cinnamon 的 Linux Mint 17.2。我有 2 台显示器。

当我在 Cinnamon 设置中将监视器设置为相邻时,鼠标可以自由移动通过监视器之间共享的边界,但无法逃脱可见区域。

也就是说,如果我将显示器设置为仅共享角落,则鼠标有效地锁定到当前显示器并且只能通过角落逃到另一个显示器。

但是,将监视器设置为不相邻允许鼠标在整个虚拟帧缓冲区中自由漫游,包括不可见区域。

我认为 Cinnamon 设置了一些控制此行为的标志,但是使用更改监视器位置xrandr具有相同的效果。

此外,即使没有窗口管理器,我Xorg也只从 . 开始,然后使用.xtermxrandr

当所有显示器都相邻时,究竟是什么阻止了鼠标离开可见区域?有没有办法覆盖这种行为?

能够控制这一点可能很有用,例如,每次尝试单击边界附近的东西时阻止鼠标离开监视器,而不运行一个繁忙的循环来监视鼠标并在需要时将其移回(并且通过使监视器相邻而不会使帧缓冲区大小加倍按角落)。

有了更多的控制,它可以用来让鼠标“不愿意”离开当前窗口,或者做其他有趣的事情。至少它可以重新实现这个东西,这样它就可以真正将鼠标锁定在 Chrome 浏览器或 OpenGL 游戏等应用程序的窗口上,而不仅仅是xterm诸如此类。

现在想起来,我什至可能会尝试实现它,如果它还没有实现,如果我找到了相关的代码。

0 投票
1 回答
1115 浏览

linux - 无法在 crontab 中执行 xrandr 命令(即使提供了 $DISPLAY arg)

我有以下脚本(/home/vitidn/Downloads/adjust_contrast.sh)来调整显示对比度:

如果我从 cmd 行运行但无法从 crontab 运行,它工作正常

它也有所有烫发:

我创建了一个包含以下内容的 crontab(带 sudo):

在 /tmp/adjust_contrast.output 中,脚本会相应地运行,但 xrandr otuput 的一部分在哪里找不到:

我怀疑它与许可有关,但仍然无法确定它。

谢谢你的帮助

0 投票
1 回答
2672 浏览

x11 - 是否可以使用 Xrandr 获得监视器描述?

我正在编写一个跨平台库,它提供对窗口系统(Win32/Cocoa/X11/Wayland)的低级访问。现在我正在努力获取有关已连接显示器的信息。我的“屏幕信息”实用程序使用我当前的双显示器设置写入以下输出:

该名称是由 Xrandr 扩展库提供name的结构的成员获得的。XRRMonitorInfo在我的 [MATE] 控制面板中,它显示每个连接的显示器的供应商名称(分别为 Acer Technologies 和 Samsung Electric Company)。

截屏

我一直在挖掘 MATE 源代码,看看他们是如何获得供应商名称的,但到目前为止,它一直在引导我。有什么方法可以使用 Xrandr 库获取供应商名称等信息?如果没有,这还能如何实现?任何帮助表示赞赏。