Dans Ubuntu 12.04 LTS, je souhaite exécuter des scripts après avoir repris de la suspension et après avoir déverrouillé mon bureau. Ceux-ci doivent être exécutés en tant que mon utilisateur et avoir accès à mon $DISPLAY
.
En particulier, je voudrais
- redémarrer
nm-applet
pour contourner le bogue 985028 - afficher une notification personnalisée à l'aide de
notify-send
- peut-être d'autres choses quand je les ferai fonctionner
Quand je reprends, les scripts dans /etc/pm/sleep.d/
sont exécutés, mais ils s'exécutent en tant que root, sans connaître mon écran et mon nom d'utilisateur. Cela pourrait fonctionner si je code en dur mon nom d'utilisateur et export
le DISPLAY :0
par défaut dans ces scripts, mais cela ressemble à un piratage très laid.
Scripts dans ~/.config/autostart/xyz.desktop
s'exécutent après la connexion, mais ils ne s'exécutent pas après avoir simplement déverrouillé l'écran après la reprise.
Existe-t-il un moyen d'exécuter des scripts après avoir déverrouillé l'écran après une reprise ?
Meilleure réponse
Il semble que vous deviez de toute façon coder en dur le nom d'utilisateur dans la réponse précédente, alors voici un script simple pour /etc/pm/sleep.d si quelqu'un cherche une solution rapide :
#!/bin/bash
case "$1" in
hibernate|suspend)
sudo -u USERNAME env DISPLAY=:0 zenity --info --text "do stuff on suspend"
;;
thaw|resume)
sudo -u USERNAME env DISPLAY=:0 zenity --info --text "do stuff on resume"
;;
esac