터미널 최대화 시 밝기 증가

터미널 최대화 시 밝기 증가

Vim을 실행하는 터미널 창을 최대화하거나 전경으로 표시할 때 밝기를 높이고 싶습니다. 프로세스를 최소화하거나 배경화할 때 밝기를 보통으로 재설정하고 싶습니다.

Vim의 검은색 배경을 사용할 때 일반적으로 Chrome의 흰색 배경보다 더 높은 밝기가 필요하므로 자동으로 발생하도록 하고 싶습니다.

프로그래밍 방식으로 밝기를 줄이기 위해 이것을 사용합니다.

$ echo 1 | sudo tee /sys/class/backlight/acpi_video0/brightness

창이 Vim을 실행하는 터미널인 경우 어떻게든 GUI 창의 최소화/최대화 이벤트에 연결하여 위의 이벤트를 스크립트로 실행할 수 있습니까?

답변1

다음을 수행할 수 있습니다.

xdotool search --onlyvisible . behave %@ focus getwindowgeometry |
while read x id && read x && read x; do
  eval "$(xprop -notype -id "$id" \
            8s '=$0\n' WM_CLASS \
            32a '="$0+"\n' _NET_WM_STATE)"
  [ "$WM_CLASS" = gnome-terminal ] &&
    [ "$_NET_WM_STATE" = "_NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ" ]
  rc=$?
  if [ "$rc" != "$last_rc" ]; then
    if [ "$rc" -eq 0 ]; then
      echo "set high brightness"
    else
      echo "set low brightness"
    fi
    last_rc=$rc
  fi
done

echo ...실제로 밝기를 설정하는 명령으로 대체됩니다 .

아이디어는 xdotool창 포커스가 변경될 때 알림을 받는 것입니다. 그런 다음 xprop보고된 창 ID를 사용하여 xdotool현재 포커스가 있는 창이 gnome-terminal최대화되었는지 확인합니다.

xdotool단, 시작 후 연결된 Windows 에서는 작동하지 않습니다 .

보다 안정적인 접근 방식은 현재 활성 창을 반복하는 것입니다.

while :; do
  # wait for a focus event:
  sh -c 'exec xdotool search --onlyvisible . behave %@ focus exec kill "$$"' 2> /dev/null

  id=$(xdotool getactivewindow)
  eval "$(xprop -notype -id "$id" \
            8s '=$0\n' WM_CLASS \
            32a '="$0+"\n' _NET_WM_STATE)"
  [ "$WM_CLASS" = gnome-terminal ] &&
    [ "$_NET_WM_STATE" = "_NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ" ]
  rc=$?
  if [ "$rc" != "$last_rc" ]; then
    if [ "$rc" -eq 0 ]; then
      echo "set high brightness"
    else
      echo "set low brightness"
    fi
    last_rc=$rc
  fi
done

자세한 내용은 다음을 통해 확인할 수 있습니다.xdotool 매뉴얼 페이지.

관련 정보