Después de intercambiar Ctrl y mayúsculas en xmodmap, ¿cómo puedo hacer que Ctrl funcione correctamente para combinaciones de múltiples modificadores?

Después de intercambiar Ctrl y mayúsculas en xmodmap, ¿cómo puedo hacer que Ctrl funcione correctamente para combinaciones de múltiples modificadores?

He intercambiado Left Ctrly Caps Lockcreando ~/.Xmodmap

keycode 66 = Control_L
keycode 37 = Caps_Lock
clear Lock
clear Control
add Lock    = Caps_Lock
add Control = Control_L Control_R

luego corriendo $ xmodmap ~/.Xmodmap. Al presionar la Left Ctrltecla funciona como se esperaba, alternando Caps Lock. Presionar la Caps Locktecla funciona en general para atajos simples, como Ctrl+N.

Sin embargo, cuando se requieren varias teclas modificadoras (por ejemplo, Alt+ Ctrl+ I), esto solo funciona si presiono la Alttecla primero. Si presiono la Caps Locktecla primero, no hay ningún efecto.

Puedo restablecer la distribución del teclado $ setxkbmap -layout usy el método abreviado anterior funcionará bien. Si vuelvo a ejecutar $ xmodmap ~/.Xmodmap, tengo el mismo problema.

También encuentro que incluso para combinaciones de un solo modificador, tengo que mantener presionada la Caps Locktecla durante una fracción de segundo más de lo que solía hacerlo con la Ctrltecla básica para que se registre. Probablemente sea del orden de 0,01 segundos, pero es bastante notable que se envían señales incorrectas una de cada diez veces.

Además, si cambio Ctrly Caps Lockuso $ setxkbmap -layout us -option 'ctrl:swapcaps', ya no noto el problema con los múltiples modificadores. Sin embargo, todavía quiero solucionar el problema con la solución xmodmap, ya que pronto obtendré un nuevo teclado y tendré que cambiarlo Ctrlpor una tecla diferente.

=EDITAR= Probé con otro teclado (Das Keyboard) y parece que el segundo problema de tener que mantener presionado Caps Lockdurante una fracción de segundo más que antes Ctrles probablemente un problema de hardware con el teclado original (un teclado con cable de aluminio de Apple) . Sin embargo, el primer problema con los modificadores múltiples sigue presente.

=EDITAR= He probado diferentes pulsaciones de teclas en xev. Si mantiene Altpresionada la Caps Locktecla y luego la presiona, se obtiene keycode 66 (keysym 0x0, NoSymbol), a diferencia de keycode 66 (keysym 0xffe3, Control_L)cuando Altno se mantiene presionada.

Respuesta1

Aparentemente, el código xmodmap anterior esnosuficiente para intercambiar las teclas Ctrl+ Ly Caps Lock.

keycode 66 = Control_L

debiera ser

keycode 66 = Control_L Control_L

para permitir la funcionalidad correcta cuando Ctrlse presiona después de otro modificador. No puedo encontrar ninguna buena referencia a esta solución, peroaparentementela segunda entrada se relaciona con Shift+ Key. No estoy seguro de por qué aquí también parece aplicarse a Alt+ Key.

(Además, FWIW, otras fuentes afirman que hay hasta ocho columnas, en lugar de las seis mencionadas en el enlace).

información relacionada