Eu não tenho uma resposta, mas talvez eu possa nos ajudar a resolver esse mistério. Estou rodando o Xfce em cima do Debian (desculpe os fãs do Ubuntu) e estou tendo problemas semelhantes. Eu tenho um arquivo .desktop em ~ / .config / autostart para invocar xmodmap e isso funciona, mas o efeito dura apenas cerca de 23 segundos (cronometrado) após o qual os mapeamentos de teclas personalizadas são perdidos. Eu suspeitava que isso fosse um problema com o Xfce sobrepondo os mapeamentos de teclas e estou curioso se você estiver usando o xubuntu. Mesmo se eu digitar o comando xmodmap em um terminal logo após o login, ele será esquecido após cerca de 20 segundos. No entanto, se eu esperar um pouco e, em seguida, digite o comando que é permanente (principalmente, veja notas sobre suspender abaixo). Adicionar um sono à minha invocação de início automático tem o mesmo efeito. Meu arquivo ~ / .config / autostart / xmodmap.desktop atualmente se parece com isto:
[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=xmodmap
Comment=custom key mappings
Exec=bash -c "sleep 30;xmodmap ~/.Xmodmap"
StartupNotify=false
Terminal=true
Hidden=false
Eu configurei o terminal para mostrar para que eu possa ver o que está acontecendo. Essa é uma solução terrível, já que tenho que esperar 30 segundos antes do meu mapa de chaves entrar em vigor e, quando isso acontecer, o computador basicamente congela por cerca de 6 segundos, enquanto o xmodmap processa o arquivo de entrada. Isso é aceitável (suponho) na inicialização, mas não quando já estou no meio das coisas.
Eu também posso confirmar o comportamento de suspensão. Usando o arquivo .desktop acima, recebo meus mapeamentos de teclas, mas ao acordar da suspensão eles são esquecidos. Que chatice, mas eu não uso suspender frequentemente de qualquer maneira, então esta é uma limitação que eu poderia aceitar.