![进程和 .desktop 启动器(识别)](https://linux22.com/image/1037287/%E8%BF%9B%E7%A8%8B%E5%92%8C%20.desktop%20%E5%90%AF%E5%8A%A8%E5%99%A8%EF%BC%88%E8%AF%86%E5%88%AB%EF%BC%89.png)
我有一个 Python 应用程序,它有两种不同的行为方式。当不带参数启动时,它会在 CONFIGMODE 中运行并显示配置 GUI (pygtk)。当带参数启动时,它会在 APPMODE 中运行。
然后我要启动两个 Bash 脚本(configmode
和appmode
)。一个脚本使用参数启动我的应用程序,另一个则不带参数。对于每个脚本,我都创建了一个~/.local/share/applications
带有不同图标的 .desktop 文件。
但即使在我启动appmode.desktop
Unity 启动器时也会显示来自 的图标configmode.desktop
。
我也使用Kupfer
它来启动应用程序。当configmode
已在运行时,Kupfer 也认为appmode
已在运行。
因此,我想知道 Unity 和 Kupfer 如何识别.desktop
要使用哪个文件?
我的目标是在 Unity 启动器中看到用于启动的文件的图标.desktop
。我该如何实现?
答案1
Unity 使用BAMF 应用匹配框架. 我不知道库普弗的事。
答案2
我认为问题可能不在于桌面文件本身,而在于以下任何一项:
.ui
文件:如果您使用的是用户界面文件,则可能已设置icon_name
主窗口的属性。在这种情况下,我认为.desktop
文件中的图标未被使用。pygtk
代码:与文件案例类似,您可能已经使用或类似方式.ui
设置了主窗口的图标。gtk.Window.set_icon_name
gtk.Window.set_default_icon_name
gtk.Window.set_icon_name
我的建议是,在应用程序启动时,使用或gtk.Window.set_default_icon_name
取决于传递给应用程序的参数,以编程方式设置主窗口的图标。