In Ubuntu 12.04 LTS möchte ich Skripte ausführen, nachdem ich den Suspend-Modus fortgesetzt und meinen Desktop entsperrt habe. Diese müssen unter meinem Benutzernamen und mit Zugriff auf mein $DISPLAY
ausgeführt werden .
Insbesondere möchte ich
- starte
nm-applet
neu um Fehler 985028 zu umgehen - zeigen Sie eine benutzerdefinierte Benachrichtigung mit
notify-send
- möglicherweise andere Dinge, wenn ich diese zum Laufen bekomme
Wenn ich fortfahre, Skripte in /etc/pm/sleep.d/
werden ausgeführt, aber sie laufen als root, ohne Kenntnis meines Bildschirms und Benutzernamens. Es könnte funktionieren, wenn ich meinen Benutzernamen fest kodiere und export
die Voreinstellung DISPLAY :0
in diesen Skripten, aber das fühlt sich wie ein sehr hässlicher Hack an.
Skripte in ~/.config/autostart/xyz.desktop
werden nach der Anmeldung ausgeführt, aber sie werden nicht ausgeführt, nachdem lediglich der Bildschirm nach dem Fortsetzen entsperrt wurde.
Gibt es eine Möglichkeit, Skripte auszuführen, nachdem der Bildschirm nach einer Fortsetzung entsperrt wurde?
Beste Antwort
Es sieht so aus, als müssten Sie den Benutzernamen in der vorherigen Antwort sowieso fest codieren, also hier ist ein einfaches Skript für in /etc/pm/sleep.d, falls jemand nach einer schnellen Lösung sucht:
#!/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