Sintaxe Xmodmap para religar Shift + Down para Up

3

Eu gostaria de religar algumas chaves no Linux via Xmodmap. Cursor esquerdo e para cima no meu laptop Acer (sim, eu sei) quebrou. Gostaria de mapear shift + down para cima e shift + da direita para a esquerda. Lutando para determinar a sintaxe para isso de man pages. Esta sintaxe está errada, joga modificador ruim, mas captura a intenção:

add Shift_L+Down = Up
    
por Mâtt Frëëman 19.01.2015 / 03:05

1 resposta

4

Você pode usar:

keysym Down = Down Up

para fazer isso. O valor keysym é uma lista ordenada de keyyms para usar quando não modificada, deslocada, comutada, deslocada e comutada, tecla AltGr +, tecla shift-AltGr + (todos opcionais). Aqui não modificado Down é ele mesmo, enquanto Shift-Down está ligado a Up , e nós não definimos nada para os modos comutado ou AltGr.

Há um problema remanescente: a tecla Shift ainda está pressionada, então Shift-Down será tratado pelos aplicativos da mesma maneira que Shift-Up . Isso pode não ser um problema para seus casos de uso, mas se você for usar algo que, por exemplo, usa setas deslocadas para seleção de texto, você terá um problema. Nesse caso, há outra opção:

keysym Down = Down Down Up Up

Isso liga Down e Shift-Down como Down , e Mode_switch-Down e Mode_switch-Shift-Down para Up . É improvável que os aplicativos estejam ouvindo a tecla Mode_switch da mesma maneira que fazem para Shift , para que você não tenha o duplo comportamento.

Você então precisa vincular algo ao Mode_switch keysym. Eu uso:

keycode 66 = Mode_switch

que, no meu teclado, substitui Caps Lock , uma chave para a qual não tenho uso. Caps Lock + Abaixo agora me dá Up no que diz respeito a todas as minhas aplicações. Você poderia religar uma das chaves de turno se preferir, mas perderia o comportamento do modificador Shift quando o fizesse.

Na verdade, existem mais níveis que você pode ligar se precisar, que usam AltGr e, dependendo do seu layout, pode haver outro conjunto de alterações disponíveis. XCompose também pode ser útil para você.

    
por 19.01.2015 / 04:14