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

awesome-wm - 令人敬畏的 WM 不稳定的多显示器设置

我有一个 3 显示器设置,除了我的 1 个显示器连接到我在我的计算机之间切换的 KVM 切换器。似乎当 Awesome WM 在没有可访问的第三个监视器的情况下启动时,它从那时起拒绝识别它,直到下一次重新启动(仅重新启动 Awesome WM 不起作用)。

奇怪的是,xrandr 知道显示器,当我将它移到第三台显示器时,我什至可以看到我的鼠标指针出现在那里,但其余部分是黑色的。将窗口拖到那里会使它们消失,并且 Awesome WM 在重新启动之前不会在此屏幕上呈现任何内容。

我假设这与 Awesome 如何重新计算可用的屏幕几何图形有关,但我不确定如何强制它重新计算它?我已经通过我使用的几个 bash 命令启用了两个辅助监视器:

当我运行时xrandr --current,它声称所有 3 台显示器都已连接,并且每个显示器都显示正确的分辨率。我做了一些搜索,但在这个问题上没有太多帮助,我相信这与这里报告的问题类似:https ://www.reddit.com/r/awesomewm/comments/6rhvp9/switching_monitor_setups

如何让 Awesome 重绘到第三台显示器并正确使用它?另外,我怎样才能获得 Awesome 以动态处理显示器的添加/移除(这是连接到扩展坞的笔记本电脑)?我试过screenful,但那个repo似乎已经过时了,而且似乎对我弊大于利,如果我从多个开始然后从扩展坞拔下,显示器会闪烁。

0 投票
1 回答
1094 浏览

bash - 自定义 Rofi 菜单不会返回所选值

