从终端而不是 Unity 启动器启动时的行为不同

从终端而不是 Unity 启动器启动时的行为不同

我编写了两个 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

用您的输出替换结果。

相关内容