¿Cómo volver a habilitar la tecla de bloqueo de mayúsculas?

12

Actualmente estoy configurando mi diseño de teclado predeterminado de esta manera:

setxkbmap -layout us -variant dvorak -option ctrl:nocaps,[...]

Deshabilita la tecla de bloqueo de mayúsculas y la convierte en una tecla Ctrl adicional, junto con un enjambre de otras opciones.

Me gustaría hacer lo siguiente para cambiar la distribución del teclado:

setxkbmap -layout us -variant dvorak-l -option ctrl:swapcaps

Sin embargo, no vuelve a habilitar la tecla de bloqueo de mayúsculas; Tanto la tecla de control izquierda como el bloqueo de mayúsculas permanecen como teclas de control hasta donde puedo ver.

Sé que puedo borrar toda la lista de opciones, pero en aras de la mantenibilidad, prefiero no copiar las opciones. ¿Cómo vuelvo a habilitar el bloqueo de mayúsculas?

Actualización: Al mirar las pulsaciones de teclas con xev (1), aparece ctrl: nocaps da una Control_Lpara ambas teclas, y ctrl: swapcaps "restaura" la tecla de bloqueo de mayúsculas (presionando la tecla da Caps_Lock). Sin embargo, el LED de bloqueo de mayúsculas no se enciende ni funciona realmente.

Mirar el xkeyboard-config/symbols/ctrlarchivo en las fuentes de X.org sugiere el problema:

xkb_symbols "nocaps" {
    replace key <CAPS>  {  [ Control_L, Control_L ] };
    modifier_map  Control { <CAPS>, <LCTL> };
};
xkb_symbols "swapcaps" {
    replace key <CAPS>  {  [ Control_L ] };
    replace key <LCTL>  {  [ Caps_Lock ] };
};

La última opción carece de una línea modifier_map, lo que sea que haga

hhaamu
fuente
Supongo que todos los que intentaron ayudarme atascaron sus teclados en dvorak = (
hhaamu
44
X es tan antiguo y complejo ahora que no mucha gente realmente comprende los diversos mecanismos internos. Incluso hay secciones en la página de manual que dicen (y cito): " Nadie quiere decir cómo funciona esto. Quizás nadie lo sepa ... ". Estoy interesado en ver una respuesta a esta pregunta también, pero puede ser el caso que nadie sabe ...
jw013

Respuestas:

14

Los siguientes comandos deberían funcionar:

xmodmap -e 'keycode 0x42 = Caps_Lock'

o

setxkbmap -option

Los comandos anteriores funcionan bien para restaurar el comportamiento predeterminado, que casi nunca necesito, por suerte.

Normalmente vuelvo a asignar el bloqueo de mayúsculas a Control (por suerte, VI / VIM admite CTRL-C en lugar de ESC) con el siguiente comando:

setxkbmap -option ctrl:nocaps -layout gb
Alex
fuente
La "opción setxkbmap" para borrar la configuración es exactamente lo que estaba buscando. Intenté cambiar mi comportamiento, pero seguía agregando elementos conflictivos a la lista de opciones.
m0j0
2

Tratar setxkbmap -option -layout us -variant dvorak-l -option ctrl:swapcaps

Desde la página del manual:

[...] If you want to
replace all previously specified options, use the -option  flag
with an empty argument first.

La ironía es que aquí -option ctrl:swapcapsrealmente anula -option ctrl:nocaps, supongo que el comportamiento cambió.

Editar: como dijo el OP, quiere evitar borrar las opciones (como se hizo en la forma anterior).

/usr/share/X11/xkb/rules/xorg.lstmuestra la opción ctrl:aa_ctrl(control en la parte inferior izquierda), que parece restablecer el bloqueo de mayúsculas después de nocapsaquí.

Supongo que vale la pena intentarlo, y también puede mirar la lista ( grep ctrl\:) y ver si hay algo más que pueda funcionar, en caso de que no lo haga.

Si no hay una opción para esto, supongo que la solución es hackear el mapa de teclas actual, asociando Caps Lock con la tecla Caps Lock nuevamente (pero no tengo experiencia con eso, aparte de creer que hay una herramienta que te permite hacer eso con una sola línea).

njsg
fuente
De hecho, eso borra la lista de opciones, pero deseo mantener las opciones no relacionadas con mayúsculas (como dije en la pregunta) como componer claves.
hhaamu
Oh, lo siento, leí mal la pregunta. No puedo estar seguro de si esto funcionará (como dije, en swapcapsrealidad vuelve a habilitar el bloqueo de mayúsculas aquí), pero desde /usr/share/X11/xkb/rules/xorg.lst, veo que existe la opción ctrl:aa_ctrl(control en la parte inferior izquierda), que parece restablecer el bloqueo de mayúsculas después de nocapsaquí.
njsg
Creo que el programa mágico es xmodmappero no estoy muy seguro de cómo usarlo
hhaamu
0

hay una opción "mayúsculas: mayúsculas" (que se asigna a agregar "+ mayúsculas (mayúsculas)" a xkb_symbols) que habilita la mayúsculas.

Sin embargo, esa opción (¿quizás todas mayúsculas: xxxxx?) Se agrega antes que las ctrl: xxxxx existentes; como ctrl: swapcaps redefine la tecla de mayúsculas, esa opción no tiene efecto.

Por lo tanto, es absolutamente necesario eliminar todas las opciones y realmente poner las que desee; de la forma en que existen las opciones, se supone que no deshacen la acción de una anterior, y al tener opciones en conflicto (por ejemplo, dos (o más) que redefinen una misma clave) no puede definir su orden.

Pablo Saratxaga
fuente