Como posso criar um atalho para levantar a janela de um aplicativo, se existir?

4

Alterno constantemente entre o Sublime Text, Terminal e Chrome. Gostaria de vincular atalhos como "Alt + 1" para que meu Terminal atual e o Google Chrome atual sejam abertos.

Neste momento, sempre que inicio o Google Chrome ou o terminal, abre uma nova janela. Alguma idéia?

Obrigado!

    
por Whatda Fock 15.12.2015 / 00:37

2 respostas

2

O método na resposta da garoa vai funcionar, mas tem algumas desvantagens

  • Tem um atraso; ao pressionar a tecla Super , você teria que esperar cerca de um segundo para fazer os números aparecerem.
  • A ordem dos itens no lançador pode estar mudando, dependendo dos aplicativos que você executa. O número de Chrome pode ser diferente.

Opçãoalternativa

Vocêpoderiasimplesmentefazercomocomando:

wmctrl-achrome

queaumentaráaprimeirajanelaencontradacom"chrome" em seu nome. No entanto, isso também aumentaria a janela em que estou escrevendo agora ( a firefox window, chamada: "Atalho para abrir o Google Chrome atual ..." )

O uso do pid da janela evitará isso. Na minha opinião, é mais elegante colocar o comando:

wmctrl -ia "$(wmctrl -lp | grep "$(pgrep chrome)" | tail -1 | awk '{ print $1 }')"

sob uma tecla de atalho ( Alt + 1 funcionará), dado o fato de que você precisaria ter o wmctrl instalado então:

sudo apt-get install wmctrl

Como adicionar o comando a um atalho

  1. Instale wmctrl

    sudo apt-get install wmctrl
    
  2. crie um pequeno script (abra um arquivo vazio, cole o script abaixo nele)

    #!/bin/bash
    wmctrl -ia "$(wmctrl -lp | grep "$(pgrep chrome)" | tail -1 | awk '{ print $1 }')"
    

    Salvar como raise_chrome.sh

  3. Adicione o script a um atalho; escolha: Configurações do sistema > "Teclado" > "Atalhos" > "Atalhos personalizados". Clique no botão "+" e adicione o comando:

    /bin/bash /path/to/raise_chrome.sh
    

    para (por exemplo) o atalho Alt + 1 .

    N.B. Use um caminho absoluto, não, por exemplo. ~

Explicação

O comando é na verdade uma "conversão" de este , e a explicação é semelhante:

Na seção:

"$(wmctrl -lp | grep "$(pgrep chrome)" | tail -1 | awk '{ print $1 }')"

o comando:

wmctrl -lp

lista todas as janelas, incluindo seu pid e window-id. O resultado é canalizado para

grep "$(pgrep chrome)"

quais filtros (listas) todas as ocorrências de Chrome windows.

Então,

tail -1

nos dará o último item da lista, que é a última janela criada (já que wmctrl lista janelas cronologicamente).

awk '{ print $1 }'

finalmente, nos dará a primeira string na linha (da saída de wmctrl ), que é o id da janela.

O comando:

wmctrl -ia <window_id>

Irá então aumentar a janela última criação de Chrome

Nota

Não é necessário dizer que você pode substituir chrome no comando por qualquer outro aplicativo (nome do processo) e colocá-los em combinações de teclas separadas.

EDITAR

usa o aplicativo como um argumento

Como você mencionou Sublime Text , Terminal e Chrome , convém usar vários atalhos e executar o script com o aplicativo como um argumento.

Para fazer isso

Use o script com uma ligeira diferença:

#!/bin/bash
app=$1
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep "$app")" | tail -1 | awk '{ print $1 }')"

e executá-lo posteriormente com os comandos nas teclas de atalho:

sh /home/jacob/Bureaublad/raise.sh sublime_text
sh /home/jacob/Bureaublad/raise.sh gnome-terminal

e

sh /home/jacob/Bureaublad/raise.sh chrome
    
por Jacob Vlijm 17.12.2015 / 12:59
0

Você pode usar o alt-tab para alternar rapidamente entre os programas.

Você também pode usar o botão Super (também conhecido como botão do Windows) assim: Super + número. por exemplo. O Super + 3 abrirá o terceiro aplicativo no inicializador de aplicativos. Para identificar rapidamente os números associados aos aplicativos, pressione e segure o botão super.

    
por drizzle 15.12.2015 / 00:49