Aplikasi yang dimaksud melakukan beberapa tindakan (di sini menghubungkan audio ke aliran jaringan) dan berjalan diminimalkan jika tindakan ini berhasil. Oleh karena itu diperlukan ikon status untuk menampilkan status koneksi (mis. TERHUBUNG / TERPUTUS). Hanya ketika mengklik ikon, jendela aplikasi akan terbuka untuk memberikan akses ke opsi lebih lanjut.
Menggunakan Python 2.6 dan pyGtk saya dengan mudah menyadari hal ini dengan menggunakan gtk_status_icon . Saya sengaja menulis aplikasi untuk berjalan di sebanyak mungkin distribusi termasuk berbagai versi Ubuntu. Saya berhati-hati untuk menggunakan dependensi yang mungkin hanya setelah pengguna menginstalnya.
Namun sekarang saya mendengar bahwa gtk_status_icon tidak lagi didukung dalam rilis Ubuntu yang akan datang. Pengembang diminta untuk menggunakan Indikator Aplikasi sebagai gantinya. Apa yang kemudian menjadi praktik terbaik untuk memastikan bahwa:
- Ikon lokal aplikasi ditampilkan dengan benar
- Aplikasi ini masih akan berjalan dan menampilkan ikonnya di rilis Ubuntu yang akan datang.
- Aplikasi ini juga akan berjalan dan menampilkan ikon-ikonnya di lingkungan lain di mana indikator-applet , libappindicator , dan python-appindicator tidak disediakan.
Mekanisme fallback Indikator Aplikasi ke gtk_status_icon tidak akan berfungsi jika indikator-applet tidak berjalan. Penerjemah python tidak akan berjalan jika tidak ada modul appindicator untuk diimpor. Apakah saya perlu mengembangkan versi yang berbeda untuk distribusi yang berbeda atau apakah ada cara yang lebih baik untuk mengatasi ini.
Di mana saya menemukan dokumentasi tentang cara menggunakan ApplicationIndicator selain dari contoh yang diberikan di Wiki Ubuntu ? Perintah apa yang disediakan untuk memeriksa apakah applet indikator berjalan untuk menghindari pemrograman kode sumber yang berbeda untuk distribusi Ubuntu vs non-Ubuntu?
Saya memiliki solusi luar biasa yang telah bekerja dengan baik di StackApplet - Saya membuat versi
appindicator
modul yang setara secara fungsional yang menggunakangtk.StatusIcon
internal untuk menyediakan fungsionalitas yang identik ketika modul sebenarnya tidak ada.Menggunakannya sesederhana:
appindicator_replacement.py
Menambahkan yang berikut ke aplikasi Anda:
Itu dia! Sekarang aplikasi Anda akan berjalan dengan sempurna dengan atau tanpa dukungan untuk AppIndicators. Itu bahkan akan berjalan pada Windows, dengan asumsi Anda tidak memiliki kode spesifik platform lainnya.
Catatan: file ini dirilis di bawah lisensi MIT - sehingga Anda dapat menggunakannya cukup banyak untuk apa pun.
sumber
Anda harus menulis kode untuk keduanya. Anda dapat mendeteksi keberadaan appindicator di kode Python Anda menggunakan sesuatu yang mirip dengan:
Dari sana, gunakan have_appindicator untuk memutuskan apakah Anda harus menggunakan kode appindicator atau kode gtk_status_icon.
Sayangnya, ini juga berarti Anda harus memiliki Ubuntu dan lingkungan lain untuk diuji.
sumber
Dengan cara ini Anda dapat mendeteksi apakah applet indikator berjalan. Anda tidak perlu khawatir tentang Ubuntu 11.04 karena ini tidak akan terjadi. Tidak ada skenario fallback karena indikator-applet adalah komponen wajib, berjalan secara default.
sumber
/usr/lib/x86_64-linux-gnu/indicator-messages/indicator-messages-service
Sebagai gantinya, ada banyak tugas.