次のコマンドを試してみました。
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-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