Existe um lugar no "Ubuntu" que armazena uma lista completa de quais teclas / combinações / atalhos estão vinculados a quê?
Quais são os atalhos de teclado e mouse do Unity? listar alguns atalhos do "Unity" para o Dash, Launcher, etc. e Como listar as combinações de teclas do Compiz em uso? mostra uma maneira de listar ligações de compiz, mas estou procurando mais do que isso (não apenas algumas das combinações de teclas limitadas apenas ao Unity ou Compiz), embora seja um começo.
Existe uma lista global de atalhos de teclado / combinações de teclas / atalhos de teclado em uso, armazenados em algum lugar do Ubuntu ou existe uma maneira de compilá-los e listá-los? Um que se aplica ao Ubuntu e as coisas em execução (Unity, Compiz, Atalhos para Programas, etc.).
Certamente, o Ubuntu deve armazenar isso em algum lugar para que a combinação de teclas pressionada no teclado seja direcionada para o que está conectado? Se não houver esse lugar no Ubuntu, publique como resposta, para que os usuários futuros, essa pesquisa, saibam.
Respostas:
Seu gerenciador de janelas obtém todos os principais eventos antes dos aplicativos, por isso, se quiser consumi-los, o faz e seus aplicativos nunca os receberão. Se o gerenciador de janelas não quiser reagir aos eventos principais, ele os passará para o aplicativo.
Você pode verificar isso sozinho da seguinte maneira:
xev | grep KeyPress
, o visualizador de eventos X.Alt
, observe quexev
mostra que o evento principal foi encontrado na janela do terminal.Ctrl
, observe novamente quexev
recebi o evento. Tome nota da aparência da janela do terminal agora.Left arrow
para ir para outro espaço de trabalho. (Suponho que você tenha isso como uma tecla de atalho do gerenciador de janelas.)Right arrow
para voltar para onde você está executandoxev
. Observe que ele nunca recebeu nenhum evento-chave para você alternar áreas de trabalho por meio das teclas de seta esquerda e direita - a saída é a mesma da Etapa 4.Assim, você vê que o gerenciador de janelas na prática obtém todos os eventos principais e, se não deseja capturá-los, passa-os para o aplicativo. O aplicativo então faz o mesmo com seus próprios widgets (como você pode pressionar o
Enter
dia todo no navegador da Web, mas não fará nada até colocar o cursor na barra de endereços ou em algum campo em que é possível inserir texto) .Cabe ao aplicativo definir seus próprios atalhos, e os aplicativos são configurados independentemente um do outro.
No KDE 3.x, se bem me lembro, você pode definir os atalhos padrão (por exemplo,
Ctrl-s
para salvar) no KDE Control Center e isso se aplicaria a todos os aplicativos escritos com o kit de ferramentas Qt, mas não sei se isso ainda é possível desde a mudança para o KDE 4.fonte
Desde o Ubuntu 17.10
Nestes caminhos :
Você também pode usar
dconf-editor
(GUI) ougsettings
(CLI).Desde o Ubuntu 12.10-17.04
~/.config/dconf/user
(no dconf-editor:org.gnome.settings-daemon.plugins.media-keys.custom-keybindings
(atalhos personalizados)~/.config/compiz-1/compizconfig
Até o Ubuntu 12.04
Os atalhos são colocados de maneira diferente, dependendo da área de trabalho que você estiver usando (gnome / unity, kde, xfce, lxde, etc).
Para o gnome, eles estão em
~/.gconf/desktop/gnome/keybindings
(atalhos personalizados)e abaixo
~/.gconf/apps/metacity
.fonte
general/
global_keybindings/
window_keybindings/
gsettings
instruçõesNão, não há um único local onde todos os atalhos são armazenados. Os aplicativos podem optar por armazenar suas configurações onde quiserem.
Dito isto, você está olhando principalmente para dois níveis: o nível do aplicativo (como Ctrl-C para copiar no Firefox) e o nível do gerenciador de janelas (como o Win + D para mostrar a área de trabalho). O Compiz usa o gconf para armazenar sua configuração .
Para aplicativos, você pode dividi-los aproximadamente pelos kits de ferramentas. Ou seja, os aplicativos GTK também usam o gconf.
Nem tanto. O aplicativo focado recebe o primeiro chute em um evento do teclado X, mas, se não o fizer, será exibido para outros aplicativos, como o gerenciador de janelas. Assim, você pode ter um jogo que captura Alt + F4 e não fecha a janela (maldito seja, Jamestown!). Eu acho que você está pensando que ele vai para algum roteador central de eventos, depois é compatível com algum banco de dados e roteado para o seu destino. É mais como passar uma garrafa de bebida: passe, dê um gole se quiser e passe o resto, ou pegue a coisa toda e seja ganancioso.
O ambiente Linux / FOSS (você deve ter notado) é bastante democrático, e fazer com que todos os aplicativos concordem em um único repositório de configuração de teclado central é uma tarefa fácil. Por um lado, você tem aplicativos não mantidos que foram escritos há muito tempo e que não sabiam disso.
Atualização: de acordo com os documentos Xlib sobre o assunto :
Além disso,
E você pode definir um atributo para desativar a propagação .
O problema é que você não diz ao X quais chaves devem ser ouvidas; portanto, nunca é possível dizer a priori quais chaves o aplicativo escuta (muito menos o que eles fazem) ou realmente se eles pretendem propagá-lo se, de fato, ouvindo. Portanto, um registro central é impossível no nível X, portanto, você deve fazer isso no nível do kit de ferramentas, o que é praticamente impossível. : D
fonte
Os aplicativos armazenam seus atalhos de forma independente, para que não haja um local central, onde eles são armazenados.
Eu não entendo todo o processo de interação do teclado - SO - kernel - X11 - Gerenciador de janelas - Ambiente de trabalho - Aplicativos, mas se uma determinada janela, como o Gedit, tiver o foco do teclado, ele poderá lidar com a entrada por conta própria, e faz isso.
fonte
Na versão 11.10, em Configuração do sistema -> Teclado -> Atalhos, você obtém uma lista bastante grande deles. É isso que você está procurando?
fonte