Anda bisa, tetapi Anda harus menggunakan libnotify yang ditambal untuk melakukannya
notify-send
tidak memiliki kemampuan untuk mengganti notifikasi yang ada sebelum habis waktu (atau menghilang). Ini adalah bug yang dikenal . Namun, komentator pada laporan kutu telah memposting tambalan untuk memperbaikinya.
Menginstal libnotify-bin yang ditambal dari PPA
Saya telah membuat versi tambalan paket libnotify-bin yang memungkinkan penggantian pada PPA saya. Saat ini hanya untuk Ubuntu 12,04, tetapi jika Anda memerlukannya untuk rilis lain yang saat ini didukung, silakan kirim komentar dan saya akan mencoba yang terbaik untuk membuatnya tersedia.
Untuk menginstal, buka terminal dan:
sudo apt-add-repositori ppa: izx / askubuntu
sudo apt-get pembaruan
sudo apt-get install libnotify-bin
Cara menggunakan kemampuan penggantian
Ditambal The notify-send
mencakup dua switch baru, -p
(atau --print-id ), dan -r
(atau --replace-id ). Yang --help
menggambarkan mereka sebagai:
-p, --print-id Cetak ID notifikasi.
-r, --replace-id = REPLACE_ID ID pemberitahuan yang akan diganti.
- Dengan
-p
, masing notify-send
- masing akan mengembalikan ID N (angka / integer).
- Menerbitkan lain
notify-send
dengan -r N
akan menggantikan pemberitahuan sebelumnya segera .
Misalnya, untuk bash, Anda dapat menyimpan ID dari notify-send -p ...
dengan:
NID=$(notify-send -p "MESSAGE-1")
lalu ganti dengan:
notify-send -r $NID "MESSAGE-2"
Anda bisa secara rekursif menggunakan -p dan -r dalam skrip, selama variabel -r diinisialisasi ke 0 di awal.
Berikut ini skrip sederhana yang menampilkan notifikasi yang dihitung dari 0 hingga 100 dalam interval setengah detik:
#! / bin / bash
NID = 0
untuk saya di {0..100..10}
melakukan
NID = $ (beri tahu-kirim -p -r $ NID $ i)
tidur 0,5
selesai
Anda dapat menggunakan petunjuk "sinkron" untuk membuat pemberitahuan "konfirmasi" yang akan menggantikan pemberitahuan konfirmasi sebelumnya. Sebagai contoh:
Petunjuk "x-canonical-private-syncous" ditentukan dalam dokumen ini . Untuk menentukan petunjuk, gunakan
-h type:name:value
. Jenis di sini adalahstring
, namax-canonical-private-synchronous
, dan tampaknya nilainya dapat berupa apa pun yang Anda inginkan.Jadi jika notifikasi pertama Anda dibuat dengan petunjuk itu dan yang kedua juga, yang kedua akan segera menggantikan yang pertama. (Lihat Animasi dan Durasi dalam dokumentasi, di kolom untuk "gelembung konfirmasi".)
sumber
string:x-canonical-private-synchronous:anything
persis apa yang saya butuhkan. Terima kasih atas jawaban ini. Juga untuk menghubungkan ke dokumentasiX-ref:
Bagaimana memaksa Notifikasi baru di notify-osd muncul tanpa menunggu yang sebelumnya keluar?
tanpa tambalan yang bisa Anda lakukan
Bookmark:
Bagaimana cara saya menggunakan 'notify-send' untuk segera mengganti notifikasi yang ada?
Mengirim kesalahan notify-osd (2592): Operasi tidak diizinkan. Apa artinya?
Ini mungkin berarti bahwa hak istimewa tidak memadai yang membutuhkan:
sumber
notify-osd(2592): Operation not permitted
. Apa artinya?Saya membuat skrip python sederhana yang berfungsi hampir sama dengan memberi tahu-kirim tetapi memiliki dukungan untuk
--replaces-id
.notify-send.py
web: https://github.com/phuhl/notify-send.py
Skrip python untuk mengirim pemberitahuan desktop dari shell.
Tentang
Libnotify adalah bagian dari banyak skrip di dunia Linux. Ini menggunakan banyak fitur yang ditentukan dari Spesifikasi Pemberitahuan Desktop dan membuatnya dapat diakses oleh skrip shell. Namun itu tidak memungkinkan untuk mengganti notifikasi yang ada dengan
replaces-id
. Ini adalah bug yang dikenal sejak 2008 dan memiliki tambalan sejak 2012. Patch masih belum hulu (2018).Skrip python ini menggunakan paket notify2 dan memperlihatkan fungsi ke shell.
Perbedaan antara notify-send.py dan notify-send
notify-send.py -h
show help alih-alih menjadi parameter untuk hints. Untuk petunjuk gunakan--hint
.notify-send.py -r ID
dannotify-send.py --replaces-id ID
ada. Untuk mengganti panggilan notifikasinotify-send.py
dengan ID yang dikembalikan oleh notifikasi untuk diganti.notify-send.py
mengembalikan ID pemberitahuan yang baru dibuat.notify-send.py --replaces-process NAME
ada Setiap notifikasi yang dibuat dengan NAME yang sama akan menggantikan setiap notifikasi sebelumnya dengan NAME yang sama. Jika dipanggil dengan parameter ininotify-send.py
mungkin memblokir, sebaiknya dipanggil dengan trailing&
.Instalasi
Membutuhkan python3.
Pemakaian
beri tahu-kirim [.py] sebagai pengguna root
Untuk menampilkan pemberitahuan, meskipun libnotify atau
digunakan dari pengguna root, kedua skrip ini sangat membantu.
Dengan
notify-send.sh
seperti ini:Lihat juga
Lihat juga notifikasi-daemon saya yang terinspirasi oleh Dunst , tetapi dengan beberapa perbaikan, termasuk kemungkinan latar belakang yang transparan dan pusat notifikasi yang menyimpan notifikasi.
sumber