Solución usando halevt
Según las páginas del manual, se halevttrata de un controlador genérico para eventos HAL. Está obsoleto y reemplazado por udev, pero como no sé lo suficiente udev, daré una halevtsolución.
EDITAR: después de un sudor serio, logré hacer esto udev. Mira mi otra respuesta .
Lo usaré vimpara editar archivos, pero si no lo sabe vim, puede reemplazarlo por nanoo gedit.
Instalar halevt
sudo apt-get update && sudo apt-get install halevt
Determinar qué eventos desea vincular a un script
Detenga el halevtdemonio que ya se está ejecutando:
sudo /etc/init.d/halevt stop
Ahora vea si halevtpuede reconocer los eventos de las teclas que desea usar, inicie el oyente:
sudo -u halevt halevt -fig:plugdev
Ahora presione la tecla de función en su teclado al que desea vincular el script. Sé que el OP quiere que sus teclas de brillo funcionen, así que vamos con eso. La salida para las teclas de brillo debería verse así:
Condition: /org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port_logicaldev_input,ButtonPressed (brightness-down)
Condition: /org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port_logicaldev_input,ButtonPressed (brightness-up)
Puede ver que se transmiten los eventos brightness-downy brightness-up.
Enlace el evento a un script
Ahora edite el archivo /etc/halevt/halevt.xml:
sudo vim /etc/halevt/halevt.xml
y agregue las siguientes líneas (lo hice en la parte inferior, justo antes </halevt:Configuration>):
<halevt:Device match="hal.info.category = input">
<halevt:Condition name="ButtonPressed" value="brightness-up" exec="sudo /home/user/brightness-script.sh up"/>
<halevt:Condition name="ButtonPressed" value="brightness-down" exec="sudo /home/user/brightness-script.sh down"/>
</halevt:Device>
donde, por supuesto, debe cambiar valueal evento que recibió del oyente y execmediante el comando que desea ejecutar.
Otorgue al usuario de halevt permiso para ejecutar el comando o la secuencia de comandos.
Dado que el halevtdemonio se ejecuta como halevtusuario, debe otorgarle permiso para hacer lo que especificó exec.
Ejecutar (recuerde reemplazar vimpor el editor de su elección)
sudo EDITOR=vim visudo
y agregue las siguientes líneas en la parte inferior
halevt ALL=(root) NOPASSWD: /home/user/brightness-script.sh
y guardar y salir.
Asegúrese de que su script sea ejecutable
sudo chmod +x /home/user/brightness-script.sh
Inicie el demonio halevt nuevamente
sudo /etc/init.d/halevt start
¡Y debería estar funcionando!
udev. Pero siéntase libre de seguir con la otra solución, lo importante es que está funcionando;)E: Unable to locate package halevtel 14.04.Solución usando udev
Dado que HAL está en desuso y
udevahora se usa, este enfoque es preferible a mi otra respuesta (aunque creo que la solución que usa HAL es más simple).Sin embargo, para muchas teclas de función, simplemente puede usar Configuración del sistema> Teclado> Atajos para enlazar un script, ¡intente esto primero! Te ahorra muchos problemas. Por ejemplo, las teclas de brillo esto no funciona (no tengo ni idea de por qué no), así que si quieres saber cómo cambiar el comportamiento de, por ejemplo, las teclas de brillo, sigue leyendo.
NOTA : Si está ejecutando una computadora portátil Samsung, puede reparar todas las teclas de función (según el modelo) instalando el
samsung-toolspaquete desde http://www.voria.org/forum/Este tutorial asume que usted sabe cómo usar una terminal y usa el
vimeditor. Si no sabevim, reemplácelo en los comandos por cualquierageditonano.Determinando tu teclado
debería imprimir los teclados que están conectados a la computadora, en mi caso
Ahora hay dos opciones:
Teclados USB :
si desea reasignar su teclado USB, inspecciónelos ejecutando
donde debe reemplazar el 9 en la declaración awk por el número correcto. La salida debe ser similar a
que indica correctamente que mi teclado se maneja a través de mi receptor USB Logitech (entrada / evento7 resultó ser mi mouse Logitech G9 que tiene algunos botones programables).
Teclado de la computadora portátil :
si desea reasignar el teclado de su computadora portátil, debe recordar el número para el
AT keyboardque es 4 en mi caso. También obtenga la información de dmi para su computadora portátil:que es en mi caso
y
que es en mi caso
Determine su asignación actual de sus teclas de función
Ahora podemos determinar nuestro mapeo de teclas actual escuchando el teclado (inserte el número correcto)
puede salir de este comando usando Escel teclado o Ctrl+ cen otro teclado.
Si su pantalla comienza a desplazarse hacia abajo con mucha fuerza, presione Escy Ctrl+ cvarias veces e intente nuevamente con
o, si aún tiene el problema de desplazamiento
En el último caso, todavía tendrá el desplazamiento, pero si presiona las teclas de funciones, deben ir a
~/keymap.logdonde pueda leerlas más tarde.Ahora podemos verificar la asignación actual de sus teclas de función presionándolas, lo que debería darle una lista como (este es mi Fn+ a F1través de Fn+ F12):
Ahora escriba los códigos de escaneo para los que desea que cambie el comportamiento.
Cambiar los códigos clave para los códigos de escaneo
Si ve que el código de la llave claramente no cubre lo que espera que haga la llave, puede mirar
/usr/include/linux/input.hdebajo de Teclas y botones para ver si hay un código de llave que coincida mejor con lo que realmente quiere que suceda. Los códigos clave están en el formatoKEY_KEYCODEy debe escribir la parte posteriorKEY_en minúsculas. A veces, cambiar esto es suficiente para resolver el problema.Sin embargo, las teclas de brillo a menudo tienen el código clave correcto asociado con ellas, y esto es lo que no les permite reasignarlas. Por lo tanto, debemos cambiarlos a otros códigos clave. Vamos a utilizar
prog1yprog2para este ejemplo porque estos no están en uso en mi equipo, sin embargo también se puede utilizarf13a travésf24of20por mediof24si tiene un teclado Apple que tiene F1a través de F19las teclas.Cree un mapa de teclas personalizado : cree
un archivo de mapa de teclas en el directorio
/lib/udev/keymapscon un nombre adecuado, eche un vistazo a la salida dels /lib/udev/keymapspara ver los nombres adecuados. Voy concustom-brightnessel propósito de esta pregunta.e ingrese los códigos de escaneo de las teclas que desea cambiar, seguidos de los códigos de escaneo que desea que tengan. Mi
custom-brightnessaspecto es este:Cree un archivo de liberación de clave personalizado. Solo si está cambiando el teclado de su computadora portátil : a
veces, el evento de liberación de la tecla no se envía correctamente, lo que hace que la computadora se bloquee. Para evitar esto, también escribiremos un archivo de liberación de clave personalizado
este archivo debe contener los mismos códigos de escaneo, el mío parece
Asegúrese de que las nuevas asignaciones estén cargadas en los archivos de reglas.
Ahora debemos asegurarnos de que sus asignaciones estén cargadas. Podemos hacer esto editando
/lib/udev/rules.d/95-keymap.rules, por lo que es inteligente hacer una copia de seguridadNuevamente tenemos dos opciones:
Teclados USB :
dado que tiene un teclado USB, debe agregar su entrada
LABEL="keyboard_usbcheck"y debe estar más allá de las otras entradas del fabricante de su teclado. Esto es porque mi teclado conya coincide con una de las reglas y, de lo contrario, se sobrescribe.
Agregue la siguiente regla, donde debe cambiar el
ID_VENDOR_IDyID_MODEL_IDy el nombre de su mapa de teclas adecuadamenteTeclado de la computadora portátil :
si se
/lib/udev/findkeyboardsinforma que el teclado de su computadora portátilAT keyboarddebe ser su reglaLABEL="keyboard_vendorcheck", de lo contrario, colóquelo debajoLABEL="keyboard_modulecheck". Nuevamente colóquelo debajo de las otras entradas para el fabricante de su computadora portátil. Agregue la siguiente regla (SAMSUNG ELECTRONICS CO., LTD.es un poco larga, así que usé un comodín ')Ahora también agregue una regla
/lib/udev/rules.d/95-keyboard-force-release.rulesdespués de hacer una copia de seguridadDe nuevo, bajo las otras entradas de su fabricante, agregue
Asegúrese de que udev cargue las nuevas reglas
Para cargar las nuevas reglas ejecute
NOTA:
udevadm control --reload-rules(aún en las instrucciones de muchos sitios web) no funciona.Ahora verifique si las reglas fueron aplicadas con éxito por
que ahora debería informar sobre las teclas de brillo
Reasigne las claves en la Configuración del sistema
Si el último paso informó los códigos de clave correctos, las teclas comienzan a funcionar automáticamente (en caso de que primero tuvieran los códigos de clave incorrectos).
Para el brillo, todavía tiene que vincular las teclas a un script que ahora es posible usando Configuración del sistema> Teclado> Accesos directos .
Disfrutar
Notas :
Si sus claves tenían un código de clave incorrecto y fueron arregladas por este enfoque, siga las instrucciones en
/usr/share/doc/udev/README.keymap.txt.gz(puede abrir esto sin extraer el usozless) y envíe sus resultados a las direcciones de correo electrónico mencionadas allí, luego los cambios se pueden incluir en la próxima versión. ¡Muchos usuarios se beneficiarán!Muchas gracias a esta útil publicación de Vaidas Jablonskis.
fuente
$ /lib/udev/findkeyboards bash: /lib/udev/findkeyboards: No such file or directorytambién$ /lib/udev/findkeyboards bash: /lib/udev/findkeyboards: No such file or directory