Linux:当连接外接显示器时如何运行脚本?

Linux:当连接外接显示器时如何运行脚本?

如何检测 Linux 中外接显示器的连接情况?

我需要运行各种脚本来设置我的工作区。

当监视状态改变时,是否有一些巧妙的方法可以启动脚本?

我正在使用 Nvidia 显示驱动程序。

答案1

有一套工具叫做已读可以解析扩展显示标识数据 (EDID)。如果这些工具确实检测到了您的外接显示器,您可能能够定期检查检测情况并使用输出来启动脚本等。

但是您没有提到无论 X 是否正在运行是否都需要执行此操作。

答案2

您应该使用udev事件......可能的规则可能如下所示:

KERNEL=="card0", SUBSYSTEM=="drm", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/ninette/.Xauthority", RUN+="/usr/local/bin/0x_hw_hotplug_monitor.sh"

(来源https://bbs.archlinux.org/viewtopic.php?pid=1329375#p1329375

答案3

我正在寻找相同的答案:/
我正在使用 disper (http://willem.engen.nl/projects/disper) 和 gconftool 来启用/禁用我的第二台显示器以及其上的第二个 gnome 面板。disper
-l 列出了所有连接的显示器,因此您可以将其作为最后的手段进行轮询。

# only primary display
disper -s
gconftool-2 --type int --set  /apps/panel/toplevels/panel_1/screen -- -1


# dual display (nvidia twinview)
disper -e
gconftool-2 --type int --set  /apps/panel/toplevels/panel_1/screen 0
killall gnome-panel

答案4

鉴于截至 270.18,nVidia 二进制驱动程序似乎仍然没有实现现代 XRandR,您可能只需要按照 new123456 的建议轮询类似xrandr屏幕尺寸变化的工具。

在我的系统上,我还没有找到一种方法让 nVidia 正确地宣布xrandr我有两个 1280x1024 显示器,而不是一个 2560x1024 显示器……正如您所猜测的,当我禁止他们更改分辨率时,全屏游戏中心就会出现在两个显示器上。(这会弄乱我的桌面便签)

相关内容