2011-12-21 8 views
1

私は引数に応じて異なるモードで起動するpython(pygtk)アプリケーションを持っています。私は、各アプリケーションモードのためのbashスクリプトを持っている:私のpythonアプリケーションのアイコンをDebian/Ubuntuで定義する方法は?

kadro-reader.sh:

#!/bin/sh 
/usr/bin/kadro reader 

がkadro-gmail.sh:

#!/bin/sh 
/usr/bin/kadro gmail 

を、私はまた、各モードについての.desktopランチャーを持っています:

[Desktop Entry] 
Name=Kadro Google Reader 
Icon=kadro-reader 
Exec=kadro-reader.sh 
Categories=Network; 
Type=Application 

すべての.desktopランチャーは、異なるアイコンを定義します。しかし、Unityは常にすべてのアプリケーションモードで同じアイコンを表示します。

Kupferと同様の問題:1つのモードを開始した後、Kupferは他のモードもすべて実行していると考えます。

Unity(BAMF Application Matching Framework)とKupferは、実行中のプロセスを右の.desktopランチャーに関連付けることができません。

私はそこにどのように私のpythonプロセスが使いたいのですか?

答えて

0

次のように私は問題を解決した:

私はPythonライブラリとしての私の一般的なKadroアプリケーションがインストールされています。それぞれのモードで、独自のpythonスクリプトを作成します。これは、正しいパラメータで汎用のKadroライブラリを呼び出すだけです。

ここでUnityとKupferが正しいアイコンを表示します。

1

(askubuntu.comで貼り付けmy response

私はデスクトップがファイル自体に問題はないかもしれないと思うが、中に次のいずれか

  • .uiファイル:あなたがしている場合ユーザーインターフェイスファイルを使用して、メインウィンドウのicon_nameプロパティを設定している可能性があります。このような場合、.desktopファイルのアイコンは使用されていないと言います。

  • pygtkコード:同様.uiファイルケースに、あなたはgtk.Window.set_icon_namegtk.Window.set_default_icon_nameまたは類似を使用して、メインウィンドウのアイコンを設定している場合があります。

私のアドバイスは、アプリケーションがアプリケーションに渡された引数に応じて、gtk.Window.set_icon_nameまたはgtk.Window.set_default_icon_nameを使用して開始されたときに、プログラムのメインウィンドウのアイコンを設定することです。

+0

set_icon_from_file(icon_path)を使用しました。しかし、Unityはまだ(間違った).desktopファイルのアイコンを使用しています。 – Witek

+0

set_icon_nameと同じです。動作しません。 .desktopファイルをすべて削除すると、右のアイコンが使用されます。 – Witek

+0

[デスクトップエントリの仕様](http://standards.freedesktop.org/desktopentry-spec/desktopentry-spec-latest.html#exec-variables)を見ると、 '%i'を使うことができます'Exec'キーで' Icon'キーの値をプログラムに渡すので、同じバイナリで異なるアイコンを使うことができるはずです。私は、魔法が起こるかどうかを調べる価値があると思います。 – jcollado

関連する問題