我为(终端)应用程序创建了一个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”。
因此 - 如果您使用该列表中的其中一个终端,请卸载该列表中排名较高的终端。如果您使用另一个终端,请创建一个名为xterm
in的脚本/usr/local/bin
并让它调用您的终端。这就是我现在所做的:
#!/bin/sh
exec sakura "$@"