2011-12-21 24 views
1

我有一個python(pygtk)應用程序,它根據參數以不同的模式啓動。我爲每個應用程序模式bash腳本:如何在Debian/Ubuntu中爲我的python應用程序定義一個圖標?

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的類似問題:在我啓動了一種模式後,Kupfer認爲所有其他模式也在運行。

它接合Unity(BAMF應用程序匹配框架)和Kupfer無法將正在運行的進程與正確的.desktop啓動程序相關聯。

有沒有一個正確的方法如何讓debian變得清晰,我的python進程想使用哪個圖標?

回答

0

我已經解決了如下問題:

我已經安裝了通用Kadro應用程序作爲一個Python庫。對於每種模式,我都創建了自己的python腳本,它只是調用帶有正確參數的泛型Kadro庫。

現在Unity和Kupfer顯示正確的圖標。

1

(粘貼在my response askubuntu.com)

我覺得可能不是問題,在桌面文件本身,但在任何如下:

  • .ui文件:如果你是使用用戶界面文件,您可能已經爲主窗口設置了icon_name屬性。在這種情況下,我會說.desktop文件中的圖標未被使用。

  • pygtk代碼:類似於.ui文件的情況下,你可能已經爲使用gtk.Window.set_icon_namegtk.Window.set_default_icon_name或類似的主窗口中的圖標。

我的建議是,當應用程序使用gtk.Window.set_icon_namegtk.Window.set_default_icon_name取決於傳遞給應用程序的參數開始編程設置的圖標的主窗口。

+0

已使用set_icon_from_file(icon_path)。但Unity仍然使用(錯誤的).desktop文件中的圖標。 – Witek 2011-12-21 12:46:11

+0

與set_icon_name相同。不起作用。如果我刪除了所有.desktop文件,則會使用右圖標。 – Witek 2011-12-21 13:00:38

+0

查看[desktop entries specification](http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#exec-variables)我看到可以使用'%i'在'Exec'鍵中將'Icon'鍵的值傳遞給程序,所以這應該意味着同一個二進制可以使用不同的圖標。我認爲值得嘗試看看是否會發生一些魔術。 – jcollado 2011-12-21 13:17:18

相關問題