EDIT: Como um usuário útil apontou, minha solução inicial não sobreviverá a uma atualização. Sua solução nos comentários deve funcionar. Se você preferir trocar Caps Lock e Escape, eu recomendaria adicionar os seguintes comandos a partir do seu .xinitrc ou do i3 config:
.xinitrc:
xmodmap "clear lock"
xmodmap "keycode 9 = Caps_Lock NoSymbol Caps_Lock"
xmodmap "keycode 66 = Escape NoSymbol Escape"
arquivo de configuração i3 (normalmente localizado em .config / i3 / config ou em .i3 / config)
# swap caps lock and escape
exec_always --no-startup-id xmodmap -e "clear lock"
exec_always --no-startup-id xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"
exec_always --no-startup-id xmodmap -e "keycode 66 = Escape NoSymbol Escape"
Eu percebo que essa pergunta é bem antiga, mas pensei que poderia adicionar uma resposta para aqueles que ainda estão tentando descobrir isso.
Depois de ter problemas semelhantes com alguns DEs não carregando ~/.xinitrc
, eu evitei o xmodmap completamente, fui para /usr/share/X11/xkb/symbols
e modifiquei o mapeamento de símbolos key = > diretamente.
Para isso, editei o arquivo de configuração do meu teclado, localizado em /usr/share/X11/xkb/symbols
. Para a maioria dos teclados, esse deve ser o arquivo pc
.
Depois de abrir o arquivo, eu mudei manualmente em torno de Escape e Caps_Lock para suas respectivas chaves, o resultado é mostrado abaixo. Como isso afeta como o X mapeia o hardware para o símbolo da chave, ele deve funcionar independentemente de você estar no GNOME ou no i3 ou algo assim.
Um fragmento do meu arquivo resultante é o seguinte:
default partial alphanumeric_keys modifier_keys
xkb_symbols "pc105" {
key <ESC> { [ Caps_Lock ] };
// The extra key on many European keyboards:
key <LSGT> { [ less, greater, bar, brokenbar ] };
// The following keys are common to all layouts.
key <BKSL> { [ backslash, bar ] };
key <SPCE> { [ space ] };
include "srvr_ctrl(fkey2vt)"
include "pc(editing)"
include "keypad(x11)"
key <BKSP> { [ BackSpace, BackSpace ] };
key <TAB> { [ Tab, ISO_Left_Tab ] };
key <RTRN> { [ Return ] };
key <CAPS> { [ Escape ] };
key <NMLK> { [ Num_Lock ] };
key <LFSH> { [ Shift_L ] };
key <LCTL> { [ Control_L ] };
key <LWIN> { [ Super_L ] };
key <RTSH> { [ Shift_R ] };
key <RCTL> { [ Control_R ] };
key <RWIN> { [ Super_R ] };
key <MENU> { [ Menu ] };
Isso funcionou como um encanto para mim.
Ao olhar em volta dos arquivos relacionados, encontrei repetidas menções e implementações parciais de algum tipo de sinalizador usado para alternar certas chaves, como trocar Escape e Caps Lock. Eu suponho que isto é o que a Ferramenta Gnome Tweak e o setxkbmap usam; no entanto, não consegui descobrir como manter esses sinalizadores com o gerenciador de janelas do i3. A solução acima deve funcionar bem.
Espero que isso corrija o problema!