Como eu faço da tecla Caps Lock uma terceira tecla Shift?

16

Como faço para que a tecla Caps Lock funcione como outra tecla Shift?

Há muitas perguntas aqui sobre a reatribuição ou o lançamento de um comando personalizado. Eu só quero que funcione como outra tecla Shift. Eu não quero que nenhuma outra chave mude o que eles fazem, só isso.

O comportamento das teclas Layout do Teclado / Caps Lock não faz isso, não entendo como remapear no CCSM.

Estou usando um teclado do Reino Unido agora, mas aprendi a digitar em um teclado dos Estados Unidos, a tecla Shift menor à esquerda está DRIVING ME NUTS.

    
por Tom Brossman 26.11.2011 / 10:34

4 respostas

11

Expandindo a resposta do @ Zacharee1:

faça um backup com cp /usr/share/X11/xkb/symbols/pc ~/pckeybak

edite com gksu gedit /usr/share/X11/xkb/symbols/pc ou seu editor favorito.

Encontre a linha (22) que diz:

key <CAPS> { [ Caps_Lock ] };

e mude para

key <CAPS> { [ Shift_L ] };

e a linha (36) que diz:

modifier_map Lock { Caps_Lock };

e mude para

//modifier_map Lock { Caps_Lock }; (que deve comentar na verdade desativando o bloqueio)

O teste indica que o Num Lock ainda funciona como esperado. Outros testes indicam que as luzes indicadoras do teclado parecem um pouco disléxicas em 16.04 mesmo em um sistema não modificado. Indicador de Scroll Lock no momento do login, mas Scroll lock off e Num Lock estão apagados, mas Num lock está ativado. Tocar na tecla esquerda Ctrl parece resolver esse comportamento e não tenho certeza se está relacionado ao uso de um comutador KVM (o que é possível)

Nota: Mais testes mostram que o A luz indicadora NumLock fica escamosa mesmo sem um chaveador KVM e precisa ser tocada duas vezes para voltar a sincronizar com o NumLock Se você sempre deixá-lo ligado, você pode Ignore a luz ou se incomoda você pode tocar duas vezes para voltar em sincronia. Por que isso ocorre é provavelmente uma base para uma nova pergunta ...

Outra solução simples para o seu problema original seria simplesmente obter um teclado americano de baixo custo e usar o teclado dos EUA mapeamento.

Fontes: @ Resposta Zacharee1 e análise de /usr/share/X11/xkb/symbols/pc e teste de tentativa e erro

    
por Elder Geek 03.09.2016 / 14:15
10

Você pode chegar lá adaptando Como alterar a chave CapsLock para produzir "A"? (por exemplo).

Remova o modificador Lock (= Caps Lock) da tecla Caps Lock e declare que esta chave envia o Shift_L keysym.

remove Lock = Caps_Lock
keysym Caps_Lock = Shift_L

Como alternativa, você pode remover o modificador Lock e adicionar o modificador Shift .

remove Lock = Caps_Lock
add Shift = Caps_Lock

De qualquer forma, essas linhas vão para o arquivo ~/.Xmodmap . Teste carregando-o com xmodmap ~/.Xmodmap ; o arquivo é lido automaticamente quando você efetua login no ambiente padrão (ou pelo menos nos dias do Gnome).

    
por Gilles 26.11.2011 / 16:13
7

Ignorando minhas tentativas anteriores de responder a essa falha, descobri algo que transforma o capslock completamente em turno esquerdo. Não alternando, acho que é persistente e é bem simples.

Primeiro, eu recomendo fazer um backup, antes de apresentar como alterá-lo.

Executar sudo cp /usr/share/X11/xkb/symbols/pc ~/pckeybak

Agora que há um backup, vamos para a edição.

Use seu editor de texto favorito para editar este arquivo como root:

/usr/share/X11/xkb/symbols/pc

Encontre o segmento que se parece com isso (está perto do topo, linha 22 para mim):

key  <TAB> {    [ Tab,  ISO_Left_Tab    ]   };
key <RTRN> {    [ Return                ]   };

key <CAPS> {    [ Caps_lock             ]   };
key <NMLK> {    [ Num_Lock              ]   };

editar

key <CAPS>  {   [ Caps_lock             ]   };

para ser

key <CAPS> {    [ Shift_L, Caps_Lock    ]   };

em vez disso. (O Caps_Lock após Shift_L, pode ser desnecessário.)

Reinicie seu gerenciador de exibição (geralmente sudo service lightdm restart ) e o capslock agora será deixado shift. ( Nota: Minha máquina de teste usa o GNOME, então eu tive que reiniciar gdm . No entanto, isso causou alguns estranhos trepidação no fallback TTY, e gdm nunca reiniciou. Eu tive que reiniciar completamente. )

Este foi realmente capaz de testar e pode confirmar que funciona.

Adaptado de xmodmap permanente no Ubuntu 13.04

    
por TheWanderer 01.09.2016 / 00:14
3

Para 14.04

Um one-liner:

xmodmap -e 'keycode 66=Shift_L'

MAS , no caso inesperado 66 não é o código de acesso correto, primeiro execute xev no console e pressione CapsLock . Então você verá algo como:

KeyPress event, serial 27, synthetic NO, window 0x1200001,
    root 0x101, subw 0x0, time 6417361, (340,373), root:(342,393),
    state 0x0, keycode XX (keysym 0x0207, Caps_Lock), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

O código de acesso correto é o indicado no XX .

    
por user308164 01.09.2016 / 00:26