Como remapear as teclas Caps Lock e Ctrl?


77

Gostaria de remapear minhas chaves de modo que Ctrlse comporte como a Caps Lockchave e vice-versa. Além disso, se possível, eu gostaria que as configurações estivessem disponíveis apenas no usuário conectado no momento. Como posso conseguir isso?

Eu sou um usuário do vim, diferente das outras pessoas que usam esta máquina, portanto, gostaria dessas configurações apenas para minha conta.


1
Será Este ajudar?
Mitch


4
Estou chocado que esse não seja um recurso padrão nas configurações do Linux hoje em dia.
Edward Falk

Respostas:


59

13.10+:

Instalar e usar gnome-tweak-tool> Keyboard & Mouse> Keyboard> Additional Layout Options> Caps Lock behavior.

Antes das 13.10:

Abra a caixa de diálogo Preferências do teclado ( System -> Preferences -> Keyboard). Na guia layout, clique no Options...botão Expanda a Ctrl key positionseção e selecione Swap Ctrl and Caps Lock.

Essas configurações devem ser aplicadas sempre que você efetuar login e afetarão apenas sua conta de usuário.


2
Esta opção desapareceu no Ubuntu Saucy. Não sei como explicar isso, mas simplesmente não está lá. As preferências do teclado não possuem "guia Layout", mas há um botão "configurações de layout" e, quando clico, ele é levado à guia "Fontes de entrada" do painel "Região e idioma", que misteriosamente não possui nenhum tipo do botão 'Opções'. O único botão lá abre um teclado virtual na tela que exibe meu layout de teclado quebrado, sem nenhuma maneira de alterar quais teclas se comportam de que maneira.
robru

4
Para o Ubuntu 13.10, você precisará usar a ferramenta gnome-tweak.
Jeremy Bicha

1
A opção anterior à 13.10 funciona para mim em 14.04
JeremyKun 11/17/17

O mesmo que JeremyKun. No meu caso, utilizando 14.04, a solução pré 13.10 funcionou, mas o 13.10+ não
matiascelasco

Obrigado por esta resposta! O gnome-tweak-toolé muito bom; você também pode usá-lo para detalhes como "usar Caps Lock para alternar entre layouts de teclado" (um favorito pessoal) e "alternar Alt / Win" (que é útil se você já é um usuário de Mac há muito tempo ...)
Por Lundberg

63

Uma das melhores maneiras de fazer isso graficamente é instalar o Gnome Tweak Tool :

sudo apt-get install gnome-tweak-tool

  • Abra a ferramenta de ajustes e clique na seção de digitação na coluna esquerda.
  • Agora você deve ver o comportamento da tecla Caps Lock da linha à esquerda.
  • Escolha Tornar Caps Lock uma tecla Ctrl adicional em vez de Desativado na lista suspensa e você deve ser bom.

Além do painel de configuração, não é preciso muito tempo para aparecer na minha máquina, por isso não tenho idéia de qual é o problema.

Aproveite sua nova Ctrlchave!


Eu queria usar minha tecla CAPS para desligar minha tela. Eu configurei isso antes na janela Configurações do sistema> teclado, mas o CAPS ainda alternava o estado do CapsLock e o LED. Desabilitei a chave com a ferramenta que você recomendou (que apresenta alguns erros de exibição entre - fundo transparente da janela), o que também impediu o funcionamento do meu atalho personalizado. Depois de desativar, tive que definir o atalho novamente para que ele funcionasse. Foi definido com o valor 0xff ou algo assim em vez de CAPS. Eu pensei que este procedimento poderia ajudar alguns futuros leitores com desejos semelhantes.
Byte Commander

Quando executo o gnome-tweak-tool na linha de comando, há uma mensagem de erro sobre o shell não estar executando o DBus e, em seguida, qualquer tentativa que faço para alterar as configurações não tem efeito.
Edward Falk

1
Update: gnome-Tweak-ferramenta só funciona dentro do GNOME Shell
Edward Falk

1
nenhuma seção "digitando" na minha coluna da esquerda: somente Desktop, Fontes, Shell, Extensões de Shell, Tema, Windows.
Reb.Cabin

2
Observe que a opção no gnome-tweak-tool para trocar está em "Posição da tecla Ctrl", não em "Comportamento da tecla Caps Lock".
21717 Phil

59

Aqui está uma maneira de fazer isso sem instalar software extra:

setxkbmap -layout us -option ctrl:nocaps

Fonte:


3
Isso não sobrevive após a reinicialização. Como posso tornar isso permanente? Prefiro não colocar isso em um script de inicialização (por exemplo, .bashrc).
nic

8
@nic Você também precisa alterar o arquivo sudo vi /etc/default/keyboarde alterar XKBOPTIONS="ctrl:nocaps". Execute o comando de Jorge depois disso, mas como setxkbmap -option ctrl:nocapstal, ele não altera o layout do teclado padrão.
Léo Léopold Hertz

43

Abra o seguinte para edição:

sudo vi /etc/default/keyboard

E editar XKBOPTIONS="ctrl:swapcaps"

Em seguida, reconfigure:

sudo dpkg-reconfigure keyboard-configuration

ou

/usr/bin/setxkbmap -option "ctrl:swapcaps"

A pergunta era "Gostaria dessas configurações apenas para minha conta". A edição de / etc / default / keyboard mudará para todos.
Skierpage

1
você tem 3 etapas (1, 2, 3). Você quer dizer [(1 e 2) ou 3] ou [1 e (2 ou 3)]?
Jgomo3

