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-monitor
ketika 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-monitor
perintah 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 espeak
ke membaca pesan. Sebagai contoh,
Mengganti dbus-monitor
perintah 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-send
atau 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 saynoti
berjalan.
Anda juga dapat menjalankan saynoti
setiap 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 |