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 .