Quero remapear o caps lock para escapar no X11 (ou seja, pressionar o botão físico do caps lock será interpretado como esc pelos aplicativos e o comportamento do esc não será alterado). A solução deve sobreviver a um restart X . xmodmap e setxkbmap são soluções aceitáveis (assim como programas similares). Não quero lidar com uma GUI, pois quero que a solução seja portátil e faça parte dos meus arquivos de ponto. Se estiver faltando uma solução melhor / mais fácil / mais óbvia, informe-me, embora observe que não estou usando um DE (testando o i3wm).
Até agora, tentei usar xmodmap e setxkbmap com pouco sucesso.
Aqui está minha tentativa de usar o xmodmap:
# ~/.xinitrc
xmodmap ~/.xmodmap
e
# ~/.xmodmap
remove Lock = Caps_Lock
keysym Caps_Lock = Escape
Correr a $ xmodmap ~/.xmodmap
partir da linha de comando funciona e faz o que eu quero. O problema é que isso é redefinido toda vez que x é reiniciado. É aí que eu espero que o xinitrc entre - ele não deveria carregar toda vez que x inicia e executa o comando xmodmap? Se o comando funcionar, por que não faz nada quando lido de um arquivo?
Eu tentei algumas coisas com setxkbmap, nenhuma das quais funcionou. As duas tentativas abaixo estavam no arquivo em horários separados.
# ~/.xinitrc
setxkbmap -option caps:esc # attempt 1
setxkbmap -option esc:nocaps # attempt 2
Nenhum dos comandos fez nada perceptível na linha de comando, portanto, estou assumindo que entendi errado. Gosto da ideia desta solução, porque é uma linha e não requer nada em outro arquivo. Se ao menos funcionasse.
.Xinitrc é o arquivo errado para ser usado? Eu sei que o startx está carregando de ~ / .xinitrc.
Solicito que as soluções possíveis contenham o (s) arquivo (s) inteiro (s), não apenas uma linha (se mais de uma for necessária no arquivo), para não atrapalhar nenhuma etapa intermediária. Por exemplo, se eu precisar de algo em .xinitrc e algo em .xcapsrebind, mostre os arquivos e todo o conteúdo necessário (também posso receber instruções para anexar algo ao final, mas se um & ou similar for necessário, por favor, diga).
xmodmap
em .xinitrc
deve funcionar. É o que eu faço. Talvez mapeie algo incomum, para garantir que ele esteja em execução quando você iniciar o x? Além disso, qual gerenciador de janelas / ambiente de área de trabalho você usa? O KDE periodicamente "corrige" o mapeamento do meu teclado sem que eu precise. Talvez verifique as configurações da área de trabalho para garantir que não haja nada correndo xmodmap
pelas suas costas.
~/.xinitrc
não está fugindo. Estou usando o i3wm e não o DE no momento, embora o mesmo acontecesse no Pantheon quando tentei. Até onde eu sei, o i3 não mexe com o xinitrc ou carrega o seu próprio (mas eu sou um noob, então o que eu sei?).
Option "XkbOptions" "caps:escape"
em um X
arquivo de configuração do teclado, por exemplo/etc/X11/xorg.conf.d/10-keyboard.conf
.xinitrc
:setxkbmap -option caps:escape