问题标签 [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 回答
544 浏览

bash - 脚本在睡眠前未运行

我正在尝试创建一个在睡觉前运行的脚本。有人可以告诉我我在这里做错了什么吗?当我在终端中运行命令时,此脚本运行完美。

日志输出:

0 投票
1 回答
402 浏览

c++ - 命令行 XRandR 和自己的代码之间的差异

我需要以编程方式获取显示器的刷新率。

当我在命令行上键入xrandr (1.4.1, opensuse 13) 时,我得到:

此结果由nvidia-settings -q RefreshRate等确认。

但是......当我运行以下代码(来源:https ://github.com/raboof/xrandr/blob/master/xrandr.c )时,使用 g++ 4.8.1(使用 -lX11 -lXext -lXrandr)编译:

我得到:

为什么我会得到这个结果?我做错了什么?

该软件使用带有 GLEW 的 OpenGL。这有什么影响吗?我们确实调用了 glXQueryDrawable(dpy, drawable, GLX_SWAP_INTERVAL_EXT, &val)但之后,我认为这不会有任何影响。

0 投票
0 回答
479 浏览

php - 使用 ubuntu 和 PHP 以编程方式检测 HDMI 监视器是否已关闭?

我尝试过使用以下命令的命令:

此命令返回连接的端口列表,我如何使用此命令仅获取 HDMI 连接列表的列表。

0 投票
1 回答
1195 浏览

linux - 在 NixOS 上即时更改 X11 dpi

我希望xrandr --dpi 180在每次会话中即时将 dpi 从 90 更改为 180,从而降低分辨率,但没有任何反应。我错过了什么吗?我能够通过添加fonts.fontconfig.dpi=180/etc/nixos/configuration.nixthen的愚蠢技巧来更改 dpi nixos-rebuild test,这不太理想。

非常清楚,这是我的情况: 1. 对于我的笔记本电脑屏幕,默认分辨率太低,所有内容(字体)看起来都非常小。2. 我了解到在 nixos 上添加fonts.fontconfig.dpi=180可以/etc/nixos/configuration.nix将 dpi 从默认的 96 设置为 180,以便一切都具有正常大小(字体)。3. 但是,我现在有时会在分辨率低于笔记本电脑的显示器上打开 vm,并且在使用笔记本电脑屏幕和显示器之间切换时,我想即时更改 dpi。

0 投票
1 回答
881 浏览

linux - 使用 xrandr 进行缩放克隆

我经常使用我的笔记本进行教学,投影仪上显示全屏。随着投影仪越来越好,我经常发现投影仪的分辨率比我的 LCD 屏幕提供的分辨率更高或不同(过去我只使用 1024x768)。

我现在想做的是使用外部显示器的最佳分辨率,同时在笔记本屏幕上缩小相同的内容(不平移)。或者,如果投影仪的一维分辨率较小,则液晶显示器上的黑条是可以的。只要外部投影机使用尽可能高的质量,我就不用担心 LCD 上出现混叠伪影。

例如,我最近有:

我试过了:

但随后全屏演示的底部被剪辑在投影仪上。在这种情况下,我想在笔记本电脑屏幕上显示一个黑条或垂直缩放。我怎样才能做到这一点?

我使用了缩放选项(没有投影仪无法在此处重现)但没有成功。

0 投票
1 回答
300 浏览

bash - 两屏切换 xrandr

我正在尝试创建一个 bash 脚本,它可以让我根据连接到笔记本电脑的屏幕(我有两个端口)来切换外部屏幕。老实说,我在 bash 方面的专业知识有限,所以这也可能是一个合乎逻辑的 bash 错误。我有以下脚本:

发生的情况是 VGA_CON && HDMI_CON 总是返回 true,这导致我的脚本总是认为两个显示器都已连接。任何人都可以告诉我发生了什么?

0 投票
1 回答
2038 浏览

xorg - xrandr / arandr RRSetScreenSize 和 RRSetCrtcConfig 错误

我试图让 X 从我的笔记本电脑上使用 3 个外接显示器。

TLDR;它有 10% 的时间工作。 arandr显示一个包含监视器的浅灰色框(见图)。当显示器不完全适合时,我会出错。

X 的配置中调用的浅灰色背景框是什么(见图)? 如何设置浅灰色框的大小?

这在 10% 的时间内有效:

  • 1x 笔记本电脑屏幕 eDP1 (1920x1080),
  • 2x 外部 DVI-I-1 和 DVI-I-2 (1920x1080) 通过此 USB3 设备
  • 1 个外部 HDMI1 (1680x900)

这是 arandr 构建的脚本(为可读性添加了换行符)。

问题似乎出在 HDMI 显示器上,分辨率为 1600x900。当 x 尝试自动配置它时,它使宽度为 1920+1600 而不是 1920+1920。见下图。

脚本给出错误

  • 如果未插入 HDMI:

    xrandr:找不到模式 1600x900

  • 如果 HDMI 已插入,但 DVI-I-1 在浅灰色背景框之外

    XRandR 失败:XRandR 返回错误代码 1:X 失败请求错误:BadValue(整数参数超出操作范围)失败请求的主要操作码:140(RANDR)失败请求的次要操作码:21(RRSetCrtcConfig)失败请求中的值: 0x780 失败请求的序列号:53 输出流中的当前序列号:53

  • 或下图中的错误(最常见)

这偶尔会起作用,当所有东西都插入时,笔记本电脑会神奇地配置,或者

  1. USB 或 HDMI 显示器不工作或
  2. 屏幕缓冲区损坏,我必须按 ctrl-alt-backspace 或
  3. 随机效果掷 d20(镜像等)。

arandr如下所示(注意 DVI-I-1 如何位于浅灰色背景之外)。在玩了很多之后:

  1. 当浅灰色背景不适合显示器时,它永远不会工作。
  2. 当浅灰色背景适合显示器时,它总是有效。
  3. 当我最后插入 HDMI 显示器时,它有时会起作用,但不可靠。

如果我运行这个 xrandr(没有 HDMI),我会得到一个错误:

我在 System76 笔记本电脑上使用 Linux Mint 18。

谢谢!

在此处输入图像描述

0 投票
1 回答
877 浏览

windows - Windows 中的视频模式列表

如何获取 Windows 中所有可用视频模式的列表?我想查看分辨率和刷新率。在 Linux 下,我会使用不带参数的 xrandr,这给了我这个完美的列表:

我也很高兴看到一种模式是隔行扫描还是逐行扫描。Xrandr 将为所有隔行扫描模式附加一个小写的“i”(参见上面的最后一行)。

0 投票
2 回答
3717 浏览

fedora - 保存使用 xrandr 创建的分辨率

我在 Fedora 24 上的屏幕分辨率出现问题。

屏幕不断变为 1024x768,而 1280x1024 不可用。

我在arch linux论坛上挖掘了一点,这个命令:

https://bbs.archlinux.org/viewtopic.php?id=73738

这解决了我的问题,但新模式不会在系统重新启动时持续存在。任何人都知道即使在系统重新启动后如何强制我应用此配置?

0 投票
1 回答
1503 浏览

opengl - 使用 xcb 和 randr 获取屏幕信息

我试图用 Xlib、XF86VidMode 和 OpenGL 编写一些简单的图形。我有两个问题:

  1. Xlib 似乎没有 WM_TIMER 的等价物,所以我编写了一个 SIGALRM 处理程序,它发送消息以解除对消息循环的阻塞,但由于这种用法完全是线程不安全的,所以程序会在一段时间后挂起。因此我尝试在 xcb 中重新编码。
  2. XF86VidMode 使用起来很尴尬,我不喜欢结果,所以我改用 RandR。

完成上述操作后,事实证明 xcb 有相同的挂起,所以我无法编写阻塞消息循环。相反,我每隔一段时间就轮询一次,程序没有挂起,但是有一些令人讨厌的跳帧。

虽然我可以用 RandR 切换视频模式,但我想使用 xcb 版本,但它不起作用。我为 xcb 抄袭了@datenwolf 的一个示例,但不知何故 xcb_randr_get_screen_info_reply 不起作用。它应该返回一个指向结构的指针,该结构后跟一个屏幕尺寸数组(以毫米为单位的尺寸是错误的),然后是刷新率数据。刷新率数据是垃圾,大部分为零。我究竟做错了什么?

所以我的输出是

谁能发现我做错了什么?