Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/05/2015, à 15: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, à 03: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, à 03: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

#3 Le 18/05/2015, à 13:17

Curarum

Re : Exécuter une commande après branchement d'un second écran

Merci, c'est exactement ce que je cherchais ! smile

Je ne connaissait pas, mais j'ai trouvé quelques liens intéressants (lien1 et lien2). Je teste tout ça et je vous tiens au courant.

Hors ligne

#4 Le 19/05/2015, à 08:39

Curarum

Re : Exécuter une commande après branchement d'un second écran

Bon, ça avance smile

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, à 08: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, à 09:40

Curarum

Re : Exécuter une commande après branchement d'un second écran

Voici, en images, ce qu'il se passe lors du branchement:

- avant
mini_444049Screenshotfrom20150519102918.png

- après
mini_607292Screenshotfrom20150519102932.png

Donc la fenêtre conky (information sur le système) se place mal, malgré l'option bottom_left et gap-y: 1. Par contre, redémarrer conky résoud le problème.

Hors ligne

#7 Le 19/05/2015, à 10: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, à 10:18)


Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne

#8 Le 19/05/2015, à 10: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, à 10: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 sad

Hors ligne

#10 Le 19/05/2015, à 10: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, à 11: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, à 11: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, à 11: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, à 11: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, à 11: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, à 11: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