O local correto a ser colocado xmodmap ~/.Xmodmap(para que suas alterações sejam lidas na inicialização) está ~/.xinitrc(consulte a explicação abaixo), embora você possa alternativamente colocar o xmodmapcomando como um item de inicialização ( /usr/bin/xmodmap /home/user/.Xmodmap). Posso dizer que, para 12.04 (e presumivelmente 12.10), essas duas alternativas definitivamente funcionam, pois de qualquer forma elas são lidas após o login lightdm. (Alterei Return to Shift Right , e a alteração só entrou em vigor depois de inserir minha senha e fazer login).
Nota: se você estiver no Xfce, é indicado nas Perguntas frequentes oficiais do Xfce que talvez você precise criar um item de inicialização em vez de usá-lo ~/.xinitrc, e que talvez seja necessário atrasar a execução para que as xmodmapalterações não sejam sobrescritas setxkbmap. Você pode usar um atraso para conseguir isso em sua entrada de inicialização:
/bin/bash -c "sleep 20; /usr/bin/xmodmap /home/$USER/.Xmodmap"
(Para a entrada de inicialização, é necessário especificar caminhos absolutos)
Cada vez que setxkbmapé executado para alterar o layout do teclado, você precisará executar xmodmap ~/.Xmodmapnovamente no terminal.
Criando ~/.xinitrc
Crie um arquivo na sua pasta pessoal chamado .xinitrccom
touch .xinitrc
e coloque nele:
xmodmap ~/.Xmodmap
Seu Xmodmaparquivo não deve ter entradas no xmodmap -e " "estilo, pois é usado no terminal para definir temporariamente os valores. Ele deve ter entradas neste formato:
keycode 65 = Tab
keycode 23 = Space
Muitas vezes, é confuso qual dos vários Xarquivos (como .xprofile, .xinitrcetc) são lidos na inicialização, mas .xinitrcainda parece ser lido sob 12.04, enquanto .Xmodmapou .xinputrcnão são lidos por eles mesmos.