Usando setxkbmap para um remapeamento simples (semelhante ao xmodmap)

13

Eu enfrentei alguns problemas depois de remapear o teclado com o xmodmap: as configurações são redefinidas aleatoriamente após 2-20 minutos após a aplicação. Pesquisei no Google, mas não adianta: algo as redefine, mas todas as menções se aplicam ao xfce, enquanto eu estou sob o habitual Ubuntu 14.04 com unidade.

Vi frases como 'use xkb, esqueça xmodmap', mas ainda não faço ideia de como fazer isso. É classificado ou muito complicado, porque a quantidade de informações é significativamente menor do que a maneira xmodmap.

Aqui está minha lista de personalizações:

xmodmap -e "keycode 84 = Down"
xmodmap -e "keycode 79 = Home"
xmodmap -e "keycode 80 = Up"
xmodmap -e "keycode 83 = Left"
xmodmap -e "keycode 85 = Right"
xmodmap -e "keycode 87 = End"
xmodmap -e "keycode 90 = Insert"
xmodmap -e "keycode 91 = Delete"
xmodmap -e "keycode 89 = Next"
xmodmap -e "keycode 81 = Prior"

onde códigos são chaves correspondentes no numpad, com numlock = off (basicamente, eu estou substituindo KP_Del por Delete, KP_Home por Home etc - não pergunte por que))

Alguém pode ajudar a encontrar uma maneira de fazer isso usando xkb - pelo menos uma das linhas? E onde encontrar os "nomes" das chaves para outras, para que eu pudesse fazer o resto pelo exemplo?

Den Drobiazko
fonte
5
Sim. Tinha exatamente o mesmo problema. Veja aqui: rlog.rgtti.com/2014/05/01/… e askubuntu.com/questions/422650/… . Se você conseguir descobrir como usar xkbsem reescrever os arquivos do sistema, escreva uma resposta aqui ... você será recompensado por zilhões de votos.
Rmano
Uau - finalmente, um guia de remapeamento xkb que torna as coisas mais claras ... Mas não consigo ver nada sobre remapear as linhas Home, Delete e Up- & Down-up. É sempre sobre algumas letras gregas ou espanholas. Até agora eu fui para o outro lado - tentando sistema parar de substituir minhas configurações Xmodmap (Receita # 3 a partir daqui: programmingiroiro.blogspot.com/2013/03/... )
Den Drobiazko
1
Má idéia - nenhuma mudança de layout disponível depois disso (
Den Drobiazko

Respostas:

4

Você pode seguir a ideia geral vista na minha resposta sobre um problema semelhante ; se você ainda deseja alternar o layout (embora ainda esteja bastante quebrado ), defina um novo layout ou variante .

Observe que o modelo a ser copiado e modificado para a edição de um teclado é um pouco difícil de encontrar. No meu teclado, por exemplo, a geometria é "pc105"; isso é definido em /usr/share/X11/xkb/symbols/pc. Se você olhar para ele, ele inclui :

[...]
key <SPCE> {        [        space          ]       };

include "srvr_ctrl(fkey2vt)"
include "pc(editing)"
include "keypad(x11)"

key <BKSP> {        [ BackSpace, BackSpace  ]       };
[...]

O teclado está definido no arquivo /usr/share/X11/xkb/symbols/keypad

[...] 
default  partial hidden keypad_keys
xkb_symbols "x11" {
   include "keypad(operators)"

   key  <KP7> {        [  KP_Home,     KP_7    ]       };
   key  <KP8> {        [  KP_Up,       KP_8    ]       };
[...]

Para o nome dos símbolos de chave (keysims), o melhor lugar para procurar é no arquivo /usr/include/X11/keysymdef.h; pode ser necessário instalar os pacotes de desenvolvimento para instalá-lo (ou instalá-lo instalando x11proto-core-dev):

[...]
/* Cursor control & motion */

#define XK_Home                          0xff50
#define XK_Left                          0xff51  /* Move left, left arrow */
#define XK_Up                            0xff52  /* Move up, up arrow */
[...]

o nome da chave é aquele que você removeu uma vez a string "XK_".

Rmano
fonte