Creé el siguiente ~/.Xmodmap
archivo según esta respuesta .
keysym Delete = Menu
keysym Menu = Delete
clear Lock
keycode 0x42 = Escape
En otras palabras, intercambie Delete
y Menu
, y haga Caps Lock
un adicional Escape
.
La próxima vez que inicié sesión, Ubuntu me preguntó si quería cargar ~/.Xmodmap
como 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/Xsession
para asegurarme de que se ~/.Xmodmap
estaba 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/Xsession
la 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 Startup
o 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
xmodmap
comando a~/.bashrc
trabajado, pero requiere iniciar un terminal cada vez después de iniciar sesión)Hace unos años (?),
xkb
Fue elegido para ocuparse del mapeo y la configuración de las claves (interactuando con X), peroxmodmap
también podría solicitar cambios relacionados con las claves de X, después dexkb
hacer 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
.desktop
archivo 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.desktop
archivo y ponlo en él:reemplace
me
con su nombre de usuario (tenga en cuenta que no me molesté en intentarlo~/
o$HOME
que 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
~/.Xmodmap
archivo en este caso (¡o use la-e
opció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,
xmodmap
todaví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 elxkb
proceso se ejecuta tarde en el proceso de inicio de sesión y puede finalizar después de que sexmodmap
haya ejecutado. Parece una condición de carrera ... Entonces, finalmente, cambié laexec
línea del archivo de escritorio de inicio automático a(tenga en cuenta que
&
)mystart
es un script en un nuevo directoriobin
que 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
~/.Xmodmap
archivo?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