質問: ubuntuや他のディストリビューションで表示されるステータスアイコンをプログラムする方法は? 問題のアプリケーションは何らかのアクション(ここではオーディオをネットワークストリームに接続します)を実行し、これらのアクションが成功した場合は最小化されて実行されます。したがって、接続の状態を表示するにはステータスアイコンが必要です(例:connected/disconnected)。アイコンをクリックした場合のみ、アプリケーションウィンドウが開き、他のオプションにアクセスできます。python 2.6とpygtkを使用すると、gtk_status_iconを使用してこれを実現できました。さまざまなubuntuバージョンを含め、できるだけ多くのディストリビューションで実行するようにアプリケーションを意図的に作成しました。ユーザーがそれらをインストールした後にのみ、可能な依存関係を使用するように注意しました。しかし、gtk_status_iconは今後のubuntuのリリースではサポートされなくなると聞いています。開発者は、代わりにアプリケーションインジケータを使用するよう求められます。次のことを確認するためのベストプラクティスは次のとおりです。 アプリケーションのローカルアイコンが適切に表示される アプリケーションは引き続き実行され、今後のubuntuリリースでアイコンが表示されます。 アプリケーションはalso他の環境でindicator-applet、libappindicator、およびpython-appindicatorは提供されません。 indicator-appletが実行されていない場合、gtk_status_iconへのアプリケーションインジケーターフォールバックメカニズムは機能しません。インポート元のappindicatorモジュールがない場合、pythonインタープリターは実行されません。ディストリビューションごとに異なるバージョンを開発する必要がありますか、またはこれを回避するより良い方法はありますか?. buntu wiki で示されている例以外のapplicationindicatorの使用方法に関するドキュメントはどこにありますか? ubuntuと非ubuntuディストリビューションの異なるソースコードのプログラミングを回避するために、インジケーターアプレットが実行されているかどうかを確認するためのコマンドは何ですか?
回答: for line in os.popen("ps xa"): fields = line.split() pid = fields[0] process = fields[4] applet_is_running = ( process.find('indicator-applet') > 0 ) これにより、インジケータアプレットが実行されているかどうかを検出できます。 ubuntu 11.04を心配する必要はありません。これは当てはまりません。インジケーターアプレットは必須コンポーネントであり、既定で実行されるため、フォールバックシナリオはありません。