Make Compose não compõe depois de pressionar algumas teclas

3

No meu laptop, eu uso o Win como um modificador. Com a tecla Fn pressionada, a chave envia um keysym diferente e eu uso isso como uma tecla de composição.

keycode 133 = Hyper_L
keycode 134 = Multi_key
add mod4 = Hyper_L

Eu tenho algumas associações de teclas do gerenciador de janelas no formato Hyper + KP_ N . Em um laptop, isto requer pressionar e segurar Win , então pressione e segure Fn , e então pressione KP_ N e finalmente liberando tudo. Se eu pressionar Fn antes de Hyper , isso envia o Multi_key keysym em vez de Hyper_L , então estou pressionando Compose. Eu acho que a coordenação dos dedos necessária para pressionar Fn antes de Hyper ser muito menor, então eu gostaria de poder fazer isso. Se eu pressionar uma tecla do teclado (que requer Fn ), eu quero que a tecla pressionada seja interpretada como o modificador mod4 em vez de Multi_key .

Eu posso adicionar o modificador mod4 ao Multi_key keysym, e isso faz com que minhas ligações do gerenciador de janelas funcionem quando eu pressionar Fn e Hyper em qualquer ordem. No entanto, se eu pressionar Fn primeiro (que é como isso acontece naturalmente), isso registra um Multi_key keysym, então uma seqüência de teclas como Fn + Hyper + KP_1 , a , ' acaba trocando para o espaço de trabalho 1 e inserindo á em vez de 'a , porque o aplicativo que é focalizado depois que o atalho de teclado é ativado recebe um evento de liberação de chave para Multi_key .

Como posso ter meu bolo e comê-lo?

  • Se eu pressionar Hyper e Fn em qualquer ordem, em seguida, pressionar uma tecla, isso só deve acionar minha vinculação do gerenciador de janelas e não deixar um Compose pendente. O aplicativo não deve receber um evento de liberação de chave para Multi_key ou deve receber outro evento (injetado pelo gerenciador de janelas) que efetivamente cancelará o primeiro.
  • Se eu pressionar e segurar Fn e pressionar Hyper , solte os dois, isso deve enviar um evento de press e release para Multi_key .

Eu não me importo se isso é feito por meio de uma alteração na configuração do meu teclado, ou das ligações do meu gerenciador de janelas, ou de ambos. O gerenciador de janelas é o sawfish, então é bastante flexível.

Se a solução envolve XKB, não quero definir toda a configuração do meu teclado através do XKB. A parte XKB deve se concentrar em definir um grupo para as teclas afetadas (ou o que for preciso).

    
por Gilles 25.09.2013 / 12:30

0 respostas