No puedo hacer que xmodmap se ejecute al iniciar sesión en Ubuntu 13.04. He buscado alrededor, incluso en askubuntu y todas las respuestas que encontré no funcionan.
Tengo un archivo llamado .Xmodmap en mi carpeta de inicio que contiene las asignaciones deseadas. Si lo ejecuto manualmente, funciona bien, por lo que no hay ningún error allí. Para que se ejecute al inicio, he intentado:
Usando varios que
.xinitrc
contienen uno de los siguientes comandos:xmodmap .Xmodmap
xmodmap ~/.Xmodmap
/usr/bin/xmodmap /home/NAME/.Xmodmap
if [ -s ~/.Xmodmap ]; then
xmodmap ~/.Xmodmap
fi
Utilizando en
.Xresources
lugar de.xinitrc
con las mismas variaciones.Configurarlo como una aplicación de inicio.
Ninguno de los anteriores funciona en Ubuntu 13.04 (64 bits). También vi algunas ideas sobre cómo cambiar globalmente las asignaciones de teclado, pero la mayoría de ellas no eran aplicables en Ubuntu 13.04 (es decir, los archivos correspondientes no existían donde se especificaba) y prefiero no tocar la configuración global de todos modos.
unmodified
shift
altgr*
shift+altgr
. Pero ¿qué pasaleft alt
ysuper key
?xkb
. Además de ser críptico, esto tiene el problema de que tus mapas personalizados se eliminan cuandoxkb
se actualizan.Para mí, la configuración de xkb es demasiado complicada si desea reasignar 1 o 2 teclas de una manera que no está disponible en la Configuración del sistema. Además, la solución debe permanecer en el lado del usuario, sin editar '/ usr / share / X11 / xkb / symbols /' etc. Forzar la carga de 'xmodmap ~ / .Xmodmap' usando las Aplicaciones de inicio solo funciona hasta que suspenda, cambie de usuario o cambiar la distribución del teclado. Entonces, como sugiere holocronweaver, con los fragmentos de código que encontré, hice un script de Python para cargar al inicio de la sesión, que recarga el '~ / .Xmodmap' cuando es necesario.
Consulte el informe de error # 1243642 (comentario # 6) y descárguelo aquí .
fuente
Tuve este problema en Ubuntu 14.04, y encontré la solución aquí . Aparentemente, Ubuntu no puede configurar el teclado inmediatamente después de iniciar sesión, pero es un poco más tarde. Entonces, si agrega un comando
a
~/.bash_profile
continuación, que debería funcionar (lo hace para mí).EDITAR: Esto parece funcionar solo después de iniciar sesión, no después de iniciar. Tendré que investigar esto más tarde.
fuente
xmodmap ~/.Xmodmap
Convertir Caps Locken Escpara
vim
usoAquí está mi variante de un script de inicio de mapeo de claves. Se convierte Caps Locken Esccualquier teclado para usar con
vi
,vim
ogvim
.A diferencia de la respuesta de q4w56 , esta respuesta no usa ningún
while; do
bucle infinito . De lo contrario, un núcleo de mi CPU de doble núcleo alcanzaría el 42% cada 5 segundos, reduciendo severamente la carga de la batería de mi computadora portátil.Guárdelo como un guión. Haga que el archivo sea ejecutable con
chmod +x
. Agregue el nombre del script y la ubicación aSession and Startup → Application Autostart
(en Xubuntu).El comportamiento del teclado para este usuario permanecerá persistente durante el reinicio y el cierre de sesión, pero no se suspenderá. La persistencia a través de la suspensión se puede lograr , pero desafortunadamente solo a nivel del sistema, no fácilmente a nivel del usuario.
Justificación de esta reasignación de teclado
En el mundo informático actual, queda muy poco uso para la Caps Lockclave. En general, uno debe abstenerse de usar ALL CAPS en virtud tanto de la netiquette como de la separación de la presentación y el contenido . Además, Caps Lockpresionar accidentalmente la tecla mientras se edita el texto
vim
no siempre se nota de inmediato, pero invariablemente resulta en un comportamiento bastante molestovim
más adelante. Desactivar la Caps Lockclave todos juntos y reutilizarla como una Escclave fácil de alcanzar resulta en una doble victoria para suvim
uso.fuente
Caps Lock
clave podría ser un verdadero salvavidas para losvim
usuarios de Apple MacBooks sin unaEsc
clave .capslock
toctrl
. Esto resuelve muchos más problemas, y en Vim, entonces, puedes usarcapslock
+[
paraEsc
Perdón por entrometerse, pero me sentí obligado a sugerir esto.How do you use vim after you close the lid on your laptop?
Al abrir la tapa, por supuesto!También tuve el problema en Ubuntu 16.04 con fcitx, y tenía la solución en el wiki de fcitx , pero necesitaba fcitx tiene 4.2.7 o posterior
touch ~/.Xmodmap
También hay alguna explicación por la razón.
fuente
@ La respuesta de Daniel me señaló el camino correcto, pero me gustaría ampliarlo.
Funciona para mí en Linux Mint 17.2 y Ubuntu 16.04.
Intenté todos los giros que se me ocurrieron para seguir usando
xmodmap
, pero todos fallan cuando el sistema entra en modo de suspensión. Lo mismo se aplica incluso a los scripts de aplicación de inicio que se usansetxkbmap
en casos donde el * settings-daemon (para mí es xfce4) se ejecuta más tarde que el script --- y el orden no puede verse realmente influenciado.Lo que finalmente se me ocurrió tiene los siguientes ingredientes:
1) Escriba un archivo de asignación de teclado mínimo para
/usr/share/X11/xkb/symbols
. Llamemos al archivomylayout
Puede ser tan simple comobasic
es solo un nombre, lo veremos más tarde.name[Group1]
manera similar, es solo un nombre, pero no desempeñará ningún papel más adelante.include "us"
incluye el llano us teclado. En realidadus
es otro archivo en el mismo directorio. Este es el diseño del teclado que estamos adaptando. Elija uno diferente según sea necesario. Nota: no hay punto y coma para finalizar esta línea.key
línea es una adaptación del teclado, más pueden seguir. El<AE03>
se puede encontrar en los archivos debajo/usr/share/X11/xkb/keycodes
. Use elxev
programa para descubrir que la tecla "3" tiene el código clave 12 y en el archivo de códigos clave alXfree86
que está asignado<AE03>
.include
directiva para activar otra opción de teclado, en este caso, quiero tener la tecla Alt correcta para ser la tecla shift de nivel 3, es decir, la tecla que da acceso alsterling
signo que definí anteriormente.level3
es solo un nombre de archivo en la misma carpeta conralt_switch
una sección. Eche un vistazo y elija lo que necesita incluir.2) Yo no pongo la
mylayout
en la carpeta del sistema. En cambio, solo hice un enlace suave desde la carpeta del sistema a una carpeta de mi agrado para ver de inmediato que este no es un software de stock.3) Además, no lo solucioné
evdev.xml
, nuevamente para evitar problemas de actualización. Pero esto sería necesario para encontrar mylayout en el editor de configuración del teclado (para xfce4 lo esxfce4-keyboard-settings
). En su lugar, uséxfce4-settings-editor
y cambiékeyboard-layout->XkbLayout
amylayout
(el nombre del archivo) yXkbVariant
abasic
(ver arriba). Posteriormente, tambiénmylayout/basic
se muestra en el editor de configuración del teclado. Una entrada enevdev.xml
parece ser solo necesaria para poder seleccionar el diseño.De esta manera, la configuración del teclado ahora sobrevive al modo de suspensión y se reinicia.
Puede encontrar más antecedentes aquí: http://www.charvolant.org/~doug/xkb/html/node5.html .
Aquí puede encontrar otro enfoque para solucionar el problema del modo de suspensión (no lo intenté yo mismo): https://www.vinc17.net/unix/xkb.en.html .
ACTUALIZACIÓN: trabajé con Mint 18.3 en el mismo momento en que cambié la configuración en xfce4-settings-editor como se describió anteriormente.
ACTUALIZACIÓN: con 18.04, gdm3 como administrador de pantalla y XFCE4 como administrador de ventana, parece que ~ / .Xmodmap se lee nuevamente y la configuración parece sobrevivir a una suspensión. (Raramente uso suspender y nunca estoy seguro de en qué modo se encuentra la computadora portátil).
fuente
REVISIÓN
Una actualización a principios de 2018 rompió la persistencia: recarga automática del mapa de teclas después de suspender o hibernar. Dado que los métodos que usan los scripts /etc/pm/sleep.d dejaron de funcionar (¿en desuso?), Eso dejó solo la forma más nueva, usando / lib / systemd / system-sleep y secuencias de comandos ligeramente diferentes (¡que comenzaron a funcionar en mapas de teclas!).
Por lo tanto, esta publicación se actualiza al método más nuevo para la persistencia y para incluir la carga normal del mapa de teclas inicial, que también comenzó a funcionar. La rutina para convertir un archivo .Xmodmap a .xkbmap permanece sin cambios.
Tenga en cuenta que esta es una solución por usuario. Para obtener una respuesta por dispositivo, vea cómo aplicar un mapa de teclas a un solo dispositivo . Este método podría adaptarse para su uso aquí.
Primero modifique el archivo .Xmodmap como desee. Estos son más fáciles de editar directamente que los archivos .xkbmap. Cuando está cargado:
luego conviértalo a un archivo .xkb:
Para cargar automáticamente al inicio, abra Aplicaciones de inicio, haga clic en Agregar, y en la línea de comando ingrese:
("usuario" se reemplaza con el nombre de usuario real). Para Nombre, quizás ingrese Cargar mapa del teclado. Agregue un comentario si lo desea y presione Guardar.
El mapa de teclas ahora se cargará cada vez que se inicie el sistema, pero no sobrevivirá a una suspensión o hibernación. Para esto, cree un nuevo archivo en / lib / systemd / system-sleep, quizás llamado 60_xkbmap, que contiene:
( Ref. ) Como arriba, reemplace "usuario" con el nombre de usuario real.
El mapa de teclas ahora debería cargarse automáticamente y permanecer persistente. Nota:
fuente
Esto también me hizo tropezar cuando actualicé Ubuntu 12.04 a 13.04.
Afortunadamente, esta configuración es ahora (o quizás siempre ha sido) fácilmente accesible en las preferencias del teclado y se puede cambiar con unos pocos clics del mouse.
Ahí tienes: el control izquierdo y el bloqueo de mayúsculas han cambiado de posición.
No olvide eliminar
~/.Xmodmap
una vez que haya realizado el cambio.fuente
XKBOPTIONS="ctrl:swapcaps"
en/etc/default/keyboard
.Encuentro satisfactorio agregar este script al inicio:
Intenté usarlo
xmodmap ./Xmodmap
, pero cada vez que se ejecuta, se producirá un retraso notable.fuente
while; do
debe evitar el uso de cualquier bucle infinito . ¡Causó que un núcleo de mi CPU de doble núcleo alcanzara el 42% cada 5 segundos, reduciendo severamente la carga de la batería de mi laptop!