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を使用しています。btw)

これを設定するには、目的の優先順位で端末を一覧表示するファイルを作成する必要があります。ファイルは$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

前の例では、キティを開く必要があります。

これでgtk-launch、ファイルを開くために使用されるすべてのプログラム(ラベル付き)が目的のexo-open端末で開きます。xdg-openthunarglib2.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

関連情報