Creé el siguiente ~/.Xmodmaparchivo según esta respuesta .
keysym Delete = Menu
keysym Menu = Delete
clear Lock
keycode 0x42 = Escape
En otras palabras, intercambie Deletey Menu, y haga Caps Lockun adicional Escape.
La próxima vez que inicié sesión, Ubuntu me preguntó si quería cargar ~/.Xmodmapcomo se esperaba. Lo cargué, pero no pasó nada (ni en ese momento ni en inicios de sesión posteriores). Si ejecuto manualmente xmodmap ~/.Xmodmap, funciona como se esperaba.
Sé que esto funcionó temprano en la versión 10.10 beta, pero está fallando en mi nueva instalación 10.10. No he probado nada anterior a 10.10. ¿Algunas ideas?
Editar: puse algunas declaraciones de depuración /etc/gdm/Xsessionpara asegurarme de que se ~/.Xmodmapestaba cargando, y todo comenzó a funcionar mágicamente. No cambié nada excepto agregar algunos ecos, y todavía funciona ahora que revertí mis cambios y reinicié nuevamente. Lo más extraño que he visto.
Una cosa que me di cuenta es que la parte de "remapear Bloqueo de mayúsculas para escapar" del Xmodmap siempre estaba funcionando. Fue solo el intercambio Eliminar / Menú que falló. Dejaré esta pregunta abierta por ahora en caso de que alguien más tenga el mismo problema, ya que en realidad no sé por qué el problema se detuvo.

Respuestas:
Sé que es una tontería, pero como solución alternativa, podrías simplemente iniciar automáticamente
xmodmap ~/.Xmodmap.También puede verificar
/etc/gdm/Xsessionla líneausermodmap="$HOME/.Xmodmap"y, si no está allí, simplemente agregarla al final del archivo. Si usted es el único usuario del sistema, simplemente ingrese sus cambios/etc/X11/Xmodmap.fuente
Settings->Session and Startupo algo similar.Tarde a la fiesta, pero esto también me volvió loco; y, terco como soy, renunciar no era una opción.
Básicamente esto es lo que probé (como mi usuario o root si es necesario)
(En realidad, agregar el
xmodmapcomando a~/.bashrctrabajado, pero requiere iniciar un terminal cada vez después de iniciar sesión)Hace unos años (?),
xkbFue elegido para ocuparse del mapeo y la configuración de las claves (interactuando con X), peroxmodmaptambién podría solicitar cambios relacionados con las claves de X, después dexkbhacer su trabajo durante la inicialización de la sesión X.El problema es cuándo deberían ocurrir estas configuraciones de xmodmap
Se parece esos archivos anteriores se procesan demasiado pronto en el proceso, y, o bien X no estaba dispuesto a aceptar xmodmap cambios o xkb sobreescribiría ellos.
Nota: ¡Agregué algo de "seguimiento" a estos archivos para asegurarme de que realmente se estuvieran ejecutando en algún momento!
Una solución que parece funcionar.
No estaba interesado en agregar un
.desktoparchivo inicialmente (un simple script de una línea tenía que ser suficiente), pero eso funciona, así que aquí está.La solución viene de ¿Cómo reasignar o intercambiar teclas especiales de teclado en Linux? "solución 1"
Básicamente crea un
~/.config/autostart/my-xmodmap.desktoparchivo y ponlo en él:reemplace
mecon su nombre de usuario (tenga en cuenta que no me molesté en intentarlo~/o$HOMEque puede funcionar igual de bien en lugar de/home/me, y la ruta completa de xmodmap probablemente no sea necesaria ...), y agregue el bit de ejecuciónLos comandos xmodmap tienen que estar en un
~/.Xmodmaparchivo en este caso (¡o use la-eopción, o elija otro nombre de archivo!). Cerrar sesión y volver a ingresar.Tenga en cuenta que puede crear el programa de inicio desde "Aplicaciones de inicio".
¡Otra solución sería olvidar xmodmap y aprender a configurar
xkb!Editar (nuevamente)
A veces, tal vez el 25% de los inicios de sesión,
xmodmaptodavía parece no funcionar, mientras que el comando se ejecuta realmente (un rastreador lo demuestra). La única conclusión a la que podría llegar en este momento es que elxkbproceso se ejecuta tarde en el proceso de inicio de sesión y puede finalizar después de que sexmodmaphaya ejecutado. Parece una condición de carrera ... Entonces, finalmente, cambié laexeclínea del archivo de escritorio de inicio automático a(tenga en cuenta que
&)mystartes un script en un nuevo directoriobinque creé que contieney
El script duerme 5 segundos antes de ejecutar xmodmap, y rastrea cuándo se ejecutó (en el archivo
/tmp/xmodmap-has-run).¡Ojalá eso sea todo!
fuente
Aquí hay, quizás una mejor respuesta entonces: http://cweiske.de/howto/xmodmap/ar01s06.html
Puede que tenga que modificarlo un poco para que funcione para usted, pero todas las instrucciones están ahí.
fuente
/etc/gdm/Xsession), las líneas que el enlace dice agregar ya están en él.¿Quizás tenga un error de sintaxis en su
~/.Xmodmaparchivo?Intenta correr:
Eso debería disparar un error si hay alguno.
fuente
Tuve el mismo problema extraño, tratando de iniciar mi Xmodmap mientras iniciaba sesión en mi sesión (ubuntu 13.04). Finalmente lo hice funcionar con un archivo .xinitrc en mi carpeta Inicio donde puse mi comando, pero con rutas absolutas, es decir:
/ usr / bin / xmodmap /home/MYNAME/.Xmodmap
Luego tuve que reiniciar (no solo reiniciar) para que se ejecute.
fuente