Mapeando Super Chaves para Controlar sem Xmodmap

2

Eu tenho tentado trocar minhas teclas super e de controle no X em um macbook e tive metade do sucesso. Eu gostaria de evitar a criação de um .xmodmap personalizado, se possível, pois há um bug temporário de 100% cpu que aparece toda vez que o mapa personalizado é carregado (sem mencionar vários avisos contra o uso de xmodmap geralmente que eu encontrei) .

Depois de algumas pesquisas, acabei colocando Option "XkbOptions" "altwin: ctrl_win" no meu arquivo 01-keyboard-layout.conf que me colocou na metade do caminho: por exemplo, o comando left mapeia para 133 Control_L. No entanto, as chaves de controle permanecem as mesmas. Controle esquerdo, por exemplo, ainda mapeia para 37 Control_L.

Olhando através de evdev.lst (e um monte de googling) não apareceu nenhum XkbOption relevante para transformar as teclas de controle em supers, e agora estou bem preso.

Agora estou analisando a insanidade que é o Guia não confiável para a configuração XKB de Doug Palmer a> mas é, como ele descreve, uma descida ao inferno.

qualquer pessoa que tenha tentado essa alternância antes e saiba as regras / símbolos / mapas de teclado exatos para obtê-la, sua assistência seria ótima.

Obrigado!

    
por jake madison 04.01.2013 / 03:50

2 respostas

0

Ok, finalmente consegui que isso funcionasse.

Primeiro, esses dois recursos são incríveis para qualquer pessoa que queira se aprofundar nessa confusão:

link & link

Para alguém que esteja tentando especificamente fazer essa alternância, isso é o que eu fiz:

1) crie um arquivo em / usr / share / X11 / xkb / symbols para o novo mapeamento 2) coloque isso nele:

// Control is SWAPPED with Win-keys 
partial modifier_keys
xkb_symbols "cmd_n_ctrl" {
    key <LWIN> {        [       Control_L               ]       };
    key <RWIN> {        [       Control_R               ]       };
    key <LCTL> {       [       Super_L         ]       };
    modifier_map Control { <LWIN>, <RWIN> };
    modifier_map Mod4 { <LCTL> };
};

3: edite o evdev em / usr / share / X11 / xkb / rules para incluir:

altwin2:cmd_n_ctrl               =       +altwin2(cmd_n_ctrl)

(sob a opção = seção de símbolos)

4: adicione sua nova opção ao evdev.lst (mesmo diretório):

altwin2:cmd_n_ctrl

(na seção de opções)

5: agora edite seu arquivo conf 01-Keyboard para incluir a nova opção que você criou. O meu parece assim:

Section "InputClass"
        Identifier "keyboard-layout"
        Driver "evdev"
        MatchIsKeyboard "yes"
        Option "XkbLayout" "us, ru, ca, fr"
        Option "XkbOptions" "altwin2:cmd_n_ctrl"
EndSection

6: reinicie e você deve estar pronto.

Os recursos acima são muito melhores para explicar tudo isso, ou qualquer obstáculo que você possa encontrar. Provavelmente, existe uma maneira muito melhor de fazer isso (provavelmente não alterando o conteúdo de / usr / share), mas até agora isso é o que me fez funcionar.

Espero que ajude alguém preso neste ponto!

    
por 05.01.2013 / 02:32
1

A solução a seguir é mais simples que a do Asker. (Testado no Ubuntu 14.04 executado em um Dell.)

1) No arquivo /usr/share/X11/xkb/keycodes/evdev , troque os códigos de varredura (números) das teclas que você deseja trocar. OBSERVAÇÃO: seu hardware pode ter como alvo um arquivo de código de acesso diferente de evdev .

2) Execute sudo rm /var/lib/xkb/*.xkm para limpar o cache do xkb e, em seguida, reinicialize.

    
por 21.09.2014 / 09:56