Verwenden von StartupWMClass für Anwendungen, die in einem Terminal ausgeführt werden
In 18.04 hatte ich einen Launcher im Dash, um eine Anwendung in einem Terminal auszuführen, wobei der Dash einen Indikatorpunkt für den Launcher während der Ausführung anstelle eines Indikators für den generischen Terminal-Launcher anzeigt (auf diese Weise konnte ich ihn finden, wenn andere Terminalfenster sind geöffnet). Ich konnte die Option --class im Exec-Eintrag zusammen mit StartupWMClass verwenden, um dies zu erreichen.
In 20.04 funktioniert der Launcher nicht, wenn ein Terminal geöffnet wird, die Anwendung versucht zu starten und das Terminal dann geschlossen wird. Ich habe dies gegoogelt und es wird darüber geredet, dass die Option --class abgeschrieben wird. Wenn ich die Option --class lösche, funktioniert der Launcher, aber der Indikatorpunkt ist an den generischen Terminal Launcher angehängt.
Hier ist die .desktop-Datei, bevor Sie die Option --class löschen
[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
Antworten
Dies ist keine perfekte Lösung, aber im Moment funktioniert es. Beim Googeln fand ich folgendes
https://itectec.com/ubuntu/ubuntu-how-to-make-a-custom-launcher-for-terminal-applications/
Hier wird gezeigt, wie eine Anwendung in einem Terminal gestartet wird, obwohl der Launcher Terminal = false verwendet. Im Wesentlichen starten Sie einen Terminalemulator, der dann die Anwendung ausführt. Bei dieser Methode gibt es zwei mögliche Fallstricke. Erstens ruft es speziell einen bestimmten Terminalemulator auf; Zweitens wird die Option --class abgeschrieben und funktioniert möglicherweise in Zukunft nicht mehr.
Daher habe ich vorerst (Ubuntu 20.04.1 und Gnome 3.36.3) die Zeilen ersetzt
Terminal=true
Exec=/home/rquint/Sage/SageMath/sage --class=SageTerminal
mit
Terminal=false
Exec=gnome-terminal --class=SageTerminal -e /home/rquint/Sage/SageMath/sage
und habe das gewünschte Verhalten.