Openbox sobrescribe la configuración de xmodmap

9

Estoy configurando openbox en mi computadora portátil con Linux Mint 13. Quiero que mi tecla Bloq Mayús actúe como una tecla de control adicional. Puse la configuración requerida en mi ~/.Xmodmaparchivo y lo comprobé ejecutando

xmodmap ~/.Xmodmap

Funciona correctamente

Sin embargo, cuando vuelvo a iniciar sesión en mi sesión de openbox, estos cambios clave no están presentes. Ejecutar el xmodmapcomando anterior lo hace funcionar nuevamente, pero quiero que suceda automáticamente al inicio.

Lo interesante es que agregué un zenitycomando de prueba como el siguiente a mi ~/.config/openbox/autostartarchivo

zenity --info --text=Hello

Esto produce una pequeña ventana de diálogo y sale solo después de cerrar el diálogo.

Ahora, cuando vuelvo a iniciar sesión en mi sesión de openbox, el bloqueo de mayúsculas actúa como una tecla Ctrl, hasta que se cierra el cuadro de diálogo zenity. Una vez que se cierra ese cuadro de diálogo, el bloqueo de mayúsculas vuelve a su comportamiento predeterminado.

No he encontrado nada en esto con google, así que estoy pidiendo ayuda aquí. ¿Tienen alguna idea sobre lo que podría estar yendo mal?

Actualizar:

He estado tratando de resolver esto y en mis experimentos, copié mi /usr/bin/xmodmaparchivo /usr/bin/xmodmap_y lo reemplacé /usr/bin/xmodmapcon el siguiente script bash

#!/bin/bash

{
    echo '-------'
    date
    echo xmodmap "$@"
} >> ~/xmodmap-calls

exec /usr/bin/xmodmap_ "$@"

Entonces, cada vez que se ejecuta un maldito script en el sistema xmodmap, lo conozco.

Con esto, vuelvo a iniciar sesión y solo encuentro una entrada en mi ~/xmodmap-callsarchivo, que es la que ejecuta mi ~/.Xmodmap, que se espera. Entonces, pensé que no xmodmapes que sobrescriba mis cambios.

Luego, un poco de google me presentó el setxkbmapcomando, que aparentemente también puede hacer lo mismo. Reemplacé ese ejecutable también, similar a xmodmap anterior. ¡Y obtuve el comando culpable!

setxkbmap -option terminate:ctrl_alt_bksp

No tengo ni idea de lo que hace, pero después de ejecutar xmodmap ~/.Xmodmap(que aplicó mi configuración correctamente), si ejecuto el comando anterior, ¡mis cambios se restablecen! Editar : Esto está resultando realmente divertido. Solo un setxkbmapcomando sin ningún argumento, felizmente sobrescribe mis cambios con el xmodmap ~/.Xmodmapcomando.

Ahora tengo dos cosas que averiguar, de dónde se setxkbmapestá ejecutando esto y por qué y cómo solucionarlo. Todavía estoy investigando, pero en serio podría necesitar ayuda :)

Actualización 2

Al diablo con xmodmap. No puedo entender de dónde setxkbmapse está llamando, pero descubrí una forma de usar el setxkbmapcomando para hacer que mi Bloq Mayús se comporte como Ctrl.

setxkbmap -option ctrl:nocaps

Justo antes de iniciar openbox. Trabajos brillantes La tecla de bloqueo de mayúsculas permanece actuando como una tecla Ctrl. xmodmapnunca se ejecuta.

Mantendré esta pregunta aquí abierta para que alguien que sepa estas cosas pueda proporcionar alguna información. Además, para las personas que enfrentan esto después de mí :)

Actualización 3

Aquí está el contenido de mi .config/openbox/autostart, según lo solicitado por pedrosaurio.

#!/bin/bash

# Set the wallpaper.
feh --bg-scale /wall.png

# Set default brightness.
xbacklight -time 1 '=40'

# Compositing.
xcompmgr &

# The panel.
tint2 &

# Start a terminal too.
roxterm &

Esto no tiene nada que ver con el teclado, por lo que puedo decir. Además, aquí está el script que inicia mi sesión: (Ejecutado por lightdm)

#!/bin/bash

setxkbmap -option ctrl:nocaps

exec openbox-session
Shrikant Sharat
fuente
probablemente esté utilizando algún tipo de configuración de teclado, por ejemplo, elija la distribución del teclado o algo similar que revierta los cambios aplicados
Ulrich Dangel
El único otro lugar en el que jugué con la configuración del teclado es la ventana de preferencias de diseño del teclado GUI, donde cambié la tecla de bloqueo de mayúsculas para que se comportara como un Ctrl adicional. Eso funciona bien, en el canela DE, mi bloqueo de mayúsculas actúa como un Ctrl incluso después de volver a iniciar sesión. Creo que la configuración era solo de canela, pero no estoy seguro.
Shrikant Sharat
¿Cómo agrega el comando en el script de inicio automático?
pedrosaurio
¿Puedes publicar tu autostartarchivo?
pedrosaurio

Respuestas:

1

Estaba experimentando un problema similar. Resultó que fue causado por ibus. Simplemente lo desinstalé, ya que no necesito sus servicios.

Encontré al culpable usando su truco de reemplazar setxkbmap por un script, sin embargo, también agregué ps -AF --forestpara identificar a la persona que llamaba setxkbmap.

gobenji
fuente
0

Sin conocer su secuencia de comandos de inicio automático, mi apuesta es que no está utilizando la sintaxis adecuada al permitir que sus comandos se ejecuten en segundo plano con el signo ampersand ( &).

Intenta editar tu .config/openbox/autostartarchivo para que se vea así:

# Run the system-wide support stuff
#. $GLOBALAUTOSTART
# Programs to launch at startup
# Programs that will run after Openbox has started
(sleep 1 && xmodmap ~/.Xmodmap ) &

Si tiene dudas, eche un vistazo en el wiki de openbox y vea cómo tienen todos los ejemplos &después de cada entrada.

http://openbox.org/wiki/Help:Autostart

pedrosaurio
fuente
Mi archivo de inicio automático está vacío. En un punto que tenía xmodmap ~/.Xmodmapen ese archivo (sin un &, no parecía necesario). He estado llamando xmodmap(y ahora setxkbmap) en el script que inicia mi sesión de openbox. Justo antes de correr exec openbox-session, ejecuto el setxkbmapcomando.
Shrikant Sharat
Además, agregar un sleep 1retraso para que xmodmapaplique sus cambios después de que todo lo demás se carga, aunque funciona la mayor parte del tiempo, no me hace sentir demasiado confiado sobre la solución. Prefiero no hacerlo, si tengo alternativas.
Shrikant Sharat
Obviamente, puede evitar todos los comentarios y el sleepcomando, sin embargo, &es necesario después de cada entrada, de lo contrario, todos los programas después de la primera entrada no se ejecutarán en absoluto.
pedrosaurio
Sí, si se trata de una aplicación / proceso de larga ejecución, no agregar una &hará que se bloquee. Utilicé este comportamiento con el zenitycomando para encontrar que mis xmodmapcambios se sobrescriben después de autostart finalizar. Mi inicio automático ahora está creciendo de tamaño y lo pegará en la pregunta en un momento. Sin embargo, no tiene nada que ver con el teclado.
Shrikant Sharat
Y, sin el comando de suspensión, los cambios realizados por xmodmapse sobrescriben tan pronto como finaliza el archivo de inicio automático.
Shrikant Sharat