在每个显示器上显示显示器编号

5 arch-linux xorg nvidia

在 Windows 上,有一个选项可以单击显示属性中名为“识别显示器”的按钮,然后它会在每个显示器上显示一个数字几秒钟,以便您知道哪个显示器是哪个显示器。Linux 中有类似的东西吗?

我正在运行 Arch,并且有六 (6) 个相同的 LCD 平板显示器、3 个双头 NVidia 卡。所以你可以想象我为什么问:P

Gil*_*il' 2

请注意(正如Wieland H.所指出的,这个答案假设一个表现良好的视频驱动程序。Nvidia 的专有驱动程序(过去是双头操作所必需的,我不知道这是否仍然是Nouveau 的情况)不使用标准 RandR 扩展,因此如果您使用它,我的大部分答案将毫无用处,您需要寻找特定于驱动程序的答案nvidia

\n\n

在 KDE 下,控制中心的 \xe2\x80\x9cDisplay\xe2\x80\x9d 面板中的 \xe2\x80\x9cMultiple Monitors\xe2\x80\x9d 选项卡 ( 、kcontrolKDE\xc2\xa03) 或系统设置 ( systemsettings、 KDE\xc2\xa04)就是这样(单击\xe2\x80\x9c识别所有显示器\xe2\x80\x9d)。您不必将 KDE 作为桌面环境运行即可使用此功能,只需安装正确的组件即可。

\n\n

如果您喜欢手动执行操作,以下代码片段会解析xrandr的输出。它专门查找诸如 之类的行,该行给出了监视器的DVI-0 connected 1600x1200+3200+0 \xe2\x80\xa6位置(距左侧 3200 像素,距顶部 0 像素)、尺寸(宽度 1600、高度 1200)和名称 ( )。DVI-0它使用 来显示包含此信息的弹出窗口kdialogkdialog一旦其中一个实例返回,脚本就会杀死所有实例,当您单击任何弹出窗口时就会发生这种情况。

\n\n

任何其他类似于的程序都kdialog可以,只要您可以指定弹出窗口的位置(这不是更知名的情况zenity)。shell 必须是 ksh(可以是 pdksh 或 ATT ksh),因为其他 shell(至少是 bash 和 zsh)在存在多个作业时表现得不够好(具体来说,它们的内置wait是t 被 SIGCHLD 中断)。

\n\n
LC_ALL=C xrandr |\nsed -ne \'s/^\\([^ ][^ ]*\\)  *connected  *\\([0-9][0-9]*\\)x\\([0-9][0-9]*\\)+\\([0-9][0-9]*\\)+\\([0-9][0-9]*\\) .*$/\\1 \\2 \\3 \\4 \\5/p\' |\nksh -c \'\n  i=1\n  trap "trap - CHLD" CHLD\n  trap : INT\n  while read -r name w h x y; do\n    kdialog --geometry +$(($x+2*$w/5))+$(($y+2*$h/5)) \\\n            --passivepopup "$i $name ${w}x${h} +$x+$y" &\n    i=$(($i+1))\n  done\n  sleep 10 &  # Time out after 10 seconds\n  wait  # Wait until any of the kdialog instances or sleep returns\n  while [ $i -ne 0 ]; do\n    kill %$i 2>/dev/null\n    i=$(($i-1))\n  done\n  [ $first -eq 0 ] || echo You clicked on monitor $first\n\'\n
Run Code Online (Sandbox Code Playgroud)\n