-
Instalar o wmctrl
x11-misc/wmctrl Homepage: http://tomas.styblo.name/wmctrl/ Description: command line tool to interact with an EWMH/NetWM compatible X Window Manager
-
Iniciar um terminal "nomeado"
urxvt -name moo
-
Escreva o seu script para minimizar / alternar usando
wmctrl -x -r moo.URxvt -b toggle,hidden
-
e ligue se a partir do arquivo de chaves.
F11 :ExecCommand /home/me/script/toogle-hidden moo
Se você precisar de mais dicas, ficarei feliz em ajudar.
A propósito, não acho que sua abordagem anterior seja ruim. Além da maneira como você encontra o pid e algumas advertências da tela (não críticas), não há nada de errado com isso.
atualização:
A tela de retorno não é realmente um problema, porque você pode fazer a rolagem (no modo de cópia, pressionando ^ A + [) e porque X pode ser alcançado, definindo DISPLAY. Algumas pessoas querem que você acredite que tmux
é a próxima melhor coisa para a iluminação, mas eu costumo escrevê-las como faço com os zelotes zsh ...
A outra coisa é insegura porque você procura pelo pid em deslocamentos de cadeia específicos (head -c) e porque a palavra-chave grep é obrigada a fornecer um pid errado (várias linhas) em algum momento. por exemplo:
$ ps -ef | grep moo
jaroslav 20089 1 0 Jul23 ? 00:00:00 SCREEN -dR moo
jaroslav 26545 26420 0 08:21 pts/10 00:00:01 rxvt-unicode -name moo
jaroslav 27702 26981 0 08:52 pts/12 00:00:00 /usr/bin/perl /usr/bin/cowsay moo
jaroslav 27704 26771 0 08:52 pts/7 00:00:00 grep --colour=auto moo
Isso mataria a tela e não o emulador de terminal. É "inseguro" supor que ps produz uma quantidade específica de linhas ou que algumas colunas são de uma determinada largura (acho que você assumiu 3 linhas com cabeçalhos e 14 caracteres para as duas primeiras colunas).
Eu usaria algo assim:
ps 'pidof rxvt-unicode' | grep -m1 -e '-nam[e] moo' | awk '{ print $1 }'
ou
ps ax | awk '$0 ~ /rxvt-unicode.*-nam[e] moo/ {print $1; exit}'
Com ambos, pelo menos tenho certeza que o pid pertence a um terminal rxvt que foi iniciado com -name moo como dois de seus argumentos. E absolutamente certo de que a saída terá no máximo um pid. O -nam [e] é um truque antigo para evitar a correspondência do comando ps | grep
na saída.
Tudo isso é problemático ... As regras práticas são.
- não pressupõe que a saída de um programa seja x caracteres largos ou y linhas longas.
- expressões regulares longas (mais rigorosas) são quase sempre melhores do que as curtas.