각 모니터에 모니터 번호 표시

각 모니터에 모니터 번호 표시

Windows에는 디스플레이 속성에서 "모니터 식별"이라는 버튼을 클릭할 수 있는 옵션이 있으며, 각 모니터에 몇 초 동안 숫자가 표시되므로 어떤 모니터가 어떤 것인지 알 수 있습니다. Linux에도 비슷한 것이 있나요?

저는 Arch를 실행하고 있으며 6개의 동일한 LCD 패널과 3개의 듀얼 헤드 NVidia 카드를 가지고 있습니다. 그럼 제가 왜 물었는지 짐작이 가실 겁니다 :P

답변1

참고하세요(지시된 대로빌란트 H., 이 답변은 비디오 드라이버가 제대로 작동한다고 가정합니다. Nvidia의 독점 드라이버(이전에는 듀얼 헤드 작동에 필요했지만 Nouveau가 여전히 이 기능을 수행하는지 모르겠습니다)는 표준 RandR 확장을 사용하지 않으므로 이를 사용하면 대부분의 답변은 쓸모가 없으며 nvidia드라이버 .

kcontrolKDE에서는 제어 센터( , KDE 3) 또는 시스템 설정( , KDE 4)의 디스플레이 패널에 있는 "다중 모니터" 탭에 systemsettings이 기능이 있습니다("모든 모니터 식별" 클릭). 이 기능을 사용하기 위해 KDE를 데스크탑 환경으로 실행할 필요는 없으며 올바른 구성 요소를 설치하기만 하면 됩니다.

수동으로 수행하려는 경우 다음 코드 조각은랜달. 특히 모니터의 DVI-0 connected 1600x1200+3200+0 …위치(왼쪽에서 3200픽셀, 위쪽에서 0픽셀), 크기(너비 1600, 높이 1200) 및 이름( )을 제공하는 와 같은 줄을 찾습니다 . DVI-0이 정보가 포함된 팝업 창을 표시하는 데 사용됩니다 kdialog. kdialog스크립트는 인스턴스 중 하나가 반환되면 모든 인스턴스를 종료합니다. 이는 팝업을 클릭할 때 발생합니다.

팝업의 위치를 ​​지정할 수 있는 한 다른 유사한 프로그램 kdialog도 가능합니다(악명 높음 zenity). 쉘은 ksh(pdksh 또는 ATT ksh일 수 있음)여야 합니다. 왜냐하면 다른 쉘(적어도 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
'

관련 정보