Vous n'êtes pas identifié(e).
Description: démon de clavier multimédia pour Linux
ESE Key Daemon est un démon de clavier multimédia pour Linux. Avec les
noyaux de la série 2.6, il peut aussi gérer les télécommandes si elles
apparaissent comme claviers. Aucune modification du noyau n’est
nécessaire. C’est un programme en espace utilisateur qui lit les
interfaces /dev/input/event* dans l’attente de frappes au clavier.
esekeyd permet d'associer une commande à la pression (press) ou au relâchement (release) d'une touche du clavier multimédia, les scripts ne sont pas pris en compte
installer le paquet esekeyd
pour que le deamon fonctionne il faut faire parti du group input
bien entendu remplacer stephane par votre nom d'utilisateur
deco/reco pour que soit pris en compte
créer un répertoire , puis un fichier vide de configuration
Tester les touches avant d'utiliser l'utilitaire learnkeys car on ne tombe pas toujours sur le bon /dev/input du premier coup
lister le répertoire qui va bien et lancer l'utilitaire keytest
Dans mon cas, les touches multimédia clavier sont indépendantes des autres touches (/dev/input/usb-NOVATEK_USB_Keyboard-event-kbd)
seul
me renvoi une réponse sur les touches multimédia appuyées
Une fois le test concluant on utilise l'utilitaire learnkeys pour compléter le fichier .esekeyd.conf précédemment créé
ce qui donne quelque chose du genre:
les entrées sont stockées commenté , ajouter une description de la touche du clavier pour chaque entrées
décommenté les lignes qui vous interesse et associé une commande, dans mon exemple touche pour le son (mute ,- et +)
tester le deamon esekeyd
Dernière modification par Croutons (15-04-2022 09:16:10)
-->les cahiers du debutant<-- WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde
En ligne
les scripts ne sont pas pris en compte
même si le script est exécutable et placé dans un dossier du PATH ?
Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne
Dernière modification par Croutons (13-04-2022 18:39:46)
-->les cahiers du debutant<-- WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde
En ligne
le fichier a modifier
2 valeur a renseigner si oui ou non le service démarre au boot et la localisation du fichier eseyed.conf
Normalement input_device_name est en autodetection ce qui devrait fonctionné dans la majorité des cas
mais si comme moi le clavier est séparé en 2 device et que autodetection se trompe il faudra lui spécifier le bon device
et c'est la que sa se gâte car pour l'instant seul le service en autodetection fonctionne , quand je lui spécifie le device qui a régi au keytest j'ai une erreur
les log sont ici /var/log/daemon.log a consulter en root ou en user si on fait parti du group adm
(normalement les log auraient du etre sous /var/log/esekeyd , surement une petit erreur dans le script)
En autodetection , c'est a dire avec la ligne DAEMON_OPTS=/home/stephane/.config/esekeyd/.esekeyd.conf
Dernière modification par Croutons (15-04-2022 17:12:23)
-->les cahiers du debutant<-- WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde
En ligne
(adapter le nom d'utilisateur ),
ensuite je crée une règle udev dans /etc/udev/rules.d/90-kbd_media.rules avec ce contenu (adapter le périphérique) :
J'active la règle immédiatement avec :
(possibilité de déconnexion, de toute façon, il la faut pour prendre en compte l'appartenance au groupe kbd_media)
Je me déconnecte et reconnecte si la commande si dessus ne l'a pas fait pour moi
Et lance la commande de test du "démon" :
Ça fonctionne.
J'ai testé avec un fichier de configuration ainsi généré (et modifié) :
On voit donc que les scripts sont admis (au moins en renseignant le chemin complet). Ce sont de simple scripts du genre (pour /home/tawal/bin/ese_plus) :
et ça fonctionne
Pas de service en route :
Du coup, je le désactive avec :
Et je mets la commande (à adapter) :
dans mon démarrage de session.
Et là, je reviens sur le fait que les touches "multimédias" sont vues comme un périphérique à part.
Et c'est très bien ainsi.
Car avec la méthode que je décris, seul les évènements des touches "multimédias" sont "libre d'accès" par l'utilisateur.
Donc, ça fonctionne très bien (tiens je radote )
PS : J'ai testé la déconnexion/reconnexion pour voir.
Edit:
Correction du nom de fichier de la règle udev (ajout de l'extension .rules)
Les scripts doivent être exécutables (chmod +x nom_du_script).
Impossible de démarrer le service sous cette configuration, mais bon c'est un service adapté de sysv.
On perd juste le coté multi-utilisateur, il faut configurer l'autostart pour chacun d'eux.
Dernière modification par Tawal (14-04-2022 21:27:51)
Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne
le service échouait car je n'avait pas protégé la variable par des guillemets
mais cela ne fonctionne pas
je pensais aussi a une régle udev , tu m'as sauvé pour la syntaxe mais cela ne fonctionne pas mieux
peut être du a un bug , j'ai lu ici
https://tracker.debian.org/pkg/esekeyd
j'ai lâché l'affaire parfois le keytest ne fonctionne plus je ne sais pourquoi
edit:
Dans la famille pourquoi faire simple quand on peut faire compliqué je demande croutons
suffit d'installer
il semble pas se lancer au demarrage , il faudra surement lui mettre un fichier desktop dans le dossier autostart
une fois l'icone dans la zone de notification , clique droite sur celui ci puis préférences
sous l'onglet Hotkeys on coche les 3 cases
onglet status icon choisir le thème blue bar qui offre une meilleur visibilité
Dernière modification par Croutons (15-04-2022 10:07:55)
-->les cahiers du debutant<-- WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde
En ligne
En ligne
3 fois le même "before=", ceci après activation du service avec :
Dernière modification par Tawal (15-04-2022 14:46:20)
Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne
En ligne
Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne
Au fait, il semble bien marcher en tty.
Nickel, je vais sûrement l’adopter dans ce cas!
Pas tant pour le fonctionnement en tty (dont je n’aurai probablement que rarement besoin), mais plutôt pour m’assurer que j’utilise un outil que je n’aurai pas besoin de remplacer lorsque je passerai de X à Wayland.
En ligne
Et ... ça fonctionne
Edit:
Enlèvement du "$ sudo" en trop sur le copier/coller de la commande root.
Dernière modification par Tawal (15-04-2022 18:16:48)
Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne
Il appelle un script qui vient lire un fichier de configuration (plus simple pour changer plus tard) /etc/default/esekeyd.conf (ajout de l'extension .conf).
Le script (placé dans /usr/local/bin/esekeyd_daemon et rendu exécutable) :
Et le fichier /etc/default/esekeyd.conf contient :
Voilà pour les fichiers.
Ensuite, il suffit d'activer le service et de le démarrer avec :
Le tout avec la règle udev active
Un retour d'activation, démarrage du service (la commande user ci-dessus) suivi de la commande pour stopper le service (systemctl --user stop esekeyd-media), plus quelques contrôles intercalés :
et ça fonctionne ... enfin
Edit:
On voit juste, au démarrage, une erreur de création du fichier /var/run/esekeyd.pid, rien de grave, ça fonctionne quand même.
Et puis, stopper le service tue tous les processus esekeyd, donc osef.
Par contre, il faut activer le service pour chaque utilisateur ...
Ah oui, j'ai ajouté une modif au script (un ajout au PATH au cas où).
Dernière modification par Tawal (15-04-2022 20:38:04)
Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne
La commande pour activer le service pour tous les utilisateurs :
Exemple de fichier /etc/default/esekeyd.conf (edit /etc/esekeyd/esekeyd.conf) :
Au final : (Edit2: modifié suite à l'Edit1 en dessous)
- 1 dossier et 4 fichiers à créer :
/etc/esekeyd (dossier)
/etc/systemd/user/esekeyd-media.service
/etc/esekeyd/esekeyd.conf
/etc/esekeyd/esekeyd-commands.conf
/etc/udev/rules.d/90-esekeyd.rules
- 4 (+ autant d'user sup.) commandes à lancer :
à répéter pour chaque utilisateur, puis
Edit1: J'ai un peu plus "formalisé" la chose.
J'ai créé un dossier /etc/esekeyd, dans lequel j'ai placé les fichiers esekeyd.conf et esekeyd-commands.conf contenant respectivement :
bon le dernier est personnel
Et j'ai aussi modifié la ligne du service /etc/systemd/user/esekeyd-media.service :
Edit3:
Modification du service, la ligne ExecStart=... devient :
afin de bien appréhender les noms de fichiers/dossiers avec des espaces.
Edit4:
Mis à jour du poste entier suivant les édits.
Dernière modification par Tawal (17-04-2022 09:38:39)
Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne
Dernière modification par Tawal (17-04-2022 09:32:05)
Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne