Seu gerenciador de janelas obtém os eventos principais antes que os aplicativos o façam, portanto, se quiser consumir esses eventos, ele o faz e seus aplicativos nunca os receberão. Se o gerenciador de janelas não quiser reagir aos eventos principais, ele os encaminha para o aplicativo.
Você pode verificar isso sozinho da seguinte maneira:
- Iniciar um terminal.
- Inicie
xev | grep KeyPress
, o visualizador de eventos X. - Pressione
Alt
, observe quexev
mostra que recebeu o evento principal em sua janela de terminal. - Pressione
Ctrl
, observe novamente quexev
recebeu o evento. Tome nota de como a janela do terminal se parece agora. - Pressione
Left arrow
para ir para outro espaço de trabalho. (Estou supondo que você tenha isso como uma tecla de atalho do gerenciador de janelas.) - Pressione
Right arrow
para voltar para onde você está executandoxev
. Observe que ele nunca recebeu nenhum evento importante para a comutação de espaços de trabalho por meio das teclas de seta para a esquerda e para a 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 quiser capturá-los, os transfere para o aplicativo. O aplicativo então faz o mesmo para seus próprios widgets (como como você pode pressionar Enter
o dia todo em seu navegador, mas não fará nada até que você coloque o cursor na barra de endereços ou em algum campo onde você possa digite o 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ê poderia definir os atalhos padrão (por exemplo, Ctrl-s
para salvar) no Centro de Controle do KDE e se aplicaria a todas as aplicações escritas com o Qt toolkit, mas eu não Não sei se isso ainda é possível desde que eles mudaram para o KDE 4.