lightdm에 대한 $DISPLAY?

lightdm에 대한 $DISPLAY?

lightdmX 서버를 실행 중입니다. $DISPLAY어떤 설정을 듣고 있는지 어떻게 알 수 있나요 ?

배경: 모니터와 GPU(전용 드라이버) 사이의 DPMS 문제를 디버깅하고 nvidia있으며 제대로 작동하지 않는 경우를 제외하고는 일반적으로 함께 잘 작동합니다(모니터가 몇 시간 동안 유휴 상태인 후 대기 모드에서 깨어나지 않음). ). 유용하지만 내가 무엇을 하고 있는지 xset dpms force o{ff,n}아는 경우에만 가능합니다 . $DISPLAY그래픽 세션이 실행 중일 때(일반적으로 실행 중일 때) 문제가 되지 않지만 :0lightdm은 이 규칙을 준수하지 않는 것으로 보이며 DISPLAY=:0tty 또는 ssh에서 스푸핑하면 unable to open display ":0"오류가 반환됩니다.

답변1

알고보니 DPMS와 화면 전용 블랭킹, 독점 NVidia 드라이버, lightdm 및 로그인된 세션을 사용하여 동일한 문제가 있었고 방금 해결책을 찾았습니다.

읽을 수 있도록 Xorg에서 xauth 파일을 복사하고, XAUTHORITY 변수가 해당 파일을 가리키도록 설정하고, 디스플레이를 Xauth 파일에 있는 디스플레이(필자의 경우 unix:0)로 설정합니다.

전체 실행:

~ $ ssh somecomputer
~ $ ps ax | grep lightdm
  40420 ?        SLsl   0:00 /usr/sbin/lightdm
  62985 tty7     Ssl+   0:00 /usr/lib/xorg/Xorg :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
  63075 ?        Sl     0:00 lightdm --session-child 18 21
  63192 ?        Ssl    0:00 /usr/sbin/lightdm-gtk-greeter
  63240 ?        S      0:00 lightdm --session-child 14 21
  67141 pts/0    S+     0:00 grep lightdm
~ $ sudo su
~ # cp /var/run/lightdm/root/:0 /tmp/lightdmauth
~ # chmod a+r /tmp/lightdmauth
~ # exit
~ $ export XAUTHORITY=/tmp/lightdmauth
~ $ xauth -f /tmp/lightdmauth
xauth:  /tmp/lightdmauth not writable, changes will be ignored
Using authority file /tmp/lightdmauth
xauth> list
somecomputer/unix:0  MIT-MAGIC-COOKIE-1  5b35f44220224bef134a491dc3bxxxxx
xauth> exit
~ $ export DISPLAY=unix:0
~ $ xeyes &

xeyes가 lightdm에 나타납니다.

이 문서는 Citrix에서 제공됩니다.나를 도와 주었다.

이제 화면을 자동으로 깨우도록 설정하는 방법을 찾아야 합니다. 내 아이디어(테스트 및 작동 중)는 sxhkd를 실행하여 lightdm에 키보드 단축키를 추가하여 디스플레이를 다시 정상으로 되돌리기 위해 만든 사용자 정의 스크립트를 실행하는 것입니다(아래에 보너스로 제공됨).

~ $ cat /usr/local/bin/fix-black-screen
#!/bin/bash

##
# fix_black_screen
# Tries to wake up screen if disconnected due to deep sleep

if [ -n "$1" ]; then
  ssh "$1" $(basename $0)
  exit $?
fi


# get the list of plugged-in monitors, regardless of whether they are connected
# or disconnected.

# When not showing in nvidia-settings, it looks like this in xrandr:
# DP-3 disconnected 2560x1440+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
# When showing in in nvidia-settings as disabled, it looks like this in xrandr:
# DP-3 connected 2560x1440+0+0 (normal left inverted right x axis y axis) 600mm x 340mm

export DISPLAY=:0

outputs="`xrandr | grep 'connected' | cut -d ' ' -f 1`"

for attempt in {1..10}; do
    for output in $outputs ; do
        # we only try to re-enable the display if it shows as connected
        xrandr --current | grep -q "^$output connected"
        if [ "$?" -eq 1 ]; then
            echo "Output $output does not show as connected, will retry later ($attempt/10)."
            continue
        fi
        xrandr --output $output --preferred --dpi 96
        xdotool mousemove 0 0
        xrandr -q | grep -q "*"
        if [ $? -eq 0 ]; then
            echo "Fixed output $output"
            break
        fi
    done
    sleep 1
done

xset -dpms
xset dpms 600 1200 0

관련 정보