Convierta su tecla de mayúsculas en una tecla de reproducción / pausa
Esta solución reasignará el código de escaneo de su llave de mayúsculas a un código diferente en el controlador de entrada del núcleo, en este caso reproducir / pausar.
Ventajas
- No es necesario modificar los archivos del sistema existentes (solo se debe crear un archivo nuevo)
- Las aplicaciones no sabrán que en realidad es una tecla de bloqueo de mayúsculas, pero creo que se ha presionado una tecla de reproducción / pausa real
- No es necesario desactivar el bloqueo de mayúsculas, no hay posibilidad de estropear la
xkb
configuración
Desventajas
- Tiene que hacerse para cada teclado individualmente (lo que, dependiendo de la situación, también puede ser una ventaja)
Prerrequisitos
- evtest (se puede instalar a través de
sudo apt-get install evtest
)
Procedimiento
En una terminal, ejecuta sudo evtest
y selecciona tu teclado. Si no hay salida cuando presiona una tecla, presione Ctrl+ Ce intente con un dispositivo diferente. Recuerde el número de evento del dispositivo que seleccionó, lo necesitaremos después. Presione la tecla de bloqueo de mayúsculas. Aparecerán algunas líneas como las siguientes:
Event: time 1529406021.187148, -------------- SYN_REPORT ------------
Event: time 1529406021.218427, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70039
Event: time 1529406021.218427, type 1 (EV_KEY), code 58 (KEY_CAPSLOCK), value 0
Necesitamos el valor de la MSC_SCAN
línea que precede a la KEY_CAPSLOCK
línea. En el ejemplo anterior, esto sería 70039, pero el código de escaneo en su teclado es probablemente diferente.
Ahora ejecute el siguiente comando, pero reemplace la X con el número de evento del dispositivo que utilizó para el evtest
comando:
grep "" /sys/class/input/eventX/device/id/*
... Esta es la salida bustype
, product
, vendor
y version
del teclado.
Crear un archivo con el nombre 65-keyboard-custom.hwdb
de /etc/udev/hwdb.d/
(requiere permisos de root) con el siguiente contenido:
evdev:input:b[bustype]v[vendor]p[product]e[version]*
KEYBOARD_KEY_[scancode]=playpause
...dónde
- [bus], [proveedor], [producto] y [versión] tienen exactamente 4 caracteres y las letras deben estar en mayúsculas
- [scancode] tiene que estar en minúsculas
- el
evdev:...
línea no tiene espacio precedente
- la
KEYBOARD_KEY...
linea tiene exactamente un espacio precedente
Por ejemplo:
evdev:input:b0003v046DpC228e0110*
KEYBOARD_KEY_70039=playpause
Finalmente, compile la nueva configuración en la base de datos de hardware:
sudo systemd-hwdb update
Si desea aplicar los cambios de inmediato, informe a udev:
sudo udevadm trigger
Si desea revertir los cambios, simplemente elimine el archivo que creó y reinicie.
Puede encontrar información más detallada en mi respuesta original sobre este tema.
vlc --key-play-pause <key-string>
, pero no he encontrado una cadena que VLC acepte como mayúsculas ...