Acredito que a página de manual relacionada seja XKillClient . Você pode usar xdotool
para simular o botão Fechar sendo clicado em um terminal como esse.
Exemplo
Supondo que eu tenho um gnome-terminal
aberto e seu nome é "saml @ grinchy: / home".
Obter o ID da janela
$ xdotool search --name "saml@grinchy:/home"
96488188
Envie um Alt+F4
$ xdotool windowactivate --sync 96488188 key --clearmodifiers \
--delay 100 alt+F4
Você pode reuni-los incorporando o primeiro comando no segundo:
$ xdotool windowactivate --sync $( ...1st command...) key --clearmodifiers \
--delay 100 alt+F4
Você pode salvar a si mesmo deixando xdotool
as duas coisas ao mesmo tempo:
$ xdotool search --name "saml@grinchy:~" key alt+f4
Globalmente
Você pode adaptar o que forneço para executá-lo em janelas com o mesmo nome:
$ xdotool search --name "saml@grinchy:~"
96488779
96468996
Ou no Windows por outros atributos. Você pode usar xwininfo
para descobrir mais sobre uma janela específica. Execute-o e clique na janela de seu interesse:
$ xwininfo
xwininfo: Please select the window about which you
would like information by clicking the
mouse in that window.
xwininfo: Window id: 0x5c04d4b "saml@grinchy:~"
Absolute upper-left X: 14
Absolute upper-left Y: 74
Relative upper-left X: 14
Relative upper-left Y: 74
Width: 941
Height: 361
Depth: 32
Visual: 0x62
Visual Class: TrueColor
Border width: 0
Class: InputOutput
Colormap: 0x5c00003 (not installed)
Bit Gravity State: NorthWestGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners: +14+74 -485+74 -485-465 +14-465
-geometry 132x24+14+74
Outras ferramentas úteis ao lidar com janelas X11 são xdpyinfo
& xprop
. xdpyinfo
pode ser usado para descobrir informações sobre o servidor X. Assim, você pode descobrir qual janela tem foco:
$ xdpyinfo |grep focus
focus: window 0x5c00005, revert to Parent
xprop
e xwininfo
pode -id
alternar para que você possa fornecer o ID da janela em que está interessado, em vez de precisar clicar nele:
$ xprop -id 0x5c00001|grep -i class
WM_CLASS(STRING) = "gnome-terminal", "Gnome-terminal"
Referências
xdotool search --name "saml@grinchy:~" key alt+f4
, problema é que eu não encontrei como fazer isso com várias janelas que têm o mesmo nome ...wmctrl -r :ACTIVE: -N "MyWindowTitle
key alt+F4
para todas as janelas (se o redimensionamento pode ser feito, por que não alt + F4), mas sem sorte. E obrigado: D.xdotool search --name "gedit|terminal|office" key --window %@ alt+F4
procurarei por qualquer janela que tenha gedit, terminal ou escritório em seu nome de título e envie o comando alt + F4.Achei
xdotool
esquisito / com bugs, às vezes fecha a janela do primeiro plano em vez da janela que deve ser fechada. Isso parece dever-se à maneira como as chaves são enviadas após trazer a janela para o primeiro plano, em vez de enviar diretamente os eventos da janela, e é um problema muito irritante. Eu sugiro usarwmctrl
, que fecha diretamente uma janela sem enviar pressionamentos de tecla.Você pode fechar uma janela diretamente combinando com o nome, por exemplo, ambos fecharão a janela "Untitled Document 1 - gedit":
Você pode usar a
-F
opção para considerar apenas correspondências exatas:Ou você pode fornecer o ID diretamente:
Mais exemplos / documentação de uso podem ser encontrados aqui .
Uma coisa que eu acho muito útil é
xdotool
a capacidade de esperar até que haja um resultado usando o--sync
argumento. A combinação do comando dois em um é feita assim:Se você estiver em um Mac, provavelmente precisará do
-I{}
parâmetro:Se você deseja oferecer suporte a várias janelas, você deve pedir
xargs
para ligarwmctrl
com no máximo 1 argumento de cada vez com a-n
opçãowmctrl
não suporta explicitamente várias janelas como argumentos:Isso aguardará até que exista pelo menos uma janela desse tipo e feche todas elas.
fonte
top
), é claro, o mesmo que clicar no botão Fechar.xdotool search --sync --name "Software Updater" | xargs wmctrl -i -c
em Trusty, e começou Software Updater. A partir de agora, o Atualizador de Software não será exibido corretamente. Apenas a barra de título é exibida. Reinstalar o gerenciador de atualizações não ajudou.pkill (1) deve ser o que você precisa.
fonte
--signal
opção não é diferente dekill
oukillall
. Estou esperando o que você deseja salvar? alerta.