问题标签 [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.
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似乎已经过时了,而且似乎对我弊大于利,如果我从多个开始然后从扩展坞拔下,显示器会闪烁。
bash - 自定义 Rofi 菜单不会返回所选值
我正在尝试在 i3wm 中创建一个 Rofi 菜单,我可以调用它来调整外部显示器等。我可以很好地调用和运行脚本,但是当我从菜单中选择一个选项时,不会返回任何内容,并且永远不会调用调整屏幕的命令。可以在此处找到有关 rofi 的信息 ( https://github.com/davatorium/rofi )。
有没有一种特殊的方式来调用命令?我没有正确格式化自定义菜单吗?
这是我正在调用的脚本:(https://pastebin.com/Uev1tiR5)
应该发生的是在 if 语句中使用所选值并调用正确的命令。我还没有生成 xrandr 命令的两个菜单选项,所以他们只是说退出。
linux - 如何选择要显示的输出监视器?
从上面的输出我们可以确认我连接了两台显示器。
我写了一个小的 xlib 应用程序,它在屏幕上显示“hello world”。
示例代码: https ://www.lemoda.net/c/xlib-text-box/
输出出现在一台显示器上,但我需要在另一台连接的显示器上显示。在此处输入代码
现在的问题是应用程序总是在 DP-3 上显示,但我想在 DVI-I-1 显示器上显示应用程序,怎么办?
我试图更改 XOpenDisplay 的输入参数,但失败并显示“无法打开显示”。
还尝试将主监视器状态更改为 DVI-I-1,但仍然没有成功
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
来完成这项工作。但除非没有其他直接的解决方案,否则我宁愿不走这条路。maim
scrot
疯狂的猜测
我想知道这个问题是否是因为我如何添加新显示器?我通常用这样的命令添加我的第二个显示器:
所以我想知道,可能是scrot
或者maim
只有一个显示器。我这么想是因为xdpyinfo | grep -A4 '^screen'
with ONE monitor 的输出看起来像:
并且有两个显示器看起来像这样:
如果这确实是我的问题的原因,那么我应该如何添加我的第二台显示器?
linux - 如何设置默认的 xrander 模式
我有一个每天需要手动执行的小脚本,以将刷新率设置为 120Hz。这是脚本的内容:
如何将其设置为我的默认模式,每次我启动到我的操作系统时,我都会自动分配回 60Hz。这是我有问题的显示器的 xrandr 输出:
bash - 如何使用 shell 在其他单词之前只检索 2 个单词?
我正在为 xrandr 创建一个自动化脚本,我只想从中检索实际输出,我知道它应该是使用xrandr --verbose连接的单词(例如 DP-0)之前的 2 个单词:
xrandr --详细
[更新]最终代码(使用touch是因为我无法分配内容并仅使用echo、cat EOF或tee创建新文件)
非常感谢!
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?
plot - 绘制图形时像素与记录之间的关系
使用xrandr获取我的显示器信息。
轴上只有1920
像素,只有小盒子。x
1920
我画了一条包含 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像素。
ubuntu - glx 和 xrandr 版本是否属于远程桌面环境中客户端的硬件?
我处于限制计算机使用的环境中。所以我在互联网上租了一台电脑(比如亚马逊EC2)来绕过限制,开发软件。我试过了
- 安装 Ubuntu 18.04 LTS 64 位
- 安装xfce4、tightvnc 搭建远程桌面环境
- 安装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
为什么服务器总是返回低版本的东西?
c - 是否有用于控制亮度的 xrandr 功能/接口?
xrandr 的代码非常混乱,我不太明白,它也严重缺乏文档。能够通过 libxrandr 控制亮度的最佳/最干净的界面是什么?
编辑:澄清我想使用 api 而不是 cli 命令