Apakah mungkin untuk mengubah dan memperbarui ikon status dari applet indikator yang sedang berjalan?

8

Saya mencoba membuat indikator aplikasi sederhana yang meniru applet beban CPU untuk panel gnome.

Saat ini saya melakukan ini dengan memperbarui (menimpa) ikon status indikator dengan informasi memuat CPU baru dan mengatur ulang ikon status ke ikon yang sama pada setiap pembaruan (saya tahu ini bodoh, tapi saya tidak tahu apakah itu saat ini mungkin untuk menyelesaikannya).

Sayangnya ini tidak berhasil dan saya selalu melihat status ikon "pertama", mis.

Ikon indikator tidak diperbarui, sementara konten ikon tidak.

Saya juga mencoba untuk sementara waktu mengatur ikon status ke sesuatu yang lain, misalnya.

...
update_icon()
indicator.set_icon("indicator-messages")
indicator.set_icon("indicator-cpu-load")
...

tapi itu juga tidak berhasil.

Ada ide?


MEMPERBARUI:

Memang mungkin untuk melakukan apa yang saya inginkan menggunakan peretasan untuk membuat indikator mengecat ulang ikonnya (terima kasih kepada Jorge Castro dan Ted Gould):

...
update_icon()
indicator.set_status(appindicator.STATUS_ATTENTION)
indicator.set_status(appindicator.STATUS_ACTIVE)
...

Ikon status perhatian harus sama dengan ikon status aktif, jika tidak, akan ada beberapa flicker.

htorque
sumber

Jawaban:

4

Ini memang bukan perilaku yang dimaksudkan Indikator Aplikasi: mereka dimaksudkan untuk memiliki satu atau dua ikon dan bukan sesuatu yang hampir bisa Anda masukkan ke dalam widget.

Tampaknya ada sesuatu yang salah dalam cache ikon, karena harus memperbarui ikon yang diubah.

Bagaimanapun, Anda mungkin ingin menggunakan sesuatu seperti ' libindicator ' untuk membuat indikator kustom Anda sendiri. Pengumpulan indikator aplikasi pada panel Anda diambil oleh satu indikator. Anda memiliki lebih banyak fungsi yang dapat Anda gunakan saat menulis indikator khusus, daripada ketika menggunakan API Indikator Aplikasi yang terbatas, yang sengaja dibatasi untuk memastikan kami tidak mendapatkan kekacauan.

Pastikan juga untuk melihat paket 'libindicator-tools', yang berisi beberapa utilitas praktis untuk menguji indikator.

Sense Hofstede
sumber
Sementara itu adalah mungkin untuk melakukan apa yang saya inginkan (lihat pembaruan dalam pertanyaan), saya setuju bahwa menulis indikator kustom mungkin ide yang lebih baik.
htorque
Namun, saya tidak melihat mengapa menggunakan prosedur yang mapan dan berfungsi dengan baik seperti GTkStatusIcon jelas tidak disarankan di sini. Untuk memperjelas ini: saat ini ada dukungan penuh untuk GtkStatusIcon di semua manajer desktop utama. Oleh karena itu GtkStatusIcon perlu dilanjutkan dalam rilis Ubuntu di masa depan, dan itu akan - setidaknya sebagai fallback. Siapa pun yang downvoted untuk GtKStatusIcon bisa tolong jelaskan mengapa Anda berpikir berbeda. Apakah ada alasan saya mungkin tidak sadar untuk tidak menulis program yang bergantung pada GtkStatusIcon?
Takkat
Versi Ubuntu berikutnya, yang akan menggunakan Unity sebagai shell default, tidak akan mendukung GtkStatusIcons, selain untuk kasus khusus Java dan Wine. Ini dilakukan agar desktop dapat bergerak maju, menggunakan teknologi baru dan mengurangi kekacauan di area notifikasi.
Sense Hofstede
terima kasih telah menunjukkan ini. Apakah ini benar-benar berarti bahwa semua aplikasi yang membutuhkan ikon yang dapat disesuaikan atau yang bergantung pada NA lama tidak akan berjalan di versi Ubuntu yang akan datang jika pengembang mereka tidak akan mem-port-nya?
Takkat
Mereka akan berjalan di Ubuntu, tetapi GtkStatusIcon mereka tidak akan ditampilkan.
Sense Hofstede
1

Saya tidak berpikir ini mungkin dan sepertinya ini adalah desain, dari laporan bug .

Yang ingin kami dorong adalah agar orang mulai berpikir seperti ikon tema. Alasannya adalah ini memungkinkan beberapa ukuran dan tema panel terpisah dari aplikasi. Jadi, misalnya, aplikasi dapat bertema dengan latar belakang terang (sehingga membutuhkan ikon gelap) dan panel bisa memiliki latar belakang gelap (membutuhkan ikon terang). Aplikasi seharusnya tidak perlu tahu tentang ini. Dan dengan menggunakan penamaan ikon masalah ini dapat dipecahkan di sisi panel hal.

Untuk siklus Natty kami juga ingin memberikan API kenyamanan untuk menyediakan untuk membangun tema ikon khusus untuk orang-orang yang ingin menghasilkan ikon. Ini tidak menyelesaikan semua masalah tema, tetapi memungkinkan untuk menyelesaikan beberapa ukuran.

Pembaruan: Untuk menjawab komentar Anda, Ted berpikir itu adalah bug dan menyarankan Anda mengajukan bug pada aplikasi indikator , sesuatu di sepanjang baris "pembaruan tema tidak disadari oleh indikator"

Jorge Castro
sumber
Saya cukup yakin bahwa apa yang saya lakukan bertentangan dengan desain, tetapi saya khawatir komentar tidak menjawab mengapa saya tidak dapat mengedit / mengubah ikon (dalam tema), dan memaksa indikator untuk memperbarui kontennya. Saya dapat melakukan sesuatu seperti indicator.set_icon ("a") indicator.set_icon ("b") indicator.set_icon ("c") ... tapi saya tidak punya ruang tak terbatas untuk ikon baru yang tak terbatas. : P
htorque