Bagaimana saya bisa mendapatkan notifikasi di layar menggunakan notify-osd ketika saya mencolokkan / mencabut pengisi daya?
battery
notification
notify-osd
kernel_panic
sumber
sumber
Jawaban:
Beralih antara daya AC dan daya baterai harus menghasilkan suatu peristiwa pada bus sistem D-Bus . Jalankan
dbus-monitor --system
dan saksikan kejadian apa yang dihasilkan di sistem Anda.Jika Anda memiliki upower berjalan, Anda mendapatkan lebih banyak khusus pemberitahuan dari
upower -m
.Anda juga dapat memperoleh acara dari
acpi_listen
.Jalankan skrip ini ketika Anda ingin mulai melihat notifikasi, atau menambahkannya ke startup sesi Anda.
sumber
dbus
Beberapa orang melaporkan solusi udev saya yang sebelumnya mengirim pemberitahuan terlalu sering ketika kabel power dicolokkan. Saya tidak dapat mereproduksi itu tetapi saya menulis skrip python ini untuk menggunakan dbus, bukan udev. Simpan sebagai
.py
file di suatu tempat di hard drive Anda. Tandai file yang dapat dieksekusi dengan menjalankan:dan menambahkannya ke aplikasi startup Anda seperti yang dijelaskan di sini . Skrip ini mengharuskan paket
acpi
diinstal.udev
Dengan sedikit eksperimen (dan sedikit bantuan) saya dapat memanfaatkan aturan udev untuk mencapai ini. Beberapa orang telah melaporkan bahwa kadang-kadang mengirimkan pemberitahuan lebih dari sekali tetapi saya tidak punya masalah. YMMV.
Buat skrip dengan konten berikut:
mengganti
some_user
dengan nama pengguna Anda. Tandai file yang dapat dieksekusi dengan menjalankan:mengganti
/path/to/script.sh
dengan jalur ke tempat Anda menyimpan skrip.Selanjutnya buat file dengan
/etc/udev/rules.d
nama10-power.rules
dengan konten:kembali
/path/to/script.sh
dengan path ke skrip yang Anda buat sebelumnya.Sekarang muat ulang aturan udev dengan menjalankan:
Lepaskan kabel daya. Anda harus mendapat notifikasi.
sumber
XAUTHORITY
dengan beberapa manajer tampilan seperti gdm.dbus-monitor
. Lihat jawaban saya.Sumber Skrip
Dapatkan skripnya
Script juga ditambahkan ke github saya ; versi itu akan diperbarui dan dikembangkan sedikit lebih banyak.
Anda bisa mendapatkannya dengan melakukan hal berikut:
sugo apt-get install git
cd /opt
git clone https://github.com/SergKolo/sergrep.git
Script akan berada di
/opt/sergrep
direktori, bernamanotify_ac_change.sh
Desain konsep
Pertanyaan kuncinya adalah "Bagaimana kita memeriksa keberadaan adaptor AC?" dan "Bagaimana kita mendeteksi perubahan?"
Nah, masalah ini sudah lama dipecahkan oleh pengembang lain. Ubuntu secara default dilengkapi dengan skrip bernama on_ac_power , yang disimpan di
/usr/bin/on_ac_power
. Adaptor daya dapat disebutkan di bawah berbagai subsistem di kernel (ACPI atau APM), tetapi skrip ini membuat pekerjaan kita lebih sederhana - penulis telah membahas banyak variasi yang mungkin. Ini hanya mengembalikan status keluar sehingga sesuai untuk digunakan dalamif
pernyataan.Mengapa itu
on_ac_power
pilihan yang baik? Karena itu bergantung pada pengecekan beberapa subsistem. Ini juga menyediakan perintah yang cukup sederhana untuk dikerjakan - hasilnya benar atau salah.Jadi kita memiliki alat pendeteksi keberadaan, tetapi bagaimana dengan logika? Kita perlu menyurvei keberadaan dan mendeteksi perubahan di negara bagian. Apa yang bisa kita lakukan adalah menyimpan status keluar
on_ac_power
dan terus membandingkan keadaan saat ini dengan apa yang telah kita simpan, setelah itu berubah - kirim pemberitahuan, simpan status lagi, dan terus membandingkan lagi, berulang-ulang. Ide dasarnya adalah penggunaan bendera.Singkatnya, kami menginisialisasi snapshot dari negara, dan kemudian terus menerus polling untuk perubahan dari snapshot; setelah perubahan terjadi - beri tahu dan setel ulang foto.
sumber