Como fechar todas as instâncias de um programa instantaneamente?


11

O gato da minha namorada estava andando no meu laptop e eu não a notei. Quando me virei para verificar, vejo que tenho 32 guias "Archive Manager". Como posso fechá-los todos instantaneamente, como se estivesse usando Alt+ F4em todos eles ao mesmo tempo.

Respostas:


14

Na linha de comando:

killall file-roller

Você pode fazer alt + f4, mas precisa fazer isso para todos os gerenciadores de arquivos que foram abertos.


21
Embora alguns possam argumentar que o comando "killall" é um pouco pesado, o seu ainda é uma solução muito mais humana do que a kill catação que eu sugeriria.
23817 Nick Weinberg

Não acho que exista uma maneira mais fácil de detê-los. Muita ALT + F4 do faria isso para, mas que não foi a questão ;-)
Rinzwind

5
@NickWeinberg eu aprecio isso :)
cat

5
Eu li esta pergunta e respondo errado. Eu pensei que era sobre o gato ter fechado tudo, e que OP não sabia como o gato fez isso. Fiquei espantado que o gato era capaz de escrever killall file-roller: D
Viktor Mellgren

1
caramba @ViktorMellgren parar de me fazer derramar café na minha tela
Rinzwind

3

Outra abordagem seria usar o wmctrlutilitário (controle do Gerenciador de Janelas). Isso pode ser usado para dizer ao gerenciador de janelas para fingir que você clicou no botão Fechar. Isso evita a natureza potencialmente pesada de killall; por exemplo, alguns programas com um documento não salvo são encerrados imediatamente quando são mortos (mesmo que gentilmente), enquanto o clique no botão Fechar exibe a mensagem "Deseja salvar?" pronto.

O comando básico é wmctrl -c WINDOWTITLE, portanto, neste caso wmctrl -c "Archive Manager"(supondo que ele não tenha um arquivo aberto: isso altera o título). Infelizmente, ele fecha apenas um de cada vez; portanto, precisamos fazer mais para fechar todos eles.

wmctrl retorna sucesso se encontrar uma correspondência, para que possamos fazer um loop até que falhe:

while wmctrl -c "Archive Manager"; do sleep 0.1; done

Isso sempre escolhe a primeira janela que encontra, por isso precisamos dormir um pouco para evitar o envio contínuo de um fluxo de comandos de fechamento para a primeira janela que já está ocupada fechando - isso pode causar um erro que interrompe o loop.

Isso é simples e geralmente funciona, mas dormir uma quantidade de tempo definida e esperar que uma janela se feche antes de tentarmos novamente é uma maneira lenta e confusa de evitar o erro. O que realmente queremos fazer é enviar imediatamente uma mensagem próxima para cada janela correspondente.

Podemos encontrar todas as janelas abertas com wmctrl -l. Isso lista um ID numérico da janela que podemos usar para identificar cada janela individualmente, mesmo que todas tenham o mesmo título. Então, precisamos filtrar apenas as janelas correspondentes (o grepcomando), retirar apenas o ID da janela (o cutcomando) e chamar wmctrl -i -ccada uma. O -ié necessário para coincidir com o ID de janela em vez do título da janela.

for w in $(wmctrl -l | grep "Archive Manager" | cut -d" " -f1); do
    wmctrl -i -c $w
done

Um pouco complicado para digitar sempre que um gato pisar no teclado, mas espero que seja uma técnica útil para manter em sua caixa de ferramentas de script.


2
Então você espera que o gato digite algo que valha a pena salvar?
Rinzwind

0

Você pode usar o atalho do teclado Ctrl+ Qque fechará todas as janelas abertas do Gerenciador de arquivos.


O atalho Ctrl+ Qé comum no Ubuntu (e muitas outras distribuições também). Funciona da mesma forma com a maioria dos aplicativos que usei até agora. Ou seja, fechará todas as janelas de um aplicativo em execução.


Desfiz o meu voto, já que não posso confirmar que Ctrl+Qrealmente faz isso. Enquanto o Quitmenu fechava todas as janelas abertas do Archive Manager, a tecla de atalho não fazia o mesmo (pelo menos na versão 14.04).
precisa saber é o seguinte

1
@clearkimura Não posso confirmar se é devido ao fato de estar usando o gnome ou se é por causa da versão do Ubuntu, mas funciona para mim no Ubuntu 17.04 (com gnome) que usa o Archive Manager versão 3.22.3
Dan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.