Como alternar permanentemente Caps Lock e Esc


116

Como posso mudar permanentemente as funções de tecla Caps Locke Escno Saucy? Eu posso usar este comando para fazê-lo temporariamente (até a reinicialização):

/usr/bin/setxkbmap -option "caps:swapescape"

Tentei adicionar esse comando como um aplicativo de inicialização, mas parece não fazer nada.


1
Coloquei esse comando no meu ~/.bashrcpara que ele persista entre as reinicializações do sistema. ( ctrl:nocapspara mim, porém, para tmux)
opta

2
@opyate Eu colocaria esse comando em ~ / .profile para que seja executado apenas uma vez após um login interativo.
Suzanshakya

Respostas:


126

Outra maneira de fazer isso é através do dconf-editor. Este método possui algumas etapas extras gnome-tweak-tool, mas é útil se você não deseja extrair as dependências da ferramenta de ajustes.

Isso permitirá que você use a caps:swapescapesintaxe e torne automaticamente a alteração permanente.

sudo apt-get install dconf-tools

Após iniciar o dconf-editor, navegue para org >> gnome >> desktop >> input-sources

Adicione as opções necessárias xkb-options. As cadeias de opções são cercadas por aspas simples e separadas por vírgulas. Cuidado para não excluir os suportes nas extremidades.

xkb-options no dconf-editor

Você pode usar esse método para inserir a maioria das opções tradicionais do xkb que não estão mais disponíveis em Configurações do sistema >> Entrada de texto . A exceção são as configurações para alternar os layouts de teclado, que atualmente não funcionam devido a um erro.

Para obter uma lista das opções e da sintaxe, use man 7 xkeyboard-configem um terminal.

Outra opção comum que pode ser usada é terminate:ctrl_alt_bksppermitir que ctrl+ alt+ backspacetermine a sessão X.


5
+1 para referência keyboard-config(7), era isso que eu estava procurando.
precisa saber é o seguinte

61
Você também pode fazer isso na linha de comando, sem instalar o dconf-editor:dconf write /org/gnome/desktop/input-sources/xkb-options "['caps:escape']"
Pi Delport

4
Não execute o comando acima usando 'sudo', pois essa configuração parece específica do usuário.
Bohr

11
Observe que você precisará usar 'caps:swapescape'se precisar trocar as duas chaves (em vez de apenas atribuir Esca Caps Lock).
Thameera

1
ou você pode fazergsettings set org.gnome.desktop.input-sources xkb-options "['caps:escape']"
ACyclic

50

Uma solução que deve funcionar para a maioria das distribuições Linux:

setxkbmap -option caps:swapescape

Outras opções são possíveis:

  • caps:none desativar
  • caps:escape para torná-lo uma fuga adicional
  • caps:super para torná-lo uma tecla super (windows) adicional.

Para fazer isso funcionar na inicialização , é necessário inseri-lo, ~/.profilepois isso só será executado após o logon interativo.


1
Isso funciona no Ubuntu 14.04, Unity.
Chad

2
Trabalhou para mim no Ubuntu 16.04, bem
Jesse Chan

4
a partir de 18,04, colocando setxkbmapos comandos ~/.xsessionrce ~/.profilenão aparecem mais para fazer as configurações persistem entre logins / reinicia
Conrad.Dean

2
@ Conrad.Dean Estou usando isso no Mint 19, que é baseado em 18.04 LTS: Não há problemas aqui. As configurações não devem persistir, mas são carregadas no login.
jojo

~/.profileé um lugar ruim para colocar isso - esse arquivo é lido em todos os shell de login. Coloque-o em um arquivo usado ao iniciar o X11, como ~/.xinitrcou ~/.xsession.
sarnold 21/06

39

Ok, encontrei uma maneira de fazer isso usando o gnome-tweak-tool.

Em um terminal, execute

sudo apt-get install gnome-tweak-tool -y && gnome-tweak-tool

Você pode encontrar uma opção para trocar Caps Lock e Esc em "Digitando -> comportamento das teclas Caps Lock".


5
No Ubuntu 14, o layout da janela é muito complicado, mas ainda funciona.
uvasal

1
Sim, acho gnome-tweak-toolque não deve ser usado para esta tarefa, porque existem ferramentas padrão para isso.
Léo Léopold Hertz

Esta é de longe a melhor solução.
Jason McVetta 19/09/19

2
Para o Ubuntu> 18.04 ele pode ser encontrado em Keyboard & Mouse> Additional Layout Options>Caps Lock Behavior
Adracus

Isso funcionou para mim em 19.04. Não consegui obter nenhuma das soluções xmodmapou setxkbmappersistir em 19.04.
ahmorris 19/09

23

Você pode usar o xmodmap no terminal para trocar Caps Lockcom Esc:

xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"   #this will make Esc to act as Caps Lock
xmodmap -e "keycode 66 = Escape NoSymbol Escape"        #this will make Caps Lock to act as Esc

Para obter essa alteração para cada sessão, depois de executar os comandos anteriores, crie um arquivo chamado .xmodmapcom os novos mapas de teclas, usando o seguinte comando:

xmodmap -pke > ~/.xmodmap

Em seguida, crie um arquivo chamado .xinitrcem seu diretório pessoal, contendo a seguinte linha / comando:

xmodmap .xmodmap

6
Isso não funciona no Ubuntu 14.04. Eu também tentei um arquivo .xsessionrc e também não funcionou.
miguel.martin

Como você desfaz as configurações?
precisa saber é o seguinte

@ hlin117 Apenas limpe o conteúdo do ~/.xmodmaparquivo (executando apenas > ~/.xmodmapno seu terminal) e reinicie a sessão.
Radu Rădeanu 02/02

