Konfigurieren Sie das Programm, das als Terminal verwendet werden soll

952
Dave Vogt

Ich habe eine neovim.desktopDatei für eine (Terminal-) Anwendung erstellt, die folgendermaßen aussieht:

[Desktop Entry] Name=Neovim MimeType=text/english;text/plain;... Exec=nvim -f %F Type=Application Terminal=true 

Wie Sie sehen, werden Sie aufgefordert, in einem Terminalfenster ausgeführt zu werden. Das funktioniert zwar einwandfrei, öffnet sich aber immer xterm. Jetzt ist die Frage: Wo ist auf meinem System konfiguriert, welches Terminal für solche Anwendungen verwendet werden soll?

Ist dieser Desktop abhängig? Wenn ja: Wo ist es in GNOME? Wo (also ist dies auch für andere Menschen nützlich) in KDE?

0

2 Antworten auf die Frage

1
grawity

Dafür gibt es keinen Standardstandort. Das hängt von der Desktop-Umgebung ab.


In GNOME 3 wird dies in dconf / GSettings gespeichert:

$ gsettings list-recursively org.gnome.desktop.default-applications.terminal org.gnome.desktop.default-applications.terminal exec 'gnome-terminal' org.gnome.desktop.default-applications.terminal exec-arg '-x'  $ gsettings set org.gnome.desktop.default-applications.terminal exec xterm 

Dasselbe gilt für Zimt, außer unter der org.cinnamon.desktop.⋯Domäne.


GNOME 2 wurde verwendet, um dies in GConf zu speichern:

$ gconftool-2 -R /desktop/gnome/applications/terminal exec = gnome-terminal exec_arg = -x  $ gconftool-2 -s /desktop/gnome/applications/terminal/exec -t string xterm 
1
Dave Vogt

Nachdem die Vorschläge von grawity nicht wie erwartet gelaufen sind, habe ich ein wenig weiter gesucht und festgestellt, dass GLIB die Liste der Terminal-Emulatoren fest codiert hat. Es werden also keine Einstellungen berücksichtigt, wenn eine Anwendung mit ihrer Funktionalität gestartet wird.

Die entsprechende Quelle finden Sie hier: https://github.com/frida/glib/blob/master/gio/gdesktopappinfo.c#L2467 - Suchen Sie in dieser Datei nach "gnome-terminal", wenn die Zeilennummer nicht mehr übereinstimmt .

Wenn Sie also eines der Terminals in dieser Liste verwenden, deinstallieren Sie die darüber liegenden Terminals. Wenn Sie ein anderes verwenden, erstellen Sie ein Skript mit dem Namen xtermin /usr/local/binund hat es Ihren Terminal nennen. Das habe ich jetzt gemacht:

#!/bin/sh  exec sakura "$@"