Wie ändere ich das Standardterminal für die Ausführung von .desktop-Dateien?
Ich habe versucht, vim mit alacritty als Standard auszuführen. Ich habe alacritty Set als Standard - Terminal - Emulator bereits, und in meinem vim.desktop Ich änderte exec=vim %F
mit exec=alacritty -e vim %F
. Das Problem ist, dass beim Öffnen einer Datei zuerst der Befehl im Gnome-Terminal ausgeführt und dann vim in alacritty gestartet wird. Das Gnome-Terminal bleibt also geöffnet. Ich habe auch versucht, ein Skript zu erstellen:
#!/bin/bash
alacritty -e vim & disown | exit
das funktioniert überhaupt nicht. Ich weiß nicht, was ich sonst tun soll und kann online nichts finden. Danke im Voraus!
Ist es möglich, das Standardterminal zu ändern, mit dem der Exec=
Befehl ausgeführt wird? so dass nur durch das Schreiben Exec=vim %F
es in alacritty laufen würde
Antworten
Muru half mir zu klären, was los war, danke! Das Problem war, dass meine .desktop-Datei:
[Desktop Entry]
Name=Vim
GenericName=Text Editor
Comment=Edit text files
Comment[es]=Edita archivos de texto
TryExec=vim
Exec=alacritty -e vim %F
Terminal=true
Type=Application
Keywords=Text;editor;
Icon=gvim
Categories=Utility;TextEditor;
StartupNotify=false
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Hatte das Argument Terminal=true
. Dies führt dazu, dass der Exec=
Befehl in einem Terminal ausgeführt wird und dazu ein Terminal geöffnet wird. Wenn Sie dies einstellen, Terminal=false
wird verhindert, dass sich ein Terminal öffnet, und es wird nur der Befehl ausgeführt, ohne das Terminal zu öffnen.
Bearbeiten: Dies funktioniert manchmal nicht. Ich weiß nicht, was steuert, welcher Terminalemulator beim Öffnen von vim verwendet wird.
Ich habe gerade eine andere Lösung für dieses Problem gefunden: Erstellen Sie einen xterm
in Ihrem Namen genannten Symlink $PATH
zu Ihrem eigenen Terminalemulator. Ich kann jedoch nicht garantieren, dass dies für alle funktioniert.
Der Vorteil dieser Problemumgehung besteht darin, dass Sie keine Desktop-Eintragsdateien ändern müssen. Alle .desktop mit Terminal=true
verwenden den neuen Terminalemulator.
Beim Versuch, einen Desktop-Eintrag mit exo-open
(ähnlich wie xdg-open
bei xfce) auszuführen, wird eine Warnmeldung angezeigt
sh: line 0: exec: xterm: not found
Ich denke, es xterm
ist im Programm fest codiert, um .desktop-Dateien zu öffnen. Dann habe ich versucht, diesen Symlink zu erstellen
ln -s /usr/bin/st ~/.local/bin/xterm
und es funktioniert perfekt.
Der tatsächlich erzeugte Befehl basiert jedoch wahrscheinlich auf xterm
den Argumenten von ', sodass nur die Terminalemulatoren funktionieren, die dasselbe Argument verwenden, um den Startbefehl anzugeben. Ein Zählerbeispiel ist termite
, da der gesamte Befehl in der -e
Option in Anführungszeichen gesetzt werden muss .