Apakah ada cara agar pesan dinding ditampilkan kepada pengguna desktop?

9

Katakanlah saya jauh dari rumah, ssh-ing di komputer rumah saya. Untuk alasan apa pun, saya perlu mem-boot ulang.

# shutdown -r +10

Ini mengirimkan pesan peringatan setiap menit melalui wall, yang sama sekali tidak terlihat untuk penggunaan desktop normal oleh, katakanlah, orang tua saya.

Apakah ada cara wallpesan dapat mencapai desktop melalui, katakanlah, pemberitahuan.

badp
sumber
1
Berkat informasi dalam jawaban untuk posting ini, saya dapat meretas bersama program Python yang melakukan apa yang saya butuhkan. Tergantung libnotify-binpaketnya.
badp

Jawaban:

8

Bagian dalam walldan begitu diblokir dan kuno sehingga benar-benar tidak ada cara untuk menarik pesan dari itu begitu ada di sana.

Satu-satunya ide nyata yang diajukan untuk ini ( masalah telah dibahas sebelumnya , berkali-kali) adalah untuk mengubah shutdowndan rebootskrip sehingga mereka membuat sesuatu tersedia melalui dbus atau (karena kita hanya berurusan dengan satu komputer dan satu perbaikan) Anda bisa cukup kirimkan pesan pemberitahuan-kirim.

Mereka yang hanya skrip sehingga Anda bisa hack ke mereka. Tapi saya pikir ini mungkin suatu alasan yang layak untuk didorong. Kirim bug terhadap Ubuntu dan tambahkan tambalan Anda (pastikan tambalan itu dapat bekerja tanpa perlu mengirim pemberitahuan jika tidak ada lingkungan X). Kegunaan seperti inilah yang kita butuhkan.

Saya belum pernah mendengar gxmessagesebelumnya, tetapi saya akan menggunakannya notify-send.

Sebuah solusi lengkap perlu memenuhi kemungkinan beberapa tampilan (misalnya multi-head, pengguna jarak jauh, dll) tetapi untungnya saya menulis beberapa kode untuk bit kemarin:

for display in `ps aux | grep -oE "/usr/bin/X\s[^ ]+" | cut -d " " -f 2`; do
    DISPLAY=$display notify-send -u critical 'Shutdown notice' 'Save all your work. THE SYSTEM IS GOING DOWN!!' -i /usr/share/pixmaps/gnome-computer.png
done

(Saya menggunakan ekspor alih-alih -displayatau --displaybendera karena saya tidak tahu itu notify-sendmembutuhkan salah satu)

Oli
sumber
gxmessage adalah aplikasi kuno. kalau dipikir-pikir itu dbus dan memberitahukan-kirim adalah pilihan yang jauh lebih baik. Mungkin saya bisa mengerjakan sesuatu dengan tenang.
tinhed
Ya saya tidak yakin yang terbaik. zenityperingatan bisa menjengkelkan jika Anda berusaha keras untuk menyelamatkan barang-barang sebelum Anda keluar ... Tetapi notify-sendpemberitahuan mungkin saja diabaikan.
Oli
1
Memang benar bahwa pemberitahuan-kirim pemberitahuan dapat diabaikan tetapi jika ditampilkan beberapa kali saja (misalnya 10 menit) mereka mungkin melakukan pekerjaan itu!
OpenNingia
@Oli, saya menemukan bahwa Anda juga memerlukan variabel lingkungan XAUTHORITY yang diatur dengan benar agar ini dapat berfungsi.
badp
1
DISPLAY=$display notify-send...hanya akan mengekspor nilai DISPLAY untuk perintah itu; bukan itu penting di sini, tapi ini berguna di tempat lain dan, IMHO, sedikit lebih bersih.
2

Anda dapat mengirim pesan secara manual menggunakan zenity

zenity --warning --text "badp's about to restart the computer" --display=:0

Tentu saja, Anda dapat memasukkan ini ke dalam skrip.

misterben
sumber
Saya tidak bisa membuka layar, bahkan sebagai superuser (saya harus sudo sebagai pengguna yang tepat) :(
badp
Seharusnya bisa - yakin Anda punya usus besar di sana ( =:0tidak =0)
misterben
tidak bisa, Anda juga perlu variabel lingkungan XAUTHORITY diatur dengan benar.
badp
1

Anda harus dapat menulis skrip yang membuat sebagian dan mendengarkan pesan tertulis (dari tulis atau dinding) dan kemudian meneruskannya ke keluaran GUI.

singpolyma
sumber
0

AFAIK tidak ada klien X untuk perintah dinding untuk menampilkan pesan ini dalam lingkungan grafis. Anda dapat menggunakan aplikasi gxmessage untuk menampilkan sembulan tetapi Anda harus menulis skrip sendiri.

tinhed
sumber