Existe uma maneira de definir teclas de atalho para janelas abertas específicas no Gnome?

6

Estou usando o Ubuntu 10.10 e sempre abri as janelas:

Navegador, console, vim e Skype. Eu quero definir teclas de atalho específicas para essas janelas. Existe uma maneira de usar, por exemplo:

Win-C = Google Chrome
Win-T = terminal
Win-S = Skype

Eu quero usar teclas de atalho para alternar entre essas janelas.

    
por RusAlex 20.06.2011 / 08:53

4 respostas

7

É possível conseguir isso com um script python. O script requer que python-wnck e python-gtk sejam instalados para funcionar, embora eu ache que eles sejam instalados por padrão.

Copie e cole isso em um editor de texto e salve em um local sensível (por exemplo, switch.py na sua pasta pessoal):

#!/usr/bin/env python2
import wnck
import gtk
import sys
import time

screen = wnck.screen_get_default()

while gtk.events_pending():
    gtk.main_iteration()

windows = screen.get_windows()

for w in windows:
    if len(sys.argv) > 1:
        if w.get_application().get_name() == sys.argv[1]:
            w.activate(int(time.time()+1))
            break
    else:
        print("Application name of window with title " + repr(w.get_name()) + " is " + repr(w.get_application().get_name()))

Você pode configurar o atalho de teclado abrindo Atalhos de teclado (Preferências de sistema- > > Atalhos de teclado).

Clique em adicionar para criar um novo atalho.

Useocomandobash-c'python~/switch.pyTerminal'(istosupondoquevocêosalvoucomoswitch.pynasuapastapessoal).Substitua'Terminal'pelonomedoaplicativodajanelaparaaqualvocêdesejaalternar.Paradescobrirosnomesdosaplicativosdasjanelasabertasnomomento,executepython~/switch.pyemumterminal.

Você pode então atribuir sua combinação de teclado preferida a essa ação.

    
por dv3500ea 20.06.2011 / 13:49
3

Isso é possível no Kubuntu (kwin) ... clique na barra de título de um aplicativo, escolha "avançado- > atalho da janela". Eu sei que isso não responde exatamente à sua pergunta - estou curioso para saber se o Gnome / Unity também pode fazer isso.

    
por user20304 20.06.2011 / 13:22
2

Se preferir um pacote existente, existe wmctrl que suporta muitos gestores de janelas diferentes:

% bl0ck_qu0te%

Instale:

sudo apt-get install wmctrl

Listar janelas existentes:

wmctrl -l

E mapa:

wmctrl -a <WIN>

para um atalho de teclado.

    
por ooi 25.02.2015 / 02:39
0

A seguinte adaptação do código de @ dv3500ea funcionou para mim, incluindo a configuração do foco:

#!/usr/bin/env python2
import wnck
import gtk
import sys
import time

screen = wnck.screen_get_default()

while gtk.events_pending():
    gtk.main_iteration()

windows = screen.get_windows()

for w in windows:
    if len(sys.argv) > 1:
        if w.get_application().get_name() == sys.argv[1]:
            w.activate(gtk.gdk.x11_get_server_time(gtk.gdk.get_default_root_window()))
            break
    else:
        print("Application name of window with title " + repr(w.get_name()) + " is " + repr(w.get_application().get_name()))
    
por Michael Palm 23.03.2018 / 08:56