Exécution d'un script sur appui touche sans serveur X

Le système préconisé par la Fondation Raspberry Pi

Modérateurs : Francois, maxty01

maxty01
Modérateur
Messages : 790
Enregistré le : dim. 16 nov. 2014 20:53
Localisation : Charleroi - Belgique

Re: Exécution d'un script sur appui touche sans serveur X

Message par maxty01 » lun. 27 avr. 2015 00:24

Bonsoir,

Dans ce cas, il est possible de changer le CTRL-ALT-DEL pour que celui-ci lance un script de démarrage de Kodi et stop deluged sous le terminal
et lance un autre script qui fait l'inverse lors de l’exécution sous serverX.

Sous bash, pas de soucis, il faut modifier le fichier /etc/inittab.
Sous serverX, ... bonne question!

Bonne soirée,
Il n'y a pas de question stupide, il n'y a que des imbéciles qui ne posent pas de question !
RaspBerry Pi : 1 x B+ Raspbian 1 x RPI2 MiniBian
Mieux me connaître ? Regarder mon LinkedIn

betasub
Messages : 45
Enregistré le : sam. 25 avr. 2015 16:22

Re: Exécution d'un script sur appui touche sans serveur X

Message par betasub » lun. 27 avr. 2015 00:39

Première remarque, il me semble que Kodi ne fait pas appel au serveur X non?

J'ai repéré les lignes à modifier dans inittab sans faire la modif encore.
Il me suffit donc de le rediriger vers un script ;

si kodi tourne, alors
on éteint kodi et on démarre deluge.
Sinon, l'inverse.

ça devrait être parfait me semble t'il!

On pourrait aussi imaginer modifier le menu Shutdown de Kodi qui doit être en xml non? donc pas bien compliqué et accessible même du téléphone.
J'ai aussi pensé à un bouton sur les GPIO.

Merci pour ton aide!

maxty01
Modérateur
Messages : 790
Enregistré le : dim. 16 nov. 2014 20:53
Localisation : Charleroi - Belgique

Re: Exécution d'un script sur appui touche sans serveur X

Message par maxty01 » lun. 27 avr. 2015 09:28

Bonjour,
betasub a écrit :Première remarque, il me semble que Kodi ne fait pas appel au serveur X non?
J'ai bien peur que oui, car qui dis graphique, dis server X, même s'il n'y a pas de Desktop Manager tel que gnome, kde, ou autres en fonction.
betasub a écrit :J'ai repéré les lignes à modifier dans inittab sans faire la modif encore.
Il me suffit donc de le rediriger vers un script ;

si kodi tourne, alors
on éteint kodi et on démarre deluge.
Sinon, l'inverse.

ça devrait être parfait me semble t'il!
Oui effectivement, ça serai parfait, mais à condition que le server X ne prenne pas la main sur les combinaisons de touches,
et si, je ne dis pas de bêtises, Kodi possèdent une section "shorcut" qui catch toutes les combinaisons de touches,
ce qui veux dire que Kodi pourrait interpréter différemment la combinaison de touches tel que CTRL-ALT-DEL.
betasub a écrit :On pourrait aussi imaginer modifier le menu Shutdown de Kodi qui doit être en xml non? donc pas bien compliqué et accessible même du téléphone.
C'est une solution, mais comme pour le fichier inittab, ce serai une solution à sens unique, mais complémentaire de la solution précédente.
Mais, ne connaissant pas Kodi, je ne peux confirmer cette solution, à creuser donc.
betasub a écrit :J'ai aussi pensé à un bouton sur les GPIO.
J'avoue, j'ai honte, j'ai oublié cette possibilité là ...
Cela serai, selon moi, la meilleure possibilité, car à l'instar des solutions précédentes, celle-ci fonctionnera dans toutes les conditions.
Elle fonctionnera peut importe si tu te trouve en commande ou en server X, et continuera à fonctionner même si le fichier inittab disparait.
Elle permet de centraliser la solution à un seul endroit.
La seule difficulté de cette solution, c'est de connaître les différents langage de programmation pour gérer en même temps les GPIO, les différents scripts, les différentes possibilités, les threads, et d'autres détails techniques.
betasub a écrit :Merci pour ton aide!
Y a pas de quoi, c'est fait pour ça, une communauté !

Bonne journée,
Il n'y a pas de question stupide, il n'y a que des imbéciles qui ne posent pas de question !
RaspBerry Pi : 1 x B+ Raspbian 1 x RPI2 MiniBian
Mieux me connaître ? Regarder mon LinkedIn

Korhm
Raspinaute
Messages : 232
Enregistré le : ven. 19 sept. 2014 08:13
Localisation : Toulouse

Re: Exécution d'un script sur appui touche sans serveur X

Message par Korhm » mar. 5 mai 2015 16:28

Bonjour,

j'ai peut-être une piste qui peut aider par rapport à ce que j'ai.
Pour faire rapide, j'ai un Calvier logitech k400 qui allume kodi + ma télé quand j’appuie sur la touche "multimédia".

Je vais essayer de vous expliquer mon ce que j'ai fait et les problèmes que j'ai rencontrés.

1. Je ne voulais pas de session X ouverte en permanance. J'avais donc trouvé comment intercepter une touche du clavier directement depuis le terminal grâce à parti à ce sujet d'un forum : http://stackoverflow.com/questions/4200 ... -a-command
=> Mon problème, la touche multimédia que mon clavier n'était pas reconnu de cette manière, et les touches de fonction nécessitent d'appuyer sur la touche Fn, je ne voulais pas devoir utiliser deux touches pour ça.
Mais que être qu'avec ton clavier cela fonctionnera

2. J'ai donc cherché une autre solution, et n'ai trouvé que la suivante
- Création d'un user spécifique ("tv") qui ouvre un session automatiquement au démarrage.
- Lancement du server X automatiquement: Edition de ~/.bash_profile qui contient

Code : Tout sélectionner

startx
- Edition de ~/.xinitrc pour ouvrir un xterm qui lui exécute un soft appelé "hotkey" qui permet d'intercepter n'importe quel touche du clavier

Code : Tout sélectionner

# Open xterm well positionned on TV
exec xterm -bw 0 -bd red -fs 18 -bg black -fg white -geometry 128x36+52+32 -hold -e "hotkeys --type=k400 --osd=off --cdrom-dev=none −−no−splash−screen; bash"
Je reste assez vague dans la solution n°2 car si tu veux éviter d'avoir à lancer X, la première solution est idéale, si la touche que tu veux utiliser est reconnue...
Mais si tu a besoins de détails, je ferrais de mon mieux :)



Sinon, pour quitter/Lancer Kodi (enfin je suis avec une vieille version d'xbmc), j'ai tout intégré à mon serveur maison de domotique, mais en gros, je fait de la manière suivante :
Exemple :

Code : Tout sélectionner

# Démarrage: cette manière permet de lancer XBMC sur le server X actif depuis un daemon qui tourne en tâche de fond pour intercepter les commandes clavier / télécommande bluetooth / interface web / interface vocale .....
sudo env DISPLAY=:1 XAUTHORITY=/home/tv/.Xauthority /usr/bin/xbmc >/dev/null&

# Stop
curl -s -H "Content-Type: application/json" -d '{"jsonrpc": "2.0", "method": "application.quit", "id": 1}' "http://<ip>:<port>/jsonrpc"

Répondre

Retourner vers « Raspbian »