Isto não funciona com Wayland! Se você está usando o Ubuntu 17.10 ou mais recente e não mudou para usar o Xorg no login, esta solução não é para você.
Para tarefas como esta, eu uso xdotool
, você pode precisar instalá-lo primeiro com:
sudo apt install xdotool
Aqui está meu script:
#!/bin/bash
search="--class xterm"
a=$(xdotool getactivewindow getwindowpid)
b="$(xdotool search $search getwindowpid %@)"
for i in $b; do
[[ $a -ne $i ]] &&
echo kill $i
done
Como você não mencionou qual emulador de terminal você usa, eu escrevi o script para xterm
aqui, mas você pode facilmente mudar isso modificando a parte citada na segunda linha. --class xterm
é uma opção xdotool --search
que corresponde às janelas da classe de janela xterm
. Leia a seção "COMANDOS DE JANELAS" de man xdotool
para acessar saber sobre essas opções, para testá-los usar
xdotool getactivewindow getwindowpid
para obter o PID da janela do terminal ativo e
xdotool search YOUROPTIONS getwindowpid %@
para obter os PIDs de todas as janelas correspondentes a YOUROPTIONS
, por exemplo
xdotool search --all --name yourwindowsname --desktop 1 --class getwindowpid %@
para corresponder a todas as janelas com o nome yourwindowsname
residindo na área de trabalho 1
. --all
significa que ambas as condições precisam ser atendidas ("e" lógicas), o padrão é --any
com o significado oposto.
Quando você estiver pronto e o script exibir os comandos corretos, remova echo
para executar as ações kill
.
Acontece que para o konsole
do KDE, o PID informado por xdotool
é o mesmo para todas as janelas, então precisamos dessa abordagem um pouco diferente:
#!/bin/bash
search="--onlyvisible --class konsole"
a=$(xdotool getactivewindow)
b="$(xdotool search $search)"
for i in $b; do
[[ $a -ne $i ]] &&
xdotool windowclose $i
done