%20ou%20n%C3%A3o%3F.png)
Eu uso o xdotool para mapear/desmapear um conjunto de janelas do tipo dock. Agora, xdotool não vem com um comando de alternância (map/unmap), nem faz a mesma operação com várias janelas ao mesmo tempo. Então, estou tentando realizar a alternância usando um script. Preciso descobrir se a operação mais recente foi mapear ou desmapear.
Responder1
De certa forma, os arquivos podem ser pensados como uma forma simples de armazenar variáveis globais, globais para que sejam visíveis de qualquer lugar. Portanto, o estado (mapeado/não mapeado) pode ser armazenado como uma string em um arquivo.
Não é a coisa mais elegante, mas este script (chamado xctl) deve servir por enquanto.
#!/usr/bin/env zsh
# This file serves as a global variable value holder showing if the windows are mapped or not.
state=/tmp/state
for process in ${@:1}; do
case $1 in
(show) xdotool search --class $process windowmap %@ windowraise %@;;
(hide) xdotool search --onlyvisible --class $process windowunmap %@;;
(*) break;;
esac
done
[[ $1 == toggle ]] && {
[[ -f $state ]] && [[ `cat $state` == show ]] && xctl hide ${@:1} || xctl show ${@:1}
} || echo $1 > $state
Para alternar um conjunto de janelas, execute xctl toggle window1 window2 ...
.
O script deve residir no caminho do shell.