在18.04中,我在Dash中有一个发射器在终端中运行一个应用程序,其中Dash在运行时显示一个指示点,而不是一个通用终端发射器的指示器(这样,如果其他终端窗口打开,我就能够找到它)。我能够在Exec条目中使用-class选项以及StartupWMClass来实现这一点。
在20.04中,启动程序无法工作,因为终端被打开,应用程序尝试启动,然后终端关闭。我在googled上搜索了一下,有一些关于-class选项被贬值的传言。如果我删除-class选项,启动器工作,但指示点是附加到通用终端启动器。
以下是删除-class选项之前的.desktop文件
[Desktop Entry]
Version=1.0
Type=Application
Terminal=true
Encoding=UTF-8
StartupNotify=true
Icon[en_US]=sage-terminal
Icon=sage-terminal
Exec=/home/rquint/Sage/SageMath/sage --class=SageTerminal
StartupWMClass=SageTerminal
Name=SageTerminal
Name[en_US]=SageTerminal
Actions=SageDocumentation;
[Desktop Action SageDocumentation]
Name=Sage Documentation
Exec=firefox /home/rquint/Sage/SageMath/local/share/doc/sage/html/en/index.html发布于 2020-10-05 17:10:13
这不是一个完美的解决方案,但就目前而言,它是可行的。我在谷歌上发现了以下内容
https://itectec.com/ubuntu/ubuntu-how-to-make-a-custom-launcher-for-terminal-applications/
它展示了如何在终端中启动应用程序,尽管启动程序使用了Terminal=false。在本质上,您正在启动一个终端模拟器,然后运行应用程序。这种方法有两个可能的问题。首先,它专门调用一个特定的终端仿真器;其次,-class选项被折旧,将来可能无法工作。
所以,现在(Ubuntu20.04.1和Gnome 3.36.3),我已经替换了行
Terminal=true
Exec=/home/rquint/Sage/SageMath/sage --class=SageTerminal使用
Terminal=false
Exec=gnome-terminal --class=SageTerminal -e /home/rquint/Sage/SageMath/sage有我想要的行为。
https://askubuntu.com/questions/1279779
复制相似问题