Crochet de gestion de l'alimentation pour exécuter les scripts * X11 * sur le sillage

Plus tôt, j'ai posé une question similaire , mais celle-ci consistait à exécuter des scripts au niveau du système.

J'ai un script qui exécute une série de commands xinput afin d'activer le défilement à deux doigts sur mon touchpad. Il doit être réexécuté à chaque fois que l'ordinateur dort et se réveille à nouveau, et il doit être exécuté à partir de la session X11. Comment triggersr un script à exécuter sur mon bureau X11 lorsque l'ordinateur se réveille?

PS Je soupçonne qu'il existe un moyen de faire cela avec DBUS, mais je suis floue sur les détails. Peut-être que quelqu'un avec un DBUS-fu plus fort pourrait me diriger dans la bonne direction.

Si vous avez installé gnome-control-center , exécutez gnome-mouse-properties et accédez à l'onglet Touchpad et click Défilement à deux doigts :

entrer la description de l'image ici

Cela fonctionne très bien, et à travers les réveils aussi. Donc, sauf si vous utilisez vos scripts pour autre chose, jetez-les 🙂

Essayez d'exporter la variable DISPLAY pour les sessions X existantes.

En supposant que c'est :0 , ajoutez ce qui suit au début de votre script (enfin, au less avant d'exécuter des commands liées à X).

 export DISPLAY=":0" 

Je pense que vous devrez peut-être également accorder une autorisation à l'hôte local en exécutant ce qui suit dans l'un de vos terminaux X existants. (Je suppose que c'est vous et seulement vous sur ce système, sinon, cela donnera aux autres users locaux l'access à votre écran X)

 xhost +localhost 

Ça fait longtime que je n'ai pas vraiment joué avec X, alors j'espère que quelqu'un pourra venir me corriger.

EDIT: Il semble que ma compréhension de la lecture est altérée, je ne pense pas que cela aidera à l'aspect X11, désolé.

Si votre système utilise le packageage pm-utils pour sleep / wake, vous pouvez mettre un script dans
/etc/pm/sleep.d/

Voici un script que j'utilise pour attacher ma souris série après l'hibernation:

 #!/bin/sh # Action script to ensure that serial mouse works # after a hibernate/suspend # # Copyright: Copyright (c) 2009 Michael Vogt # License: GPL-2 # PATH=/sbin:/usr/sbin:/bin:/usr/bin SELF=attach-serial-mouse COMMAND= IFPLUGD_IFACE= # pm-action(8) - <action> <suspend method> # case "${1}" in hibernate) # nothing ;; resume|thaw) inputattach --daemon -ms3 /dev/ttyS0 ;; esac 

J'ai enregistré ceci comme 00_attach_serial_mouse.