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

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

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

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

答案1

请注意(正如指出的维兰德 H.,此答案假设视频驱动程序运行良好。 Nvidia的专有驱动程序(以前是双头操作所必需的,我不知道Nouveau是否仍然如此)不使用标准的RandR扩展,所以如果你使用它,我的大部分答案将毫无用处并且您需要寻找特定于nvidia驱动程序的答案。

kcontrol在 KDE 下,控制中心( 、 KDE 3 )或系统设置( 、 KDE 4 ) “显示”面板中的“多显示器”选项卡就systemsettings具有此功能(单击“识别所有显示器”)。您不必将 KDE 作为桌面环境运行即可使用此功能,只需安装正确的组件即可。

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

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

LC_ALL=C xrandr |
sed -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' |
ksh -c '
  i=1
  trap "trap - CHLD" CHLD
  trap : INT
  while read -r name w h x y; do
    kdialog --geometry +$(($x+2*$w/5))+$(($y+2*$h/5)) \
            --passivepopup "$i $name ${w}x${h} +$x+$y" &
    i=$(($i+1))
  done
  sleep 10 &  # Time out after 10 seconds
  wait  # Wait until any of the kdialog instances or sleep returns
  while [ $i -ne 0 ]; do
    kill %$i 2>/dev/null
    i=$(($i-1))
  done
  [ $first -eq 0 ] || echo You clicked on monitor $first
'

相关内容