问题标签 [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 投票
0 回答
235 浏览

python - 如何持续监控 xrandr 并自动响应多显示器设置中的物理变化?

我正在使用带有 mint linux 的笔记本电脑,并使用多显示器设置。我将在问题末尾显示我当前的 xrandr 输出以供参考。

我每天多次更改我的物理显示器设置。我拔下一个或两个外接显示器,然后再插入。

我当前的窗口管理器 - xfce - 不太擅长响应这些变化。目前,当物理设置发生变化时,我必须手动执行一些准备好的 xrandr 命令,以便 xfce 能够适应新的监视器设置。这是几个准备好的 xrandr 命令之一:

xrandr --output DP1-1 --primary --right-of eDP1 --output DP1-2 --right-of DP1-1

我不想再手动执行此操作了。我有几个想法可以自动对物理监视器设置的变化做出反应。这是基本思想:

  1. 在后台使用脚本监视 xrandr。
  2. 将我的显示器设置的当前状态保存到文件中(或保存在内存中)
  3. 如果之前的状态有变化,执行相应的 xrandr 命令来响应变化。

我看到几个选项可以做到这一点:

  1. 每秒 Crob 工作:这可能不是一个好主意,因为 cron 似乎并非旨在每秒执行命令 - 根据我的研究。
  2. 准备一个 bash 脚本,该脚本处于无限循环中,并在无限循环结束时休眠一秒钟。
  3. 在启动时启动一个 python 脚本,在这个 python 脚本中处理监视器设置的逻辑,将 python 脚本放入一个无限循环并在无限循环结束时使用 time.sleep(1)。我使用 python 的想法很简单:我是一个公平的 pyhton 开发人员,但在 bash 方面我很穷。因此,我对使用 python 比使用 bash 更有信心。
  4. 如果监视器设置发生变化,linux内核会发出一个信号,并在发出这个信号时执行一个脚本。

我有几个问题:

  1. 如果我使用选项 3:执行的 python 脚本是否会在其自己的系统进程中使用 python 解释器?含义:如果这些其他脚本共享相同的解释器实例,这个脚本会用它的睡眠指令阻止其他 python 脚本吗?我想使用这个监视器检查脚本在后台和自己的进程中运行,这样其他python脚本不受影响。
  2. 如果我使用选项 4:这些信号是否存在?我如何使用它们以及如何让它们触发脚本,无论是 bash 脚本还是 python 脚本?

非常感谢你的支持!

祝你今天过得愉快。

xrandr 输出供参考:

0 投票
1 回答
177 浏览

linux - xsetwacom 找不到输出

Xrandr 显示了两个监视器。我想使用 xsetwacom 将所有设备移动到 HDMI-0 但是底部的 xsetwacom 命令无法识别 HDMI-0

输出:

所以我尝试将 xsetwacom 转为 HDMI-0

在我让它工作之后,我可以制作一个脚本在启动时执行它,但我找不到任何关于如何修复 xsetwacom 或 xrandr 以正确识别 HDMI-0 的资源

0 投票
0 回答
42 浏览

regex - 将变量过滤到特定部分/字符 | 从过滤的文本中自动设置分辨率 | Ubuntu,重击

我正在尝试制作一个脚本,将分辨率设置为 1920x1080,频率为 60Hz,如下所示...

该脚本应过滤以获取 xrandr 的特定参数,因为这两个命令的输出都有一些不需要的文本。

然后将分辨率设置为主显示器,例如。HDMI1 或 VGA1 使用新创建的模式。

附言

我知道在启动等时通过脚本设置它不是正确的方法,您不需要向我讲授最佳实践以及如何在配置文件中执行它...

系统:Ubuntu 20.04,只有核心系统 utils、gnome 终端、openbox 和 xorg

0 投票
0 回答
20 浏览

linux - 使用过扫描设置将分辨率从一台 PC 复制到另一台

我已将两台 PC 连接到松下等离子电视 (TX-P42GW32)。我正在解决一个完全适合屏幕的问题,第二个有过扫描问题。

  1. RaspberryPi(Raspbian,OpenBox):屏幕完美贴合。
  2. 英特尔 NUC8i3BEK(Manjaro,KDE):屏幕在电视边缘后过扫描。

有没有办法将分辨率从 RPi 复制到英特尔 NUC?

0 投票
1 回答
36 浏览

linux - 如何检测外部显示器是否在镜像中或通过命令扩展?

如何检测到我的外接显示器处于镜像模式或扩展模式或设置为主。我已经完成了很多命令,例如xrandr .

0 投票
0 回答
6 浏览

x11 - 与“Xrandr”和“XineramaQueryScreens”有什么不同

默认分辨率为 1280x720。fractional scaling当我将“ ”调整为 125%时,我的系统(20.04.1-Ubuntu)上只有一个屏幕。我得到关于分辨率的不同价值。首先,我使用扩展 API 'XineramaQueryScreens' 查询结果,返回

当我使用命令时:

它返回:

我想得到实际的分辨率。1280x720如果我理解正确,无论如何调整 ' ' ,实际分辨率始终是factional scaling

  1. 为什么会有不同的结果?
  2. ' XineramaQueryScreens'返回2048x1152,不是默认分辨率的125%倍1280x720。为什么?