2
No Ubuntu 14.04, isso faz com que o Escape seja mapeado para o Caps_Lock, mas o Caps_Lock não é mapeado para o Escape.
user1691145

1
Oi, eu fiz isso, e funciona. No entanto, além de esc ser vinculado ao capslock, o caps-lock agora está vinculado ao caps-lock e escape. É possível que o ambiente da área de trabalho de alguma forma ainda substitua isso? Eu uso o KDE
xor

18

Semelhante à resposta de @ Radu , mas compatível com 14.04 (consulte também esta resposta ).

xmodmap -e "remove Lock = Caps_Lock"
xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"
xmodmap -e "keycode 66 = Escape NoSymbol Escape"
xmodmap -pke > ~/.xmodmap

Se não funcionar, substitua:

xmodmap -e "remove Lock = Caps_Lock"

com:

xmodmap -e "clear Lock"

Não funciona no Linux Mint 17.1 (que é baseado no Ubuntu) :(
Jan Warchoł

3
teve que mudar "Remover bloqueio = Caps_Lock" para "Bloqueio clara" para que ele funcione
Sofia

13

Vá para o ícone de engrenagem no canto superior direito da tela e:

  • clique em Configurações do sistema
  • layout do teclado
  • opções ... (canto inferior direito)
  • comportamento da tecla caps lock (4º down)
  • Role para baixo e escolha "Trocar ESC e Caps Lock".

Feito!


Joe : Bem-vindo ao Ask Ubuntu! ;-) Você poderia por favor rever minhas edições e também rever a ajuda edição para melhorar a legibilidade de suas respostas no futuro ... ;-)
Fabby

2
Esta deve ser a melhor resposta para ubuntu e mint
prasad

Isso faz alguma coisa além das atualizações de script mencionadas aqui? Prefira fazer isso em um script.
quer

7

Execute este comando uma vez em um terminal. dconfjá deve estar instalado com o gnome 3.

dconf write "/org/gnome/desktop/input-sources/xkb-options" "['caps:swapescape']"

Esta solução justa testado OK no RedHat Enterprise Linux 7.
Chad Skeeters



2

Estou atrasado para responder, mas a maneira usual de trocar Esce Ctrlé com as seguintes linhas no ~/.Xmodmaparquivo:

clear Lock
keysym Caps_Lock = Escape
keysym Escape = Caps_Lock
add Lock = Caps_Lock

Isso deve funcionar com todos os ambientes de desktop (KDE, Gnome) nas distribuições mais comuns (família Ubuntu e Debian, família Fedora e RH).


não funcionou no ubuntu 16.04, você poderia elaborar mais?
Mai03 Mai16

@MaikoID: Essa é basicamente a maneira canônica de trocar CapsLock e Esc. Eu entendo que as versões mais recentes do Ubuntu com o Unity quebram muitas coisas "unixy canônicas", parece que é por isso que todas as outras respostas aqui abordam algum método específico da versão ou DE (Unity). Por que vale a pena, este não trabalhar em Kubuntu, que eu uso pessoalmente.
dotancohen

2

Para o Ubuntu 18.04 e Gnome 3.30, isso funciona para mim:

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

ainda trabalhando em 19.04.
Exeleration-G

1

Na GUI do KDE (interface gráfica do usuário), isso pode ser feito no Layout do teclado na configuração do sistema. Clique em "Dispositivos de entrada". No canto superior esquerdo, clique em Teclado. Em seguida, clique na guia "Avançado" e em "Comportamento das teclas Caps Lock", escolha "alternar Escape e Capslock".


É ótimo que você tenha fornecido uma resposta a esta pergunta. Você pode editar sua pergunta para expandir um pouco, possivelmente com o resultado desejado, uma vez que selecione "Trocar ESC e Caps Lock". é selecionado.
Phil UK

Olá e bem-vindo ao Ask Ubuntu! Em seu estado atual, essa resposta realmente não está completa e, portanto, está arriscando a exclusão. Leia nossa página de ajuda Como responder e, em seguida, volte e edite sua resposta para incluir mais detalhes, especificamente como isso resolve a pergunta do OP. Além disso, leia nosso tour para obter um crachá e ter uma idéia melhor de como o site funciona. Até a próxima!
Kaz Wolfe

graças aos seus conselhos. Eu desejo que esta edição seja a que você deseja.
farhad Goodarzi

Para sua informação, o link com o seu domínio parece não funcionar (pelo menos para mim), mas o domínio do endereço IP anterior funciona.
Andrew T.

1

A resposta "Layout do teclado" com a opção "alternar Escape e Capslock" acima não é mais válida no Ubuntu 16.04 e posterior (era antes? Dunno). A resposta: para evitar a confusão de permissões, basta mudar para root antes de começar a fazer tudo isso sue digitar sua senha root. Então:

    cd /etc/default/
    vim keyboard

Lá você verá a linha:

    XKBOPTIONS=""

Altere para:

    XKBOPTIONS="caps:swapescape"

Saia do vim com save:

    :wqa

Reinicie.

E isso será permanente , eu prometo. :)


0

Nota: Isso não muda, apenas mapeia caps lock para esc. (Isso foi bom o suficiente para o meu caso de uso do vim.)

Para o Ubuntu 16:04 (com ambiente i3): arquivo criado ~ / .xessionrc with content

xmodmap -e "clear lock" #disable caps lock switch
xmodmap -e "keysym Caps_Lock = Escape" #set caps_lock as escape

1
Embora essa resposta possa resolver 1/2 da questão que o OP perguntou sobre aparecer na fila de respostas de baixa qualidade devido ao (presumo) tamanho. Você pode expandi-lo com mais detalhes. Como e por que funciona talvez.
Elder Geek
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.