GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo evitar el efecto de alternancia de bloqueo de mayúsculas, sin reasignarlo ni desactivarlo?

Tengo un programa X11 que captura el bloqueo de mayúsculas y lo usa. El problema es que quiero deshabilitar el bloqueo de mayúsculas regular, pero al hacerlo parece deshabilitar la tecla.

Entonces, lo que sea que obtenga X11 para presionar una tecla de bloqueo de mayúsculas, aún debe obtener (sin deshabilitar la tecla o reasignarla a otra tecla), pero sin que nada traduzca la presión de la tecla en un cambio de mayúsculas (¿que podría ser en el nivel del kernel? ).

Intenté cambiar el código de escaneo, pero esto solo reasignó la clave.
Eliminé la entrada de bloqueo de mayúsculas con xmodmap también, pero esto también deshabilitó las mayúsculas.

¿Cómo puedo decirle al kernel que ignore la tecla mayúscula (con su funcionalidad normal), pero aún así pasar el mensaje a X?

Solo para agregar un poco más de detalle:

El 'programa' que intento ejecutar es 'enso' humanizado.
Cuando no hay ninguna clave, aparece el error "CRITICAL:root:Couldn't find quasimode key". Cuando no hay ningún error, puedo usar enso con mayúsculas, pero hasta ahora no he descubierto cómo deshabilitar la funcionalidad de mayúsculas mientras que enso aún puede acceder a ella.

Respuesta aceptada:

Creo que tengo una técnica para deshabilitar el cambio de Capslock pero sin deshabilitarla por completo ni reasignarla a otra tecla del teclado.

Si usa el comando:

setxkbmap -option caps:none

El teclado ya no alternará. He confirmado esto en mi computadora portátil con Fedora 14, el LED ya no se enciende y Bloqueo de mayúsculas normal la funcionalidad se ha ido.

Sin embargo, el uso de xev aún muestra que se está presionando la tecla:

$ xev
...
...
KeyPress event, serial 35, synthetic NO, window 0x6800001,
    root 0xb1, subw 0x0, time 261504852, (167,-15), root:(353,268),
    state 0x10, keycode 66 (keysym 0xffffff, VoidSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 35, synthetic NO, window 0x6800001,
    root 0xb1, subw 0x0, time 261504971, (167,-15), root:(353,268),
    state 0x10, keycode 66 (keysym 0xffffff, VoidSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False
    ...

Por lo tanto, los eventos de la tecla que se presiona aún se dejan intactos para que otras aplicaciones los recojan.

setxkbmap

El archivo /usr/share/X11/xkb/rules/xorg.lst contiene la lista completa de las opciones que puede dar a setxkbmap .

Al buscar en este archivo "cap", noté esta línea:

caps:none            CapsLock is disabled

Hay otros valores en este archivo, por lo que si esto no es lo que busca, tal vez uno de esos valores alternativos sea adecuado en su lugar.

$ grep cap /usr/share/X11/xkb/rules/xorg.lst
  grp:caps_switch      CapsLock (while pressed), Alt+CapsLock does the original capslock action
  grp:caps_toggle      CapsLock
  grp:shift_caps_toggle Shift+CapsLock
  grp:shift_caps_switch CapsLock (to first layout), Shift+CapsLock (to last layout)
  grp:alt_caps_toggle  Alt+CapsLock
  lv3:caps_switch      CapsLock
  lv3:caps_switch_latch CapsLock (chooses 3rd level, latches when pressed together with another 3rd-level-chooser)
  ctrl:nocaps          Make CapsLock an additional Ctrl
  ctrl:swapcaps        Swap Ctrl and CapsLock
  grp_led:caps         CapsLock
  caps                 CapsLock key behavior
  caps:internal        CapsLock uses internal capitalization. Shift "pauses" CapsLock
  caps:internal_nocancel CapsLock uses internal capitalization. Shift doesn't affect CapsLock
  caps:shift           CapsLock acts as Shift with locking. Shift "pauses" CapsLock
  caps:shift_nocancel  CapsLock acts as Shift with locking. Shift doesn't affect CapsLock
  caps:capslock        CapsLock toggles normal capitalization of alphabetic characters
  caps:numlock         Make CapsLock an additional NumLock
  caps:swapescape      Swap ESC and CapsLock
  caps:escape          Make CapsLock an additional ESC
  caps:backspace       Make CapsLock an additional Backspace
  caps:super           Make CapsLock an additional Super
  caps:hyper           Make CapsLock an additional Hyper
  caps:shiftlock       CapsLock toggles Shift so all keys are affected
  caps:none            CapsLock is disabled
  compose:caps         CapsLock
  shift:breaks_caps    Shift cancels CapsLock
  shift:both_capslock  Both Shift-Keys together toggle CapsLock
  shift:both_capslock_cancel Both Shift-Keys together activate CapsLock, one Shift-Key deactivates

Referencias

  • Deshabilitar el bloqueo de mayúsculas y reasignar el menú a Super_R con xmodmap ya no funciona
  • Deshabilitar y habilitar el bloqueo de mayúsculas en Ubuntu
  • Deshabilitar la tecla Bloq Mayús en Linux
  • Teclado:modificar o desactivar el bloqueo de mayúsculas
Relacionado:¿Decidir sobre una fuente y determinar la notación adecuada?
Linux
  1. ¿Cómo producir el efecto de caché de la CPU en C y Java?

  2. ¿Cómo puedo usar grep para hacer coincidir pero sin imprimir las coincidencias?

  3. Xorg:¿Cómo puedo asignar AltGr a la tecla CapsLock (para alternar símbolos de tercer nivel)

  4. ¿Cómo puedo evitar o interrumpir copiar/pegar accidentalmente en la terminal?

  5. ¿Cómo cambias el bloqueo de mayúsculas al control en xfce?

Cómo habilitar el efecto de desenfoque en KDE Plasma 5.13

¿Cómo tirar de una línea en particular sin mover el cursor en Vim?

Activar Numlock sin la clave – ¿Sin permisos de Sudo?

¿Cómo tardo un directorio sin conservar la estructura del directorio?

¿Cómo puedo enumerar los archivos en un archivo zip sin descomprimirlo?

¿Cómo usa sorbos en la terminal para cambiar el tamaño de una imagen, sin aumentar la escala?