GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Problème de liaison d'un raccourci à une touche de fonction/multimédia ?

Je souhaite connecter un script batch à un raccourci. Lorsque je le lie sous Paramètres système > Clavier > Raccourcis cela fonctionne avec toutes les touches, à l'exception des touches de luminosité de mon clavier externe Apple.

Les touches de luminosité sont reconnues dans showkey avec le keycode 224 et 225 .

sortie xev :

FocusOut event, serial 41, synthetic NO, window 0x4000001,
mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 41, synthetic NO, window 0x4000001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 41, synthetic NO, window 0x0,
    keys:  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0 

Des suggestions sur ce que je peux faire ?

Réponse acceptée :

Solution utilisant halevt

Selon les pages de manuel halevt est un gestionnaire générique pour les événements HAL. Il est obsolète et remplacé par udev , mais comme je n'en sais pas assez sur udev Je vais donner un halevt solution.

MODIF : après avoir bien transpiré, j'ai réussi à le faire dans udev . Voir mon autre réponse.

Je vais utiliser vim pour éditer des fichiers, mais si vous ne connaissez pas vim vous pouvez le remplacer par nano ou gedit .

Installer halevt

sudo apt-get update && sudo apt-get install halevt

Déterminer les événements que vous souhaitez lier à un script
Arrêtez le halevt démon qui est déjà en cours d'exécution :

sudo /etc/init.d/halevt stop

Maintenant, voyez si halevt peut reconnaître les événements des touches que vous souhaitez utiliser, lancez l'écouteur :

sudo -u halevt halevt -fig:plugdev

Appuyez maintenant sur la touche de fonction de votre clavier à laquelle vous souhaitez lier le script. Je sais que l'OP veut faire fonctionner ses touches de luminosité, alors allons-y. La sortie des touches de luminosité devrait ressembler à ceci :

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)

Vous pouvez voir que la brightness-down et brightness-up les événements sont transmis.

Lier l'événement à un script
Modifiez maintenant le fichier /etc/halevt/halevt.xml :

sudo vim /etc/halevt/halevt.xml

et ajoutez les lignes suivantes ( je l'ai fait en bas, juste avant </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>

où bien sûr vous devez changer la value à l'événement que vous avez reçu de l'écouteur, et exec par la commande que vous souhaitez exécuter.

Autoriser l'utilisateur halevt à exécuter la commande ou le script
Depuis le halevt le démon est exécuté en tant que halevt utilisateur, vous devez lui donner la permission de faire ce que vous avez spécifié dans exec .

Exécuter (n'oubliez pas de remplacer vim par l'éditeur de votre choix)

sudo EDITOR=vim visudo

et ajoutez les lignes suivantes en bas

halevt ALL=(root) NOPASSWD: /home/user/brightness-script.sh 

et enregistrez et quittez.

En relation :Désactiver la répétition du clavier à partir de la ligne de commande ?

Assurez-vous que votre script est exécutable

sudo chmod +x /home/user/brightness-script.sh

Redémarrer le démon halevt

sudo /etc/init.d/halevt start

Et cela devrait fonctionner !


Ubuntu
  1. Hibernation en 18.04 ?

  2. La commande pour fermer une fenêtre ?

  3. Problème Im The Key 3g "Échec de l'activation de la connexion" en 14.04 ?

  4. Comment faire apparaître la dernière fenêtre de terminal avec une touche de raccourci ?

  5. Relier Super+C Super+V pour copier et coller

Problème Bluetooth Ralink Rt 3290 sur Ubuntu 16.04 ?

Comment créer une liaison de clé qui me permet de monter Google Drive ?

La touche de raccourci pour sauter une chanson dans Rhythmbox ?

Basculer Numlock Sans La Clé - Sans Autorisations Sudo ?

Erreur fatale :appel à la fonction indéfinie curl_init()

Problème avec Mint 18 et VMware Tools