Estoy tratando de reutilizar la tecla de bloqueo de mayúsculas inútil para algo útil en 16.04 MATE. He encontrado
setxkbmap -option ctrl:nocaps
para deshabilitarlo, pero ¿podría reasignarse para reproducir / pausar VLC, por ejemplo? ¡Gracias por tus respuestas!
vlc --key-play-pause <key-string>
, pero no he encontrado una cadena que VLC acepte como mayúsculas ...dconf-editor
probé un par de cosas, instaléxdotool
intenté un par de cosas y finalmentexbindkeys
e intenté un par de cosas. Al final de este ejercicio infructuoso, mi botón de pausa / reproducción del teclado estaba roto Y mi propio botón de reproducción / pausa de pantalla estaba atenuado y la música no se reproducía. Hice esto en 16.04, así que reinicié en 18.04 para confirmar que todo sigue funcionando y fueron los piratas informáticos los que lo hicieron. La única gracia salvadora es que solo reproduzco música a través del teléfono Android y no de la PC. Solo un aviso para que otros tengan cuidado y documenten lo que haces en tu máquina mejor que yo.Respuestas:
evtest y dbus
Aquí hay una versión que involucra un pequeño script que se ejecuta en segundo plano. Se deben seguir algunos pasos sencillos:
Instalar el evtest programa:
sudo apt install evtest
. Este programa puede decodificar e imprimir eventos sin procesar desde la/dev/input/
jerarquía de dispositivos.Agregue su cuenta de usuario al grupo
input
. Cerrar sesión e iniciar sesión nuevamente. (Esto es necesario porque vamos a leer desde algún dispositivo debajo/dev/input/
, lo que normalmente solo puede hacer la raíz o los usuarios en grupoinput
. Podríamos ejecutar el script como root, pero luego tendríamos que encontrar una manera de decirle qué usuario instancia de dbus con la que necesita hablar).Deshabilite la tecla de bloqueo de mayúsculas como lo hizo o use la preferencia de Mate correspondiente. También funcionaría si asigna la tecla de bloqueo de mayúsculas a Ctrl, como hacen muchas personas.
Almacene el siguiente script en algún lugar, por ejemplo,
$HOME/bin/capshack
y hágalo ejecutable:El script anterior escuchará los eventos del teclado y ejecutará un comando cuando se presione la tecla de mayúsculas. El comando que se ejecuta utiliza dbus para enviar un evento de reproducción / pausa a una instancia de VLC en ejecución. Puede que tenga que ajustar la
KEYBOARD
variable para que apunte a su teclado real, pero es probable que el valor anterior funcione.Si prefiere que se llame a la función toggleVLC () cuando suelta la tecla de bloqueo de mayúsculas, puede cambiar la
EVENT
variable en el script de modo que termine envalue 0
lugar devalue 1
.Además, es posible que para usted el código clave de la tecla de mayúsculas sea diferente de 58. Puede verificar esto al ejecutar
evtest
, mirar la salida cuando presiona mayúsculas y ajustar la variable EVENT en consecuencia. Ni siquiera tiene que hacer coincidir el código clave y establecer EVENT simplemente en(KEY_CAPSLOCK), value 1
.En lugar de usar evtest y el script anterior, podría usar thd desde el paquete triggerhappy (algo así
thd --dump /dev/input/*
daría una salida similar), pero encontré que es un poco menos educativo.Ahora creamos una unidad systemd de usuario para iniciar el script automáticamente en segundo plano:
Cree la jerarquía systemd de usuario:
mkdir -p $HOME/.config/systemd/user
Agregue el siguiente texto al archivo
$HOME/.config/systemd/user/capshack.service
Habilite la unidad de servicio que acaba de hacer:
systemctl --user enable capshack
Comience el servicio:
systemctl --user start capshack
A partir de ahora, debería poder alternar reproducción / pausa en VLC con la tecla de bloqueo de mayúsculas. El script de fondo debe iniciarse automáticamente cuando inicie sesión.
gatillo fácil
Como ya se mencionó, también puede usar el paquete triggerhappy para hacer esto. Este es el método preferido para las personas que quieren jugar menos con el sistema y prefieren una solución más sólida.
Agregar usuario al
input
grupo como arribaInstala el paquete:
sudo apt install triggerhappy
Agregue una configuración para triggerhappy para
~/.config/thd/capslock.conf
:Ejecute thd así:
thd --triggers ~/.config/thd/capslock.conf /dev/input/event*
Haga que thd se ejecute para su usuario de una manera similar a la descrita para capshack.
Asegúrese de tener solo uno de los métodos mencionados (capshack o thd) en ejecución, para no alternar dos veces cada pulsación de tecla.
Probé todo esto en 18.04 bajo la sesión estándar y 16.04 compañero. Pero, en teoría, también debería funcionar en wayland o con otros entornos de escritorio.
fuente
[[ test ]] && \
y la segunda línea con sangría en cuatro espacios<command>
para ejecutar una prueba positiva. Estoy totalmente de acuerdo con la legibilidad porque mi recomendación es ajena a la mayoría de los lenguajes de programación.triggerhappy
ser el camino a seguir, yaevtest
que en realidad es un programa de depuración :)m
, por lo que el script no funciona. Recomiendo verificarxmodmap -pke | grep Caps_Lock
antes de usar este script para asegurarse de que el código clave sea correcto.En Ubuntu 16.04 después de pasar horas buscando en Google y jugando
dconf-editor
yxbindkeys
encontré una solución extremadamente fácil:Si necesita el
XF86AudioPlay
soporte de Gnome que necesitaxdotool
(no es necesario para VLC como estipula OP):Ahora aquí está la parte difícil. Cada vez que presiona la Caps LocKtecla para alternar la música entre Reproducir y Pausa, las letras mayúsculas también se activan y desactivan.
Use este método para desactivar la alternancia de Bloq Mayús mientras mantiene la tecla activa:
Reproductores de música que se adhieren a Gnome
Luego, en Ubuntu 16.04, vaya a Configuración >> Teclado >> Accesos directos >> Accesos directos personalizados :
Audio Play
xdotool key XF86AudioPlay
Después de agregar la nueva opción, la tecla de acceso directo asignada leerá Desactivado . Haga clic en Desactivado y cuando se le solicite la tecla para asignar, presione la Caps LocKtecla.
Reproductores de música como VLC
Siga los pasos para Gnome en la sección anterior, pero para el comando use esto en su lugar:
VLC no reconocerá las teclas multimedia: ¿cómo hacer que las teclas multimedia del teclado funcionen con VLC a nivel mundial? incluso cuando está integrado en el teclado. Por lo tanto, el atajo de teclado personalizado para XF86 AudioPlay es inútil
xdotool
.Establecer atajos de teclado personalizados desde la línea de comando
Este Q&A discute cómo configurar atajos de teclado personalizados desde la línea de comando: ¿Cómo configurar atajos de teclado personalizados desde la terminal?
Desactivar el bloqueo de mayúsculas permanentemente
El siguiente paso es hacer que esto sea
setxkbmap -option caps:none
persistente en todos los reinicios. Google busca resultados en esta respuesta de Terdon: Guardar la configuración de setxkbdmap :Una manera fácil sería agregar el comando a su
$HOME/.profile
archivo (puede crearlo si no existe):Eso debería hacer que se ejecute cada vez que inicie sesión.
Tenga en cuenta que debe usar en
$HOME/.profile
lugar de$HOME/.bash_profile
,$HOME/.bashrc
o algún otro archivo similar. Esto se debe a que su administrador de inicio de sesión debe leer esta configuración.fuente
setxkbmap -option caps:none
. El programa de utilidad está instalado, sin embargo, Wayland sigue alternando entre mayúsculas y minúsculas. Podría publicar una pregunta por separado sobre cómo lograr que Wayland respetesetxkbmap
.Esta respuesta se ha probado en Ubuntu MATE 16.04.4 LTS en una máquina virtual (pero el teclado era un teclado USB en paso, por lo que eso no debería hacer la diferencia). Tampoco requiere software adicional, y se puede hacer en una instalación de vainilla sin instalar ningún paquete, y es persistente entre las botas.
Remapear Bloqueo de mayúsculas
Edite el archivo
/usr/share/X11/xkb/symbols/pc
como root. Tenga cuidado de no cometer un error aquí (como olvidar la coma) porque es posible que ya no pueda usar su teclado si lo hace. (¿Adivina lo que aprendí de la manera difícil?)Comenta la línea
colocando dos barras diagonales (
//
) al comienzo de la misma.Agregue debajo la siguiente línea:
Comenta la línea
de la misma manera que arriba.
Reiniciar.
Nota: (crédito a danzel por señalar esto) Las actualizaciones del paquete
xkb-data
pueden sobrescribir este archivo. Un método razonablemente seguro para prevenir esto es desviar el camino usandodpkg-divert
. (Digo "razonablemente seguro" porque la fuente ascendente de este archivo no se ha modificado en tres años).Método alternativo
Deshabilite manualmente la tecla Bloq Mayús en la configuración de diseño del teclado, luego use el enfoque en esta respuesta para agregar sus propias asignaciones de teclas.
¿Problemas?
Su tecla de bloqueo de mayúsculas ya no bloquea mayúsculas, y se ha reasignado a Reproducir / Pausa en este punto. Ahora debería poder reproducir y pausar música en VLC. Si funciona en este punto, puede omitir el resto de estas instrucciones.
Sin embargo, cuando lo probé, VLC no respondió a la tecla Reproducir / Pausa.
Asegúrese de que el método abreviado de teclado esté configurado correctamente
Abrir atajos de teclado (Sistema → Preferencias → Hardware → Atajos de teclado)
Asegúrese de que "Reproducir (o Reproducir / Pausa)" esté configurado en "XF86AudioPlay"
Si no es así, haga clic en la sección "Acceso directo" y presione su nueva tecla Reproducir / Pausa para configurar el acceso directo.
Si aún así no funciona, reinicie un par de veces por si acaso. (Eso es lo que realmente me arregló).
fuente
xkb
opciones, especialmentecaps:...
las. Además, podría ser sobrescrito por las actualizaciones del sistema.Instalar
xbindkeys
, xcape y playerctl . Asegúrese de quexcape
(se asignaCapsLock
a una clave de repuesto comoAlt+F12
byxcape -e 'Caps_Lock=Alt_L|F12
) yplayerctl
se inician automáticamente al iniciar sesión, y agregue al archivo~/.xbindkeysrc
las dos líneasfuente
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
xkb
configuraciónDesventajas
Prerrequisitos
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:Necesitamos el valor de la
MSC_SCAN
línea que precede a laKEY_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:... Esta es la salida
bustype
,product
,vendor
yversion
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:...dónde
evdev:...
línea no tiene espacio precedenteKEYBOARD_KEY...
linea tiene exactamente un espacio precedentePor ejemplo:
Finalmente, compile la nueva configuración en la base de datos de hardware:
Si desea aplicar los cambios de inmediato, informe a udev:
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.
fuente
Tal vez usando
xbindkeys
oXTE
podrías hacer eso. Pero primero asegúrese de cuáles son los códigos de teclas, puede ver el código de la tecla de bloqueo de mayúsculas usando el comandoxev
en el terminal y presionándolo (puede ver el código de tecla de cualquier keu o botón de mouse, incluidos los ratones de juego). Con el código clave de bloqueo de mayúsculas y botones de reproducción en la mano, puede editar el archivo confi de xbindkeys y colocar sus cambios. usetouch ~/.xbindkeysrc
para crear el archivo de configuración (si el sistema no lo crea automáticamente) ynano ~/.xbindkeysrc
para editarlo. Lo he usado el mes pasado y aquí es un ejemplo. Eche un vistazo a estos enlaces que pueden ser muy útiles para usted.https://help.ubuntu.com/community/MultimediaKeys
https://gist.github.com/jbonney/5743509
Reasignar un botón de mi mouse para juegos a una tecla del teclado
https://matmunn.me/post/binding-volume-control-mouse-buttons-ubuntu/
fuente