#1 Le 15/05/2015, à 16:41
- Curarum
Exécuter une commande après branchement d'un second écran
Bonjour !
- Le problème: Exéctuer une commande lors d'un branchement/débranchement d'un moniteur externe sur un PC portable. Je souhaite exécuter la série de commandes suivante:
sudo killall conky; sudo sh ~/.conky/conky_start.sh
dès que je décide de travailler avec un second écran (via prise micro HDMI sur le PC et un adaptateur VGA pour connecter à l'écran).
- La question: Existe-t-il un fichier qui reprend les commandes exécutées lors d'un changement d'affichage pareil ?
N'ayant pas trouvé de réponse par moi-même, je vous remercie d'avance,
Cura'
Hors ligne
#2 Le 18/05/2015, à 04:00
- Rufus T. Firefly
Re : Exécuter une commande après branchement d'un second écran
Salut,
Je ne saurais pas trop te le faire, mais je pense que c'est tout-à-fait possible en créant une règle udev pour pour ton moniteur externe. Regarde aussi par là : https://www.google.fr/search?q=r%C3%A8g … gws_rd=ssl
Tu devrais potasser ça et essayer. Tu peux t'inspirer de ce qui existe déjà pour les clefs usb et autres. Le principe est le même.
Si ça ne fonctionne pas pose plutôt la question dans une meilleure rubrique. Parce que ce n'est pas un problème d'affichage, mais de détection du branchement à chaud d'un périphérique particulier et de réaction adéquate du système.
Dernière modification par Rufus T. Firefly (Le 18/05/2015, à 04:38)
La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme
Hors ligne
#4 Le 19/05/2015, à 09:39
- Curarum
Re : Exécuter une commande après branchement d'un second écran
Bon, ça avance
1. Créer une règle udev: fichier /etc/udev/rules.d/90-local.rules qui a le contenu suivant,
SUBSYSTEM=="drm", ACTION=="change", RUN+="/usr/local/bin/conky_start"
2. Script à exéuter: il s'agit du fichier /usr/local/bin/conky_start.
#!/bin/bash
echo "Test start" >> /home/stph/test
killall conky
/usr/bin/conky
echo "Test fin" >> /home/stph/test
exit 0
-> Les commandes echo et killall sont bien exécutées (le fichier test est modifié), par contre la commande conky ne l'est pas. Serait-ce lié à un export nécessaire ? Ou une impossibilité à cause d'une carte graphique Nvidia?
Hors ligne
#5 Le 19/05/2015, à 09:55
- moko138
Re : Exécuter une commande après branchement d'un second écran
Si tu veux brancher un 2nd écran, je ne vois pas le rapport avec conky ; tu branches à la prise VGA, point. (Il m'arrive de procéder ainsi avec mon portable).
Dans quel but veux-tu arrêter conky puis le relancer ?
%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel : À la découverte de dcraw
Hors ligne
#6 Le 19/05/2015, à 10:40
Hors ligne
#7 Le 19/05/2015, à 11:14
- maxire
Re : Exécuter une commande après branchement d'un second écran
Salut,
je ne connais pas conky mais à priori:
sudo sh ~/.conky/conky_start.sh
est différent de
/usr/bin/conky
En corollaire, je ne comprends pas bien le sudo, conky devrait être un processus utilisateur et non root, je me trompe peut-être.
J'ai un trou de mémoire le ~/.conky dans le cas de sudo correspond-t-il à /home/$USER/.conky ou à /root/.conky?
Note: En fait tout dépend du paramétrage de sudo, en général, sudo utilise le répertoire HOME de l'utilisateur courant.
Dernière modification par maxire (Le 19/05/2015, à 11:18)
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#8 Le 19/05/2015, à 11:24
- moko138
Re : Exécuter une commande après branchement d'un second écran
Merci !
%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel : À la découverte de dcraw
Hors ligne
#9 Le 19/05/2015, à 11:44
- Curarum
Re : Exécuter une commande après branchement d'un second écran
Conky est bien un processus utilisateur, le problème revient à créer la règle udev suivante:
SUBSYSTEM=="drm", ACTION=="change", RUN+="/usr/bin/conky"
Mais dans ce cas-là, je pense que conky sera exécuté en tant que root. Cette dernière commande ne fonctionne pas
Hors ligne
#10 Le 19/05/2015, à 11:48
- moko138
Re : Exécuter une commande après branchement d'un second écran
HS : photo grandiose ! Prise par qui ? Où ?
%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel : À la découverte de dcraw
Hors ligne
#11 Le 19/05/2015, à 12:08
- Curarum
Re : Exécuter une commande après branchement d'un second écran
La photo provient de: wallpapers (Ryan Schroeder.jpg)
Hors ligne
#12 Le 19/05/2015, à 12:11
- maxire
Re : Exécuter une commande après branchement d'un second écran
Les règles UDEV sont appliquées en tant que root ce n'est pas le seul problème, comme pour toute application graphique utilisant X il faut préciser où afficher à conky (sans doute via une option) et cette information n'est pas disponible lors de l'application de la règle (variable d'environnement DISPLAY).
À moins d'ajouter une routine analysant les affichages actifs utilisant conky je ne vois pas comment tu peux t'en tirer simplement, je pense qu'il serait plus judicieux de relancer conky à la main.
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#13 Le 19/05/2015, à 12:27
- Rufus T. Firefly
Re : Exécuter une commande après branchement d'un second écran
J'avais vu un truc quelque part, où l'idée était de contourner un problème de cette sorte via un second script.
Donc plutôt que de lancer /usr/bin/conky directement, en root, il s'agissait de lancer un script dans lequel il y avait ce qu'il fallait...
Je ne sais plus où c'est et je n'avais fait que survoler, donc je ne me souviens plus du tout des détails.
De toutes façons, il y a forcément moyen et je pense qu'il faut peut-être (???) chercher par là : http://abs.traduc.org/abs-fr/pt05.html
Dernière modification par Rufus T. Firefly (Le 19/05/2015, à 12:43)
La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme
Hors ligne
#14 Le 19/05/2015, à 12:32
- moko138
Re : Exécuter une commande après branchement d'un second écran
Re merci !
%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel : À la découverte de dcraw
Hors ligne
#15 Le 19/05/2015, à 12:57
- maxire
Re : Exécuter une commande après branchement d'un second écran
Je viens de mettre le guide Bash dans mes raccourcis, très bien ce document.
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne