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