配置使用哪个程序作为终端

配置使用哪个程序作为终端

我为(终端)应用程序创建了一个neovim.desktop如下所示的文件:

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

如您所见,它请求在终端窗口中运行。这可以完美地找到,但它总是打开xterm。现在的问题是:在我的系统上哪里配置了要使用哪个终端来运行此类应用程序?

它是否依赖于桌面?如果是:它在 GNOME 中的哪里?它在 KDE 中的哪里(这对其他人也有用)?

答案1

这个没有标准位置;这取决于桌面环境。


在 GNOME 3 中,它存储在 dconf/GSettings 中:

$ 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

与 Cinnamon 相同,只是在org.cinnamon.desktop.⋯域下。


GNOME 2 曾经将其保存在 GConf 中:

$ gconftool-2 -R /desktop/gnome/applications/terminal
 exec = gnome-terminal
 exec_arg = -x

$ gconftool-2 -s /desktop/gnome/applications/terminal/exec -t string xterm

答案2

在 grawity 的建议没有按预期发挥作用后,我进一步搜索了一下,发现 GLIB 硬编码了终端仿真器列表。因此,当使用其功能启动应用程序时,它不会反映任何设置。

相应的来源可以在这里找到:https://github.com/frida/glib/blob/master/gio/gdesktopappinfo.c#L2467- 如果行号不再匹配,则在该文件中搜索“gnome-terminal”。

因此 - 如果您使用该列表中的其中一个终端,请卸载该列表中排名较高的终端。如果您使用另一个终端,请创建一个名为xtermin的脚本/usr/local/bin并让它调用您的终端。这就是我现在所做的:

#!/bin/sh

exec sakura "$@"

相关内容