Di Ubuntu 12.04 LTS, saya ingin menjalankan skrip setelah melanjutkan dari penangguhan, dan setelah membuka kunci desktop saya. Ini perlu dijalankan sebagai pengguna saya, dan dengan akses ke $DISPLAY
saya .
Secara khusus, saya ingin
- mulai ulang
nm-applet
untuk mengatasi bug 985028 - tampilkan notifikasi khusus menggunakan
notify-send
- mungkin hal-hal lain ketika saya membuatnya bekerja
Ketika saya melanjutkan, skrip di /etc/pm/sleep.d/
dijalankan, tetapi dijalankan sebagai root, tanpa sepengetahuan layar dan nama pengguna saya. Ini mungkin berhasil jika saya membuat hard-code nama pengguna saya dan export
default DISPLAY :0
dalam skrip ini, tetapi itu terasa seperti peretasan yang sangat buruk.
Skrip di ~/.config/autostart/xyz.desktop
dijalankan setelah login, tetapi tidak berjalan setelah hanya membuka kunci layar setelah melanjutkan.
Apakah ada cara untuk menjalankan skrip setelah membuka kunci layar setelah resume?
Jawaban Terbaik
Sepertinya Anda harus membuat kode keras nama pengguna di jawaban sebelumnya, jadi inilah skrip sederhana untuk di /etc/pm/sleep.d jika ada yang mencari perbaikan cepat:
#!/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