분리 된 디스플레이 비활성화 (xrandr)


17

집에있을 때 사용하는 비디오 출력이 2 개인 랩탑이 있습니다 (HDMI1, VGA1). 그것들을 가능하게하기 위해 나는 이것을한다 :

xrandr --output HDMI1 --right-of LVDS1 --auto
xrandr --output LVDS1 --off
xrandr --output VGA1 --right-of HDMI1 --auto

일하러 가고 싶을 때 랩탑을 가져 가지만 먼저 다음을 실행합니다.

xrandr --output VGA1 --off
xrandr --output LVDS1 --left-of HDMI1 --auto
xrandr --output HDMI1 --off

그런 다음 랩톱 디스플레이가 정상적으로 작동합니다.

내가 겪고있는 문제는 때로는 컴퓨터를 작동시키기 전에 두 화면을 비활성화하는 것을 기억하지 못한다는 것입니다. 내가 도착했을 때, 나는 다양한 조합을 시도 --output하고를 --off하지만 내 화면이 다시 사용할 수 없습니다.

이것은 xrandr아무것도 표시하지 않고 실행되는 결과 입니다.

Screen 0: minimum 320 x 200, current 3840 x 1080, maximum 8192 x 8192
LVDS1 connected (normal left inverted right x axis y axis)
   1366x768       60.0 +
   1024x768       60.0··
   800x600        60.3     56.2··
   640x480        59.9··
VGA1 disconnected 1920x1080+1920+0 (normal left inverted right x axis y axis) 0mm x 0mm
HDMI1 disconnected 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
DP1 disconnected (normal left inverted right x axis y axis)
  1920x1080 (0x4c)  148.5MHz
        h: width  1920 start 2008 end 2052 total 2200 skew    0 clock   67.5KHz
        v: height 1080 start 1084 end 1089 total 1125           clock   60.0Hz

내가 시도한 거의 모든 명령은 다음을 반환합니다.

xrandr: Configure crtc 2 failed
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  21 (RRSetCrtcConfig)
  Serial number of failed request:  40
  Current serial number in output stream:  40

두 모니터가 CRTC를 포기하지 않는 것과 같습니다. 하드웨어가 2 만 지원하기 때문에 모니터를 연결하고 비활성화 할 때까지 잠겨 있습니다.

답변:


11

다음과 같이 하나의 명령으로 모든 구성을 넣을 수 있습니다.

xrandr --output VGA1 --off --output HDMI1 --off --output LVDS1 --left-of HDMI1 --auto

명령을 작성하기가 어렵 기 때문에 현재 작동하는 화면을 테스트하고 원하는 설정을하는 스크립트를 만들 수 있습니다. (키 단축키에 추가 할 수 있습니다)

if [ -z `xrandr --query | grep "HDMI1 connected"` ]
then
    xrandr --output DP2 --off --output DP1 --off --output HDMI2 --off \
        --output HDMI1 --off \
        --output LVDS1 --mode 1366x768 --pos 0x0 --rotate normal \
        --output VGA1 --off
else
    xrandr --output DP2 --off --output DP1 --off --output HDMI2 --off \
        --output HDMI1 --mode 1920x1080 --pos 0x0 --rotate normal --primary \
        --output LVDS1 --off --output VGA1 --off
fi

멋진 스크립트는 아니지만 효과가있을 수 있습니다.


1

불행히도 화면의 플러그를 뽑을 때 생성 된 이벤트가없는 것 같습니다. 스크립트 폴 xrandr을 갖는 것은 상당히 무겁지만 / sys / class / drm / * / status를 살펴보고 해당 파일을 폴링 한 다음 상태가 'connected'에서 다른 것으로 변경되거나 완전히 사라질 때 필요한 xrandr 조치를 취할 수 있습니다.


1

나는 이것이 오래된 오래된 스레드라는 것을 알고 있지만 모니터를 켜고 끈 다음 분리하는 방법에 대한 정보를 사용하여 문제를 해결하는 방법을 공유하고 싶었습니다. autorandr 라는 프로그램을 사용 했으며 기본적으로 두 모니터로 디스플레이를 설정했습니다 autorandr --save docked. 그리고 나는 그것을 사용 xrandr --output VGA --off후, 내 모니터를 뽑은 다음에 autorandr --save mobile. Autorandr는 연결하거나 뽑은 내용에 따라 다른 모드로 자동 전환됩니다. 잘만되면 이것으로 넘어지는 다른 누군가를 도울 수 있습니다! 또한 이것은 첫 번째 실제 답변과 같으므로 더 명확하게 변경할 수 있는지 알려주십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.