Aumentar o brilho ao maximizar o terminal

4

Eu estou olhando para aumentar o brilho quando eu maximizar ou forçar a janela do Terminal que tem o Vim em execução. Eu gostaria de redefinir o brilho para normal quando eu minimizar ou fundo desse processo também.

Eu normalmente preciso de mais brilho ao trabalhar com o plano de fundo preto do Vim do que o plano de fundo branco do Chrome, por isso gostaria que isso acontecesse automaticamente.

Eu uso isso para diminuir o brilho programaticamente:

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

Posso, de alguma forma, ligar-me ao evento minimizar / maximizar de uma janela GUI e executar o acima como um script se a janela for Terminal com o Vim sendo executado?

    
por Maros Hluska 04.06.2013 / 08:29

1 resposta

1

Você pode fazer algo como:

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

Substitua o echo ... pelo comando real para definir o brilho.

A idéia é usar xdotool para ser notificado quando o foco da janela mudar. Em seguida, usamos xprop no id da janela relatado por xdotool para ver se a janela que atualmente tem o foco é gnome-terminal e está maximizada.

No entanto, não funciona para janelas que se conectaram depois que xdotool foi iniciado.

Um método mais robusto poderia ser apenas verificar a janela ativa atual em um loop:

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

Você pode encontrar mais detalhes na página do manual do xdotool .

    
por 04.06.2013 / 15:48