![콘솔 tty를 통해 디스플레이를 활성화하시겠습니까?](https://rvso.com/image/1087099/%EC%BD%98%EC%86%94%20tty%EB%A5%BC%20%ED%86%B5%ED%95%B4%20%EB%94%94%EC%8A%A4%ED%94%8C%EB%A0%88%EC%9D%B4%EB%A5%BC%20%ED%99%9C%EC%84%B1%ED%99%94%ED%95%98%EC%8B%9C%EA%B2%A0%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
외부 모니터를 활성화하고 랩탑 모니터를 비활성화하는 사용자 정의 xrandr 스크립트가 있습니다. 외부 모니터 연결을 끊으면 화면이 비어 있기 때문에 모니터를 활성화할 수 없습니다.
나는 내 콘솔 tty(ctrl-alt-f1)에 액세스하고 xrandr을 계속 실행(예: xrandr --output eDP1 --auto
)할 수 있기를 원합니다. 내 tty에서 실행하면 "디스플레이를 열 수 없습니다"라고 표시됩니다. 어떻게 할 수 있는지에 대한 조언이 있나요?
답변1
콘솔로 이동할 필요 없이 내부 화면을 다시 활성화하는 사용자 정의 키보드 단축키를 추가하여 동일한 결과를 얻을 수 있습니다.
시스템 설정 > 키보드 > 단축키 > 사용자 정의 단축키를 선택하고 +를 클릭한 후 원하는 단축키에 명령을 추가합니다.
xrandr --output <screenname> --auto
방금 내 시스템(노트북, 15.10)에서 테스트했습니다. 내 화면을 끄고 키보드 단축키로 명령을 실행하여 성공적으로 다시 활성화했습니다. :)
대안으로
편집된 버전을 사용할 수 있습니다.이 스크립트. 아래 버전(작은 배경 스크립트, 외부 화면이 연결되어 있는지 4초에 한 번씩 확인)은 내부 화면이 켜져 있는지 확인합니다.
#!/usr/bin/env python3
import subprocess
import time
# --- set your internal screen below (the example is my primary screen)
internal = "DVI-I-1"
#---
# don't change anything below
scr_info1 = 0
while True:
time.sleep(4)
# read the current screen setup from xrandr
get_screens = subprocess.check_output("xrandr").decode("utf-8").splitlines()
scr_data = [l for l in get_screens if " connected " in l]
# count the number of connected screens
scr_info2 = len(scr_data)
# if the number of connected screens changes,
# switch off the internal one if there are two screens
if scr_info2 != scr_info1:
if scr_info2 == 2:
ext = [s.split()[0] for s in scr_data if not internal in s][0]
subprocess.Popen(["xrandr", "--output", internal, "--off", "--output", ext, "--auto"])
else:
subprocess.Popen(["xrandr", "--output", internal, "--auto"])
scr_info1 = scr_info2
설정 방법
- 위 스크립트를 빈 파일에 복사하고 다른 이름으로 저장하세요.
switch_screens.py
- 스크립트의 헤드 섹션에서 이름을 설정하십시오.내부화면. 알아내려면 터미널 창을 열고 명령을 실행하십시오 (외부 화면이 연결되지 않음). "connected"가 있는 줄은 첫 번째 문자열에 다음과 같은
xrandr
화면 이름을 표시합니다 .VGA-1
터미널 창을 열고 다음 명령을 입력하여 테스트를 실행합니다.
python3 /path/to/switch_screens.py
스크립트가 실행되는 동안 외부 화면을 연결하고 내부 화면이 전환될 때까지 기다렸다가 다시 연결을 끊습니다.
모든 것이 제대로 작동하면 시작 응용 프로그램에 아래 명령을 추가하십시오. Dash > 시작 응용 프로그램 > 추가를 엽니다. 다음 명령을 추가합니다.
/bin/bash -c "sleep 15 && python3 /path/to/switch_screens.py"
로그아웃했다가 다시 로그인하세요. 이제 외부 화면이 연결되어 있으면 내부 화면이 자동으로 꺼지고, 연결을 끊으면 다시 활성화됩니다.
스크립트는 시스템에 눈에 띄는 부담을 전혀 추가하지 않습니다.