Remapeando o scancode para Caps Lock

3

No Windows, eu consegui configurar o Caps Lock para agir como um segundo Enter, que pode ser pressionado pelo dedo mínimo esquerdo. Eu adicionei este parâmetro ao registro para fazer isso:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1c,00,3a,00,00,00,00,00

Como posso fazer o mesmo no Linux?

    
por user4035 08.04.2013 / 00:54

2 respostas

3

O equivalente mais próximo seria executar o programa xmodmap sempre que você fizer login.

Coloque o seguinte snippet em um arquivo chamado .Xmodmap em seu diretório pessoal:

keycode 66 = Return
clear Lock

Você pode ver os códigos-chave e os nomes das chaves associadas atuais, executando xev de um terminal. Pressione Caps Lock enquanto a janela xev está focada, e você verá algo como

KeyPress event, serial 29, synthetic NO, window 0x7c00001,
    root 0x105, subw 0x0, time 96597741, (1548,225), root:(3151,256),
    state 0x0, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
"   XLookupString gives 1 bytes: (0d) "
"   XmbLookupString gives 1 bytes: (0d) "
    XFilterEvent returns: False

Para a maioria das chaves, você precisa apenas da linha keycode . Os modificadores são rastreados separadamente: você precisa combinar os keyyms (o que está à direita da diretiva keycode … = … ) com os modificadores. A diretiva clear Lock remove o modificador Lock (que é Caps Lock ou Shift Lock) de todas as chaves.

Dependendo da sua distribuição e do ambiente de área de trabalho, pode ser ou não suficiente adicionar essas linhas a ~/.Xmodmap : muitas configurações, mas não todas, leem automaticamente esse arquivo no momento do login. Se o seu não, execute o comando xmodmap ~/.Xmodmap no momento do login. Como fazer isso depende da sua escolha de ambiente de área de trabalho.

    
por 08.04.2013 / 02:25
0

no meu arquivo .Xmodmap eu viro Caps Lock para Escape

clear Lock
keycode 0x42 = Escape

para transformá-lo em Return como você quer, isso funcionaria.

clear Lock
keycode 0x42 = Return

Muito interessante, pode ser usado para outra combinação de teclas, por exemplo, eu tenho

keycode 0x87 = Insert

e isto transforma a Tecla do Menu de Contexto na tecla Inserir . (interessing para mim é claro)

Como a resposta de Gilles diz, você pode usar xev para determinar o código de tecla da chave que deseja reatribuir.

Não se esqueça de que você precisa iniciar:

xmodmap ~/.Xmodmap

no script de inicialização do Gerenciador de Janelas do seu usuário, assim como o redirecionamento de chave é levado em consideração para cada nova sessão que você efetua login.

    
por 08.04.2013 / 02:47