我尝试使用以下命令:
gtk-launch nvim file.txt
但它给了我这个错误:
gtk-launch: error launching application: Unable to find terminal required for application
如何设置申请所需的终端?我已经设置了我的$TERM
环境$TERMINAL
变量:
export TERM="kitty"
export TERMINAL="kitty"
答案1
截至 2023 年 9 月 18 日:硬编码终端列表这里是
static const struct {
const char *exec;
const char *exec_arg;
} known_terminals[] = {
{ "xdg-terminal-exec", NULL },
{ "kgx", "-e" },
{ "gnome-terminal", "--" },
{ "mate-terminal", "-x" },
{ "xfce4-terminal", "-x" },
{ "tilix", "-e" },
{ "konsole", "-e" },
{ "nxterm", "-e" },
{ "color-xterm", "-e" },
{ "rxvt", "-e" },
{ "dtterm", "-e" },
{ "xterm", "-e" }
};
解决方案1
列表中的第一个程序是一个脚本,它允许我们选择任意终端。所以,解决方案是安装这编写脚本/usr/bin/xdg-terminal-exec
并对其进行配置。 (在 arch 上有一个 aur 包xdg-terminal-exec-git
。我使用 Arch,顺便说一句)
要配置它,我们需要创建一个文件,按照我们想要的优先顺序列出终端。该文件应该是$HOME/.config/xdg-terminals.list
.例如:
echo kitty.desktop >> $HOME/.config/xdg-terminals.list
然后,我们需要将.desktop
文件添加到脚本的数据层次结构中,文件夹$HOME/.local/share/xdg-terminals/
.例如:
ln -s /usr/applications/kitty.desktop $HOME/.local/share/xdg-terminals/
现在我们可以通过以下命令检查我们想要的终端是否打开:
xdg-terminal-exec
对于前面的示例,这应该打开 kitty.
现在gtk-launch
、exo-open
、xdg-open
以及所有用于打开文件(标有)thunar
的程序都应该在所需的终端中打开。glib2
.desktop
Terminal=true
解决方案2
一个更简单的解决方案是将所需的终端简单地链接到/usr/bin/xdg-terminal-exec
.例如:
ln -s /usr/bin/kitty /usr/bin/xdg-terminal-exec
笔记:仅当您的终端不带标志来接收要执行的命令时,这才有效。如果是这样,您可以使用此脚本代替符号链接:
#!/usr/bin/sh
$TERM [needed-flag] $1
答案2
终端被硬编码到 gtk-launch 中。看这个答案。
要解决这个问题,只需做sudo ln -s /usr/bin/gnome-terminal /path/to/your-term