¿Cómo cambiar mediante programación las teclas de bloqueo de mayúsculas y esc?

18

Soy un gran usuario de Vim y una de las primeras cosas que hago cuando empiezo a trabajar en una instalación limpia de ubuntu es cambiar las teclas de bloqueo de mayúsculas y esc para reducir los movimientos de las manos sobre el teclado.

Hasta ahora he estado haciendo a través del diálogo de configuración del teclado, pero ahora Estoy escribí un conjunto de scripts que fijarán Ubuntu encima de la manera que me gusta y no he sido capaz de encontrar un scriptable manera u programable para cambiar este elemento de configuración.

No estoy buscando opciones que intercambien las teclas en ningún otro nivel que no sea gnome, así que lo que estoy buscando es una forma de escribir este cambio y hacer que aparezca en la configuración del teclado que solía usar, si decidiera revertirlo manualmente en el futuro.

Jacobo de Vera
fuente
¡buena idea! Me he estado quejando todo el tiempo acerca de mover mi mano por Esc mientras trabajaba en Vim, ¡pero ahora esta es la solución! gracias hermano ;-)
sazary
1
Sin embargo, tenga cuidado, una vez que se acostumbra a cambiarlos, se vuelve incómodo cuando tiene que trabajar en el teclado de otra persona :)
Jacobo de Vera
2
Otra opción es Ctrl-C en lugar de Esc. (Funciona en todos los teclados.
Eric Wilson
@FarmBoy, ¡genial! ¡No lo sabía!
Jacobo de Vera

Respuestas:

22

Puede hacerlo a través de la GUI abriendo el Keyboard Preferencespanel de control (debajo System -> Preferences) y seleccionando la Layoutpestaña. Haga clic en el Options...botón para abrir el cuadro de diálogo de opciones de diseño. Expande la Caps Lock key behavioursección y selecciona Swap ESC and Caps Lock.

Hay algunas maneras en que podría escribir este tipo de cosas.

Directamente a través de Xkb

Podemos hacer el cambio directamente con lo siguiente:

setxkbmap -option caps:swapescape

Puede deshabilitar todas las opciones de diseño actuales (que devolverán el bloqueo de mayúsculas a su comportamiento predeterminado) con:

setxkbmap -option ''

Vía GConf

El panel de control de preferencias del teclado almacena su configuración a través de gconf, con el diseño realmente aplicado por gnome-settings-daemon. Por lo tanto, puede hacer gnome-settings-daemonque ajuste el diseño actualizando gconf usted mismo.

La configuración relevante en este caso parece ser /desktop/gnome/peripherals/keyboard/kbd/options. Entonces puede configurar la opción con:

gconftool-2 --set /desktop/gnome/peripherals/keyboard/kbd/options \
    --type list --list-type string \
    '[caps<tab>caps:swapescape]'

En lo anterior, <tab>debe ser un carácter de tabulación literal en lugar de espacios. Puede deshabilitar el comportamiento nuevamente configurando la clave gconf en una lista vacía.

James Henstridge
fuente
La opción gconf es exactamente lo que estaba buscando, sin embargo, su configuración fue convertir el bloqueo de mayúsculas en una tecla de escape y la tecla de escape en una tecla de tabulación. Cambié la configuración manualmente nuevamente y eché un vistazo al valor en gconf-editor, en realidad era [caps<tab>caps:swapescape]. Todo funciona ahora, acepto su respuesta y sugiero que la edite para cambiar el valor para referencia futura. Gracias.
Jacobo de Vera
@Jacobo En el futuro, puede sugerir la edición usted mismo, simplemente presione el botón de edición debajo de la respuesta. Su cambio será aprobado rápidamente por alguien. He hecho la edición por ti (verifica si es correcta). De todos modos, buena respuesta @ James! +1
Stefano Palazzo
1
@ Stefano, gracias, no había notado la opción de edición.
Jacobo de Vera
¿Hay alguna manera de hacer que esto funcione en GDM en la pantalla de inicio de sesión?
lindhe