두 개의 출력이 나란히 있고 i3-wm을 사용하고 있습니다. 다음을 실행하는 쉘 스크립트를 만들고 싶습니다.
# if output <BBB> is connected, but off
xrandr --output <BBB> --right-of <AAA> --mode 1920x1080
# if output <BBB> is connected, and on
xrandr --output <BBB> --off
더 나은 게임 성능을 위해 모니터 구성을 전환하고 있습니다(~5-15% FPS 증가).
답변1
이것은 작동합니다:
xrandr --listactivemonitors | grep <BBB> >/dev/null && xrandr --output <BBB> --off || xrandr --output <BBB> --right-of <AAA> --mode 1920x1080
설명하다:
xrandr --listactivemonitors
현재 열려 있는 모니터만 인쇄합니다.grep <BBB> >/dev/null
전환하려는 모니터의 이름에 대한 이전 출력을 검색합니다. 발견되면 grep은 쉘이 true로 해석하는 종료 코드를 반환합니다. 찾을 수 없으면 쉘이 false로 해석하는 종료 코드를 반환합니다. 화면이 복잡해지는 것을 방지하기 위해 출력이 /dev/null로 전송됩니다.&& xrandr --output <BBB> --off
grep이 활성 모니터 목록에서 모니터를 찾으면 실행되고 모니터가 닫힙니다. 그러나 grep이 잘못된 종료 코드로 종료되면 평가 대상이 무엇이든 논리적 AND 절 전체가 이미 잘못된 것으로 알려져 있으므로 실행되지 않습니다.|| xrandr --output <BBB> --right-of <AAA> --mode 1920x1080
grep이 이를 찾지 못하면 이 절이 실행되어 모니터가 열립니다. 이전 절(grep ... && xrandr ...
)이 false로 평가되므로 실행됩니다. 이 논리 또는 절이 참인지 확인하기 위해 쉘은 오른쪽을 평가해야 합니다. 반면에 왼쪽이 이미 true로 평가된 경우 오른쪽은 평가할 필요가 없으므로 실행되지 않습니다.
간략한 글입니다논리적 조건에 따라 제어 흐름이 조정됩니다.
답변2
꼭 필요한 경우가 아니면 tmpfile 사용을 피하고 싶다면 다음을 시도해 보세요( LVDS-1
:laptop monitor, VGA-1
:external monitor):
#!/bin/sh
switchDisplay() {
/usr/bin/xrandr --auto && /usr/bin/xrandr --output "$1" --off
}
case "$0" in
*-off)
switchDisplay "VGA-1";
;;
*-on)
switchDisplay "LVDS-1";
;;
*-toggle)
### Debian Buster xrandr man page is missing critical information.
### xrandr --listactivemonitors
### Monitors: 1
### 0: +VGA-1 1920/509x1080/286+0+0 VGA-1
/usr/bin/xrandr --listactivemonitors | /bin/grep -q "VGA-1" 1>/dev/null 2>&1
if test "$?" -eq 0; then
switchDisplay "VGA-1"; ### VGA active, turn it off.
else
switchDisplay "LVDS-1"; ### VGA inactive, turn it on.
fi;
;;
esac;
스크립트는 (ie)에서 호출되며 ext-on
ext-on에 대한 심볼릭 링크입니다. 귀하의 요구에 적응하십시오.$PATH
~/.local/bin
ext-off
ext-toggle
Fn+
i3wm 사용자가 -key 조합을 쉽게 사용하려면 다음에 추가하십시오 ~/.config/i3/config
.
bindsym XF86Display exec --no-startup-id ~/.local/bin/ext-toggle
기적적으로 작동합니다. 결코 나를 실망시키지 마세요 ;)
건배
답변3
다음 링크를 확인하세요:
https://faq.i3wm.org/question/5312/how-to-toggle-onoff-external-and-internal-monitors.1.html
이 스크립트는 bash로 작성되었으며 i3 구성 파일에 단축키를 설정하는 방법을 보여줍니다.