Xorg compõe a chave sem perder o valioso modo de chave / bypass?

5

Eu gostaria de configurar uma chave de composição, mas as únicas opções disponíveis nas configurações do sistema KDE (e via / usr / share / X11 / xkb / rules) são:

compose:ralt         Right Alt
compose:lwin         Left Win
compose:rwin         Right Win
compose:menu         Menu
compose:lctrl        Left Ctrl
compose:rctrl        Right Ctrl
compose:caps         Caps Lock
compose:102          Less-than/Greater-than

Nada disso me agrada; "compose: caps" pode estar ok, mas já está mapeado para ctrl.

Existe uma opção para configurar alguma chave (por exemplo, algumas dessas teclas de função extra) ou para obter a chave de alguma forma? (por exemplo, ralt seria OK, se eu pudesse obter facilmente o comportamento original da chave (AltGr))

Eu adoraria ter algo como Shift-AltGr para acionar o modo Compose.

Eu acho que poderia adicionar uma regra extra, como é feito para / com compose:102 ... a que 102 se refere? (não é algo descartado via xev ).

Existe também uma opção lv3:ralt_switch_multikey (Alt Direita, Shift + Alt Direita é Multi_Key), mas isto não funcionou como esperado (veja link ).

    
por blueyed 18.10.2010 / 19:00

2 respostas

2

lv3:ralt_switch_multikey é o que eu procurava:

# But here it is: /usr/share/X11/xkb/rules/xorg.lst
# Anyway... what this is doing:
# lvl3:ralt_switch_multikey
#   right alt = AltGr = choose third shift level
#   shift + right alt = compose key aka Multi_Key

(via link )

Eu tenho este conjunto através das configurações do sistema do KDE (Teclado = > Avançado), para que eu tenha o seguinte no meu ~/.kde/share/config/kxkbrc :

Options=ctrl:nocaps,lv3:ralt_switch_multikey
    
por 18.10.2010 / 19:19
1

Outra abordagem é usar xmodmap . Adicione o seguinte ao seu ~/.Xmodmap :

keycode 134 = ISO_Level3_Shift Multi_key

Isso faz distinção entre maiúsculas e minúsculas. A tecla alt direita ( AltGr ) no meu teclado tem o código de tecla 134. Se isso não funcionar, a explicação provável é que o teclado usa um número diferente para essa tecla. Para descobrir, execute xev , clique na chave que deseja usar e procure a parte que diz "keycode XXX".

Você pode, obviamente, usar qualquer chave para o propósito; por exemplo,

keycode 38 = a Multi_key

faria com que a tecla a servisse como chave de composição (apenas) quando fosse alterada. A incapacidade de digitar o capital Como seria um claro prejuízo, talvez você queira fazer outra coisa ☺

Eu uso Shift + Shift com um truque:

keysym Shift_L = Shift_L Multi_key
keysym Shift_R = Shift_R Multi_key

Isso faz com que a tecla shift esquerda atue como tecla shift esquerda e tecla shift direita como tecla shift direita - exceto que se você mantiver uma tecla Shift, cada tecla Shift age como Compor . Alguns cenários para ilustrar:

Se você pressionar shift à esquerda, pressione shift à direita, solte à direita e solte à esquerda - então você terá o mesmo efeito de ter pressionado uma tecla física Compose (teclados antigos da Sun tinham , IIRC). Então, em particular:

  • Shift Deslocamento + : + ) produz um smiley, ☺ (pelo menos com meu ~/.XCompose )
  • Deslocar Deslocar + a + a produz o & ar; personagem, "å".

Se você pressionar o shift para a esquerda, pressionar shift para a direita e depois soltar as duas teclas de shift na ordem oposta, você terá o mesmo efeito que o acima.

Se você pressionar shift para a esquerda e soltar novamente (sem nenhum desvio à direita), você receberá dois eventos de teclado:

  • um evento KeyPress para Shift_L
  • um evento KeyRelease para Multi_key

Isso ocorre porque, quando você solta a tecla Shift esquerda, uma tecla Shift está sendo pressionada (a esquerda é um -_-), então a tecla é tratada como se Multi_key fosse tudo o que ela fazia. Isso não me causou nenhum problema perceptível, mas talvez algum aplicativo antigo e cheio de bugs possa ser afetado pela incompatibilidade de KeyPress vs. KeyRelease .

Note também que a interação entre chaves one-shot, teclas modificadoras e chaves de estado (eg a , Shift e Caps Lock ) interagir de forma divertida. Se você quiser usar a mesma tecla como tecla Caps Lock e (quando a tecla estiver pressionada) uma tecla de composição, você poderá obter efeitos funky. Eu me lembro que você obtém todos os efeitos aplicáveis, o que provavelmente não é o que você quer, mas fique à vontade para testá-los.

    
por 22.08.2013 / 15:54