如何在Debian/Ubuntu中为我的python应用程序定义一个图标



我有一个python (pygtk)应用程序,它根据参数以不同的模式启动。每个应用程序模式都有一个bash脚本:

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进程想要使用哪个图标?

(粘贴我的回复在askubuntu.com)

我认为问题可能不是在桌面文件本身,而是在以下任何一个:

  • .ui文件:如果您使用的是用户界面文件,您可能已经为主窗口设置了icon_name属性。在这种情况下,我会说.desktop文件中的图标没有被使用。

  • pygtk代码:类似于.ui文件的情况下,你可能已经设置了图标的主窗口使用gtk.Window.set_icon_name, gtk.Window.set_default_icon_name或类似的

我的建议是在应用程序启动时使用gtk.Window.set_icon_namegtk.Window.set_default_icon_name根据传递给应用程序的参数以编程方式设置主窗口的图标。

我已按如下方法解决了这个问题:

我已经将我的通用Kadro应用程序安装为python库。对于每种模式,我都创建了自己的python脚本,该脚本只使用正确的参数调用通用的Kadro库。

现在Unity和Kupfer显示正确的图标

最新更新