Ótimo! Corri o sudo dpkg-reconfigure keyboard-configuratione pressione várias entradas, e funcionou !!! EDIT: no entanto, depois que eu sair e entrar novamente, a configuração desapareceu. :(
LeOn - Han Li

24

Para alterar permanentemente o comportamento:

  1. corre dconf-editor

  2. selecionar org.gnome.desktop.input-sources

  3. Altere xkb-optionspara ['ctrl:nocaps'](ou adicione-o a qualquer opção existente)

ou na linha de comando ( Aviso - isso substitui as configurações existentes! ):

gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:nocaps']"

Este liner único também pode ser adicionado ao ~ / .profile para portabilidade.
Jtetzel # 8/15

Isso não funcionou para mim no Kubuntu 16.04, mesmo após uma reinicialização.
Zplizzi

3
As configurações do dconf se aplicam imediatamente e são persistentes; portanto, não faz sentido colocá-lo em ~ / .profile e não há necessidade de reinicialização. Essa configuração específica se aplica apenas ao Gnome / Unity, não ao KDE usado no Kubuntu.
Anton Eliasson 30/09

4

Essa é uma tarefa fácil quando você sabe como fazê-lo.

1) Verifique o código da sua chave. Execute este programa no terminal.

xev


Neste exemplo, o terminal mostra que o código da chave para my ké "45".

2) Altere-os conforme desejar criando este arquivo:

gedit ~ / .Xmodmap

Seu conteúdo deve se parecer com este exemplo:

keycode 37 = Caps_Lock NoSymbol Caps_Lock keycode
66 = Control_L NoSymbol Control_L

(Altere o número do código-chave conforme necessário - veja a etapa "1")

Ilustração:
(Obs .: se eu quiser alterar meu k, devo usar "keycode 45", como mostrado na etapa "1").

4) Efetue logout e logon, reinicialize ou execute:

xmodmap ~ / .Xmodmap

Espero que goste ;-)


2
Observe que é provável que esta solução cause problemas para qualquer coisa, exceto os mapas de teclado mais simples. A compatibilidade do xmodmap no sistema xkb mais recente não é perfeita, portanto é melhor você seguir o xkb, se possível.
James Henstridge

@ James, você gostaria de explicar como podemos fazer isso?
desgua

Veja a outra resposta a esta pergunta. O painel de controle do teclado padrão criará um mapa de teclas xkb a partir do layout base que você escolher mais as opções ativadas.
11138 James Henstridge

1
Bem, você pode configurar os mesmos mapas de teclas usando o setxkbmapprograma de linha de comando . É possível escrever novos mapas de teclas, mas um pouco mais envolvido que os mapeamentos de códigos de teclas do Xmodmap. É bom que a maioria das variantes de opção que você deseja já esteja disponível.
James Henstridge

1
@James. Estive pesquisando e aprendendo sobre o setxkbmap. Mas não consegui encontrar uma resposta para: é possível remapear uma chave para o que queremos? Por exemplo, algo excêntrico como: "keycode 51 = bracketright braceright bracketright braceright bar masculino"?
Des

4

É assim que se faz manualmente (sem ferramentas adicionais), via XKB, que é o gerenciador de chaves padrão do Ubuntus recente. Modificar /usr/share/X11/xkb/symbols/pc, seção xkb_symbols "pc105":

//key <CAPS> {  [ Caps_Lock     ]   };
//key <LCTL> {  [ Control_L     ]   };
key <CAPS> {    [ Control_L ]   };
key <LCTL> {    [ Caps_Lock     ]   };

Faça login / logout ou reinicie. Veja aqui para mais detalhes.

Como alternativa, você pode trocar no nível dos códigos-chave emitidos por esses botões. Modify /usr/share/X11/xkb/keycodes/evdev:

<CAPS> = 64; //66;
<LCTL> = 66; //64

Você precisará sudo rm -rf /var/lib/xkb/*aplicar as alterações.


Ótimo ponto sobre como trabalhar no nível dos códigos-chave. Nos meus laptops executando o Kubuntu Bionic, apenas mudar no nível dos símbolos não é satisfatório, porque pressionar a tecla Caps física ainda alterna o estado interno do Caps. Alterar os códigos de chave funciona! BTW eu estendi isso para três teclas (Caps, Meta e RAlt) e gostaria de observar que você realmente precisa escrever <CAPS> = *orig code of the physical key you want to act **as** CAPS*e não <CAPS> = *orig code of the key you want physical CAPS to act **as**(espero que a distinção seja clara). Essa distinção é necessária nesses casos.
jamadagni

3

A resposta aceita é confusa porque o gnome-tweak-tools não mostra nenhuma seção "digitando".

Em vez disso, clique na seção "Teclado e mouse" e escolha "Opção de layout adicional". Lá, você verá o "comportamento do Caps Lock", que permite converter o caps lock em teclas diferentes.

Captura de tela da ferramenta tweak


2

Nas distribuições baseadas no KDE (como o KDE Neon ou o Kubuntu), esse comportamento pode ser configurado nas configurações regulares do sistema. Abra as configurações do sistema, selecione "Dispositivos de entrada" => "Teclado" => "Avançado". Na categoria "Posição da tecla Ctrl", selecione "Trocar Ctrl e Caps Lock".

Captura de tela do módulo Teclado da Configuração do Sistema do KDE


0

O gnome-tweaks 3.28.1 não tem Typingseção.
Assim, setxkbmap -layout us -option ctrl:nocapsou setxkbmap -layout us -option ctrl:swapcapsseriam opções viáveis.

Para torná-lo permanente, você pode consultar a resposta de @name.


Teclado e mouse -> opção de layout adicional
Voyager
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.