Diferencia izquierda / derecha super botón

10

Cuando Superpresiono la tecla izquierda aparece el shell gnome y cuando presiono la Supertecla derecha no aparece. Además, presionar right Super+ Tabre un terminal a la vez, pero cuando uso el super izquierdo tengo que presionar Tdos veces, cuando presiono el Túnico una vez es similar a presionar Tsin presionar el Superleft. Este último punto también ocurre con otros atajos que definí (como Super+ L, Super+ E), pero no con Super+ Up/Down/Left/Right.

Lo que quiero es presionar cualquiera de las Superteclas para obtener el shell gnome y usar cualquiera de las Superteclas en combinación con Tpara abrir un terminal de inmediato (y similar con otros accesos directos). Yo uso Ubuntu 12.04 LTS y el shell gnome 3.

Erik
fuente
En Settings Manager -> Keyboard, ¿hay una opción como exo-open --launch TerminalEmulator? Si es así, ¿qué dice en la segunda columna, acceso directo?
DaimyoKirby
1) ¿Te refieres a la sección Teclado en la configuración del sistema? Si es así, no puedo encontrarlo allí. 2) Si te refieres al administrador de configuración de compiz, tampoco puedo encontrarlo allí. De todos modos, probé su comando en la terminal y dice que exo-open no está instalado, por lo que dudo mucho que esa opción esté allí. Sin embargo, existe el terminal de inicio de acceso directo personalizado con el comando x-terminal-emulator. Ese es el que uso, ya que el terminal de inicio predeterminado no parece funcionar.
Erik

Respuestas:

4

Solución xmodmap

Creo que puedes hacer esto usando xmodmap , una herramienta para modificar mapas de teclas. Como mi teclado no tiene una Supertecla correcta, no puedo confirmar esta solución, así que deje un comentario si no funciona.
Todos los pasos se realizan en una terminal

Imprimir el mapa modificador actual
Ejecutar

xmodmap

Esto debería imprimir el mapa modificador actual que debería gustar algo como esto

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock      
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

La línea importante es la mod4línea, esta línea muestra qué códigos de tecla se asignan a los símbolos de tecla Super_L y Super_R.

Copia de seguridad del mapa de teclas
Antes de cambiar cualquier cosa, es una buena idea hacer una copia de seguridad del mapa de teclas actual, podemos hacerlo con

xmodmap -pke > ~/.xmodmap.orig

Ahora, si algo sale mal, simplemente puede escribir

xmodmap ~/.xmodmap.orig

para restaurar su mapa de claves original. (Si cometió algunos errores graves y ya no puede escribir correctamente, un reinicio también funciona)

Verifique el mapa de Super teclas actual para las teclas
Suponiendo que las Superteclas tienen códigos de teclas consecutivos (0x85 y 0x86 en este caso) podemos verificar el mapeo actual ejecutando

xmodmap -pke | grep -wA1 $((0x85))

Por supuesto, debe cambiar el 0x85 por el código de clave que tiene de su mapa modificador. Esto debería darte

keycode 133 = Super_L NoSymbol Super_L
keycode 134 = Super_R NoSymbol Super_R

(el $((0x85))convierte el número hexadecimal a decimal)

Copie el comportamiento de la izquierda Super a la derecha Super
Como puede ver en el paso anterior, la Supertecla derecha tiene el código clave 134 pero queremos que tenga el comportamiento de la Supertecla izquierda que tiene el código clave 133. Podemos hacer esto reasignando la tecla usando

xmodmap -e "keycode 134 = Super_L NoSymbol Super_L"

Comprobar si funciona
Si ahora lo haces

xmodmap -pke | grep -wA1 $((0x85))

deberías ver

keycode 133 = Super_L NoSymbol Super_L
keycode 134 = Super_L NoSymbol Super_L

lo que significa que ambas teclas ahora tienen el mismo comportamiento. También el mapa modificador debería haber cambiado en la línea con mod4, podemos verificar esto ejecutando

xmodmap | grep 'mod4'

que debería dar

mod4        Super_L (0x85),  Super_L (0x86),  Super_L (0xce),  Hyper_L (0xcf)

¡Y, por supuesto, los atajos que mencionaste también deberían funcionar!

Hacer que la asignación sea persistente
Si funciona, puede asegurarse de que estas configuraciones se apliquen automáticamente al iniciar. correr

echo 'keycode 134 = Super_L NoSymbol Super_L' >> ~/.xmodmaprc

para almacenar su asignación de teclas personalizada en el archivo ~/.xmodmaprc. correr

echo 'xmodmap ~/.xmodmaprc' >> ~/.xsessionrc

para asegurarse de que el mapa de teclas personalizado se ejecuta cuando se carga su administrador de ventanas.

Gerhard Burger
fuente
1
En primer lugar, gracias por su respuesta, hice todo lo posible para que la asignación sea persistente. La salida en el terminal fue exactamente como se mencionó, sin embargo, mis problemas siguen siendo los mismos: el super izquierdo muestra el shell gnome y el derecho no. Y similar con los atajos, con el super izquierdo, tendrás que presionar t dos veces para abrir el terminal y con el super derecho una vez es suficiente.
Erik
1
hmm, entonces tampoco tengo ni idea: supongo que estos atajos se manejan en un nivel más profundo.
Gerhard Burger
1
Ah, encontré un informe de error, aparentemente más personas tienen el mismo problema :) bugzilla.gnome.org/show_bug.cgi?id=659899
Gerhard Burger