我编写了两个 Perl/Gtk 程序。从 dash 菜单启动时,它们运行良好。
但是,如果我尝试使用在其 .desktop 文件中找到的相同命令从终端启动它们,如果我将其保留在 Unity 栏中,它们的 Unity 启动器将会变得模糊,并且在单击时将保持非活动状态。
如果将桌面文件的 Exec 部分替换为,则问题得到解决
perl path_to_script
然而,这会导致其他问题,包括 lintian 警告并强制所有从终端运行的 Perl GUI 应用程序采用相同的启动器。
这个问题相当烦人,因为其中一个程序依赖于不同的(Python)程序才能启动,这导致启动器模糊且不活动。
答案1
我找到了错误所在。我必须在 .desktop 文件中输入正确的 StartupWMClass。
对于那些遇到困难的人,请从终端启动应用程序,然后在另一个终端中执行命令
xprop | grep WM_CLASS
单击您的应用程序,上一个命令的输出将是
WM_CLASS(STRING) = "result"
在 .desktop 文件中添加以下行:
StartupWMClass=result
用您的输出替换结果。