Ubuntu memiliki sistem notifikasi yang sangat keren. Apakah ada cara untuk membuat Ubuntu membacakan notifikasi ketika muncul?
Atau mungkinkah menautkan teks dalam notifikasi ke espeak?
Ubuntu memiliki sistem notifikasi yang sangat keren. Apakah ada cara untuk membuat Ubuntu membacakan notifikasi ketika muncul?
Atau mungkinkah menautkan teks dalam notifikasi ke espeak?
Jawaban:
Pertanyaan ini sangat menarik jadi jawabannya.
dbus-monitorketika dieksekusi menunggu sinyal dan ketika tiba itu menangkap dan memberikan informasi yang sesuai tentang itu. Demikian pula dapat dieksekusi untuk mendapatkan info tentang Pemberitahuan . Ketika dieksekusi:
dbus-monitor "interface='org.freedesktop.Notifications'" | grep --line-buffered "member=Notify\|string"
Ini akan menunggu notifikasi dan ketika notifikasi datang akan memberikan informasi notifikasi.
Misalnya ketika suara bertambah / berkurang atau trek lagu apa pun diubah atau yang lain itu memberikan pesan. Saya secara manual membuat pemberitahuan desktop menggunakan notify-send perintah pada terminal lain:
notify-send "Hello How are you?"
Kemudian terminal pertama di mana dbus-monitorperintah dieksekusi akan memberikan pesan seperti:
saurav@saurav-P4I45Gx-PE:~$ dbus-monitor "interface='org.freedesktop.Notifications'" | grep --line-buffered "member=Notify\|string"
string ":1.473"
method call sender=:1.474 -> dest=:1.475 serial=7 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify
string "notify-send"
string ""
string "Hello How Are You?"
string ""
string "urgency"
Sekarang output di atas dapat dengan mudah diteruskan espeakke membaca pesan. Sebagai contoh,
Mengganti dbus-monitorperintah di atas dengan yang berikut ini akan membaca pesan pemberitahuan:
Periksa, Bagaimana cara kerjanya:
Jalankan perintah ini di terminal dan biarkan berjalan:
dbus-monitor "interface='org.freedesktop.Notifications'" | grep --line-buffered "string" | grep --line-buffered -e method -e ":" -e '""' -e urgency -e notify -v | grep --line-buffered '.*(?=string)|(?<=string).*' -oPi | grep --line-buffered -v '^\s*$' | xargs -I '{}' espeak {}
Saya tahu ini menjadi sangat panjang, tetapi tidak ada cara lain untuk menjadikannya kecil karena pemfilteran notifikasi aktual membuatnya menjadi panjang.
Kemudian jalankan pemberitahuan desktop baik seperti yang saya jelaskan di atas menggunakan notify-sendatau hal lain. Saya menggunakan notify-send. Jadi, jalankan perintah berikut di terminal lain:
notify-send "Hello! I am Saurav Kumar."
Segera setelah Anda menjalankan perintah itu akan berbicara (baca) pemberitahuan.
Meskipun memakan 4-5 jam saya, tapi saya senang sekarang membuatnya bekerja.
Anda juga dapat membuat perintah sendiri sepertisaynoti dan menjalankannya setiap kali Anda ingin pemberitahuan membaca. Dengan mengikuti langkah-langkah ini Anda dapat melakukannya:
Pertama-tama simpan perintah aktual ke file bernama saynoti. Anda dapat menggunakan nama file apa pun yang akan menjadi nama perintah Anda yang sebenarnya.
Kemudian buat file tersebut dapat dieksekusi dan pindahkan atau salin ke /bin:
chmod +x saynoti
sudo cp saynoti /bin
Sekarang Anda cukup menjalankan perintah baru Anda untuk memulai Notifikasi Berbicara :
saynoti
Untuk mematikan proses yang sedang berjalan, Anda dapat menjalankan perintah ini:
pkill dbus-monitor
atau cukup tekan Ctrl+ Cpada terminal tempat saynotiberjalan.
Anda juga dapat menjalankan saynotisetiap kali sistem Anda mulai dengan menjadikannya aplikasi start-up .
Saya ingin mengucapkan terima kasih atas pertanyaan ini. Karena pertanyaan ini, saya belajar banyak hal. :)
Balas jika Anda mendapatkan masalah atau perlu perubahan / modifikasi lebih lanjut. Saya yakin Anda akan senang mendapatkan versi kerja terakhir.
dbus-monitor, saya ingin mulai belajar
Saya mengalami masalah dengan tambahan "di alamat email saya maka saya telah menambahkan ini ke baris kode di atas karena espeak tidak perlu" sama sekali untuk membacanya;)
| sed 's / \ "// g' |
=>
| grep --line-buffered -v '^ \ s * $' | sed 's / \ "// g' | xargs -I '{}' espeak {}
KEREN bekerja. Lebih baik daripada mengubah notifikasi-kirim lib sendiri 4 "Halo! Saya Saurav Kumar."
pembaruan: tidak berfungsi dengan stabil. Saya akan menggunakan | tee -a $ file |