터미널에서 실행되는 애플리케이션에 StartupWMClass 사용

Oct 04 2020

18.04에서는 Dash에 일반 터미널 실행기에 대한 표시기 대신 실행중인 실행기에 대한 표시기 점을 표시하는 Dash가있는 터미널에서 응용 프로그램을 실행하는 실행기가있었습니다 (이 방법으로 다음과 같은 경우 찾을 수있었습니다. 다른 터미널 창이 열려 있습니다). 이것을 달성하기 위해 StartupWMClass와 함께 Exec 항목에서 --class 옵션을 사용할 수있었습니다.

20.04에서는 터미널이 열리고 응용 프로그램이 시작을 시도한 다음 터미널이 닫히는 경우 런처가 작동하지 않습니다. 나는 이것을 봤는데 --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

답변

1 RichardQuint Oct 06 2020 at 00:10

이것은 완벽한 솔루션은 아니지만 지금은 작동합니다. 주변에서 인터넷 검색을 통해 다음을 발견했습니다.

https://itectec.com/ubuntu/ubuntu-how-to-make-a-custom-launcher-for-terminal-applications/

런처가 Terminal = false를 사용하더라도 터미널에서 애플리케이션을 시작하는 방법을 보여줍니다. 본질적으로 애플리케이션을 실행하는 터미널 에뮬레이터를 시작합니다. 이 방법에는 두 가지 가능한 문제가 있습니다. 첫째, 특정 터미널 에뮬레이터를 구체적으로 호출합니다. 둘째, --class 옵션은 감가 상각되어 향후 작동하지 않을 수 있습니다.

그래서 지금은 (Ubuntu 20.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

내가 원하는 행동을합니다.