gtk-launch 出错:无法找到应用程序所需的终端

gtk-launch 出错:无法找到应用程序所需的终端

我尝试使用以下命令:

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-launchexo-openxdg-open以及所有用于打开文件(标有)thunar的程序都应该在所需的终端中打开。glib2.desktopTerminal=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

相关内容