Dizer se as janelas estão abertas e não minimizadas a partir do shell script

5

Eu gostaria de adicionar ao meu .bashrc um pequeno script que define o plano de fundo do terminal como transparente, se eu não tiver nenhuma janela não-minimizada não-terminal aberta e deixar o plano de fundo do terminal como imagem, se houver algo aberto.

Estou usando o 12.04 com o Unity.

Não tenho nenhum problema em configurar o plano de fundo do terminal, mas só tenho um kludge para saber se um programa está aberto e não posso dizer se a janela está minimizada.

Meu kludge no momento:

if [ -z "$( ps -e | grep firefox )" ]
    then
        gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/background_type transparent
    else
        gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/background_type image
fi


(add inset for each of my most used programs)

Eu ficaria feliz em poder dizer no lançamento do terminal, mas se eu pudesse tornar o terminal transparente ao minimizar (ou fechar) a última janela aberta, isso seria incrível. Eu acho que algo como:

export largewindows=  #number of open, non-minimised windows

if [ $largewindows -eq 0 ]
    then
        gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/background_type transparent
fi

com (de alguma forma) um pequeno script que executa isso ao abrir, fechar, minimizar ou minimizar uma janela de programa.

O que eu não sei:

  • Como contar o número de janelas (ou até mesmo executar programas) automaticamente.

  • Como executar um script toda vez que eu abrir / fechar / minimizar / minimizar uma janela.

Qualquer conselho na direção certa seria apreciado - Muito obrigado!

    
por Apple 16.02.2013 / 14:48

1 resposta

1

Para encontrar janelas, você pode usar a pesquisa xdotool como

WID='xdotool search "Mozilla Firefox" | head -1'

xdotool se comporta parecia algo que você pode usar para a segunda parte, mas infelizmente não maximiza e minimiza eventos lá - também funciona apenas com janelas existentes - mas você pode verificar janelas abertas de tempos em tempos com o cron.

    
por Kai 11.08.2013 / 10:05