Por alguna razón, mi computadora portátil está atascada en el bloqueo de mayúsculas. Tengo la Caps Lockclave asignada por el xmodmap
que hyper_l
, por lo que no tienen una caps_lock
clave para apagarlo. ¿Hay alguna forma de desactivarlo mediante la línea de comandos? Sería bueno si pudiera restablecer el estado de bloqueo sin restablecer mi computadora, especialmente para referencia futura. Esto ha sucedido antes, pero me gustaría saber ahora cómo hacerlo correctamente esta vez.
command-line
xmodmap
capslock
Echogene
fuente
fuente
Respuestas:
No conozco ninguna herramienta de línea de comandos para eso en Ubuntu. (Para Num Lock, hay numlockx ). Aquí hay una línea que puede copiar y pegar en una ventana de terminal:
Aquí está nuevamente en una forma más expandida. Usamos la biblioteca de tipos de Python para llamar a las funciones C desde la biblioteca X directamente. La función cambia el estado de los bloqueos del teclado, en el teclado central ( = 0x0100), afectando el bloqueo de mayúsculas (2), configurándolo en 0 (desactivado).
XkbLockModifiers
XkbUseCoreKbd
Si tiene un modificador atascado, cambie 2 a la máscara de los modificadores que desea desactivar. Los modificadores son 1 = Shift, 2 = Lock (Caps Lock), 4 = Control, 8 = Mod1, 16 = Mod2, 32 = Mod3, 64 = Mod4, 128 = Mod5. Ejecute
xmodmap -pm
para ver a qué corresponden Mod1 a Mod5. Por ejemplo, para desactivar todos los modificadores, llameX11.XkbLockModifiers(display, c_uint(0x0100), c_uint(255), c_uint(0))
. Para activar Bloq Num que está en Mod2 y al mismo tiempo desactivar Bloq Mayús, llameX11.XkbLockModifiers(display, c_uint(0x0100), c_uint(2 | 16), c_uint(16))
.Aquí hay una versión C si desea hacer un pequeño binario en lugar de invocar Python. Compilar con
gcc -O -Wall -o caps_lock_off caps_lock_off.c -lX11
, con los paquetesbuild-essentials
elibx11-dev
instalados.Posiblemente, también sea interesante una forma de ignorar temporalmente el bloqueo de mayúsculas:
Después de esto, el Bloqueo de mayúsculas estará desactivado permanentemente, hasta que lo vuelva a habilitar
xkbset nullify -lock
.fuente
xtrace
ejecutextrace python -c 'from ctypes import *; X11 = cdll.LoadLibrary("libX11.so.6"); buf = (c_char*16)(); display = X11.XOpenDisplay(None); X11.XkbLockModifiers(display, c_uint(0x0100), c_uint(2), c_uint(0)); X11.XkbGetState(display, 0x0100, buf); X11.XCloseDisplay(display)'
y publique las últimas líneas, comenzando con la que contieneQueryExtension name='XKEYBOARD'
. No pretendo entender la salida, pero lo intentaré.Las herramientas de automatización X podrían usarse para enviar los eventos clave requeridos.
Utilizando
xdotool
Instalarlo
Enviar un evento CAPS abajo / arriba
Otra herramienta es
xte
Instalarlo
Enviar un evento de bloqueo / bloqueo de mayúsculas
Referencias
man xdotool
man xte
fuente
En cuanto a la versión de Python de Gilles que no funciona en ubuntus más nuevos, parece que configurar el retorno correcto para la pantalla abierta:
(Código adaptado de https://stackoverflow.com/questions/29638210/how-can-i-use-python-xlib-to-generate-a-single-keypress )
fuente
Si no puede acceder a CAPS porque lo reasignó en .bashrc, como lo hice yo, simplemente cambiar a un terminal virtual (alt + ctl + fN) y luego volver a trabajar funcionó para mí.
fuente
Tuve este problema y pude solucionarlo usando el teclado integrado (en Ubuntu Mate, bajo Acceso universal).
Una vez activado, debería ver que la tecla Bloq Mayús está roja, o de alguna manera indica que está bloqueada. Luego puede presionar para desactivar.
fuente