我正在尝试在 i3wm 中创建一个 Rofi 菜单,我可以调用它来调整外部显示器等。我可以很好地调用和运行脚本,但是当我从菜单中选择一个选项时,不会返回任何内容,并且永远不会调用调整屏幕的命令。可以在此处找到有关 rofi 的信息 ( https://github.com/davatorium/rofi )。

有没有一种特殊的方式来调用命令?我没有正确格式化自定义菜单吗?

这是我正在调用的脚本:(https://pastebin.com/Uev1tiR5

应该发生的是在 if 语句中使用所选值并调用正确的命令。我还没有生成 xrandr 命令的两个菜单选项,所以他们只是说退出。

0 投票
0 回答
166 浏览

linux - 如何选择要显示的输出监视器?

从上面的输出我们可以确认我连接了两台显示器。

我写了一个小的 xlib 应用程序,它在屏幕上显示“hello world”。

示例代码: https ://www.lemoda.net/c/xlib-text-box/

输出出现在一台显示器上,但我需要在另一台连接的显示器上显示。在此处输入代码

现在的问题是应用程序总是在 DP-3 上显示,但我想在 DVI-I-1 显示器上显示应用程序,怎么办?

我试图更改 XOpenDisplay 的输入参数,但失败并显示“无法打开显示”。

还尝试将主监视器状态更改为 DVI-I-1,但仍然没有成功

0 投票
2 回答
2033 浏览

command-line-interface - 命令行工具分别截图多台显示器

问题陈述

scrot过去常常截屏,除非我有多个显示器或显示器,否则效果很好。在这种情况下scrot,将不同监视器的屏幕截图合并到一个输出中。

从手册页,scrot支持一个选项-m

所以我想象默认行为是将它们连接在一起。然而,这种情况并非如此。即使没有这个-m选项,我也会得到加入的屏幕截图。

我很乐观scrot应该能够做到这一点,因为它支持该-u选项:

效果很好。

我还检查了另一个名为的 CLI 工具maim- 但我还是不知道如何分别截取不同监视器的屏幕截图。

所以我排除的解决方案应该是这样的:

只截屏显示<display_name>

到目前为止我的解决方案尝试

maim支持古玩寻找选项-x

所以我尝试maim -x 0.0 | xclip -selection clipboard -t image/png了,但这不起作用。我不知道如何使用此选项,因为没有足够的文档。

两者都scrot支持maim选项-s

所以我正在想象一个非常丑陋/hacky的解决方案,使用(或xdotool类似的)来选择所需的显示并使用选项-s来完成这项工作。但除非没有其他直接的解决方案,否则我宁愿不走这条路。maimscrot

疯狂的猜测

我想知道这个问题是否是因为我如何添加新显示器?我通常用这样的命令添加我的第二个显示器:

所以我想知道,可能是scrot或者maim只有一个显示器。我这么想是因为xdpyinfo | grep -A4 '^screen'with ONE monitor 的输出看起来像:

并且有两个显示器看起来像这样:

如果这确实是我的问题的原因,那么我应该如何添加我的第二台显示器?

0 投票
2 回答
3695 浏览

linux - 如何设置默认的 xrander 模式

我有一个每天需要手动执行的小脚本,以将刷新率设置为 120Hz。这是脚本的内容:

如何将其设置为我的默认模式,每次我启动到我的操作系统时,我都会自动分配回 60Hz。这是我有问题的显示器的 xrandr 输出:

0 投票
1 回答
59 浏览

bash - 如何使用 shell 在其他单词之前只检索 2 个单词?

我正在为 xrandr 创建一个自动化脚本,我只想从中检索实际输出,我知道它应该是使用xrandr --verbose连接的单词(例如 DP-0)之前的 2 个单词:

xrandr --详细

[更新]最终代码(使用touch是因为我无法分配内容并仅使用echocat EOFtee创建新文件)

非常感谢!

0 投票
1 回答
190 浏览

x11 - How to get mode name using XCB?

In Xlib the structure XRRModeInfo contains, aside from nameLength field, the name itself. But in XCB the corresponding structure xcb_randr_mode_info_t only contains name_len, and there seems to be no function to get actual name string.

I do see all the mode names in the string returned by xcb_randr_get_screen_resources_names(), but they are all concatenated, and I don't know how to find the offset of a particular mode in this string.

So, how can I get the mode name using XCB?

0 投票
1 回答
260 浏览

plot - 绘制图形时像素与记录之间的关系

使用xrandr获取我的显示器信息。

轴上只有1920像素,只有小盒子。x1920

我画了一条包含 19200 对记录的水平线。轴上只有1920像素x,如何将19200物品放入1920盒子中?
一个像素可以绘制 10 条记录吗?将 10 条记录放在一个盒子里?一个像素中有十个不同的数据记录?一个像素如何表达十条记录?

修正我所有的错字:

这意味着有19200对数据记录(x,y)要绘制,但在这种情况下,显示器上最多只能显示1920对数据记录?
画十对(x,y)数据记录多少像素:(0,1),(1,1),(2,1),(3,1),(4,1),(5,1 ),(6,1),(7,1),(8,1),(9,1) 在我的情况下?在我看来,只有一个像素来绘制十对(x,y)数据记录,也就是说,只有一对(x,y)数据记录被绘制成一个像素,在x轴方向,有只有1920像素,一个像素画一对(x,y)记录,x轴方向需要19200像素。

0 投票
1 回答
219 浏览

ubuntu - glx 和 xrandr 版本是否属于远程桌面环境中客户端的硬件?

我处于限制计算机使用的环境中。所以我在互联网上租了一台电脑(比如亚马逊EC2)来绕过限制,开发软件。我试过了

  1. 安装 Ubuntu 18.04 LTS 64 位
  2. 安装xfce4、tightvnc 搭建远程桌面环境
  3. 安装apache guacamole,nginx绕过限制

有很多挑战,但最终它变成了一个很好的仅使用 443 端口的远程桌面环境。

但我面临新的挑战。每次启动某个程序时,我都会看到以下消息。

gl_surface_glx.cc(460)] 需要 GLX 1.3 或更高版本。

该系统使用 RandR 1.1。要使显示设置正常工作,至少需要 1.2 版

即使多次更换电脑(虚拟电脑、裸机、有无显卡),结果都是一样的。我更新了我能升级的一切,但总是面对下面

$ xrandr --版本

xrandr 程序版本 1.5.0

服务器报告 RandR 版本 1.1

$ glx信息

...

服务器 glx 版本字符串:1.2

...

客户端 glx 版本字符串:1.4

为什么服务器总是返回低版本的东西?

0 投票
1 回答
118 浏览

c - 是否有用于控制亮度的 xrandr 功能/接口?

xrandr 的代码非常混乱,我不太明白,它也严重缺乏文档。能够通过 libxrandr 控制亮度的最佳/最干净的界面是什么?

编辑:澄清我想使用 api 而不是 cli 命令