如何指定 gtk-launch 使用哪个终端

pse*_*ert 5 terminal-emulator .desktop

正如此处所讨论的,gtk-launch 可以直接启动应用程序,也可以在终端窗口中启动应用程序,具体取决于文件是否.desktop指定应用程序在终端中运行。在我看来,这个终端不是来自x-terminal-emulator替代系统的(当我更新替代系统时它不会改变)。

有没有办法指定gtk-launch应使用哪个终端模拟器?

Dar*_* Ng 2

如果没有解决方法似乎不可能。

\n

https://askubuntu.com/a/294430

\n

Gtk-launch(gtk 的一部分)与完全无关x-terminal-emulator。在我的例子中,glib2 2.68.0(在 gtk-launch 之后)的终端选择逻辑硬编码在gio/gdesktopappinfo.c 的prepend_terminal_to_vector()中。

\n
# Most preferred\ngnome-terminal -- APP ARG1 ARG2 ...\n\n# Then\nmate-terminal  -x APP ARG1 ARG2 ...\nxfce4-terminal -x APP ARG1 ARG2 ...\n\n# After that\ntilix       -e APP ARG1 ARG2 ...\nkonsole     -e APP ARG1 ARG2 ...\nnxterm      -e APP ARG1 ARG2 ...\ncolor-xterm -e APP ARG1 ARG2 ...\nrxvt        -e APP ARG1 ARG2 ...\ndtterm      -e APP ARG1 ARG2 ...\n\n# Last resort\nxterm -e APP ARG1 ARG2 ...\n
Run Code Online (Sandbox Code Playgroud)\n

我的机器上的一个肮脏的解决方法

\n

我想调用alacritty -e ...

\n

1. 创建一个虚拟 gnome 终端 (\xce\xb1)

\n
sudo install -vDm755 /dev/null /usr/local/bin/gnome-terminal\n
Run Code Online (Sandbox Code Playgroud)\n

2a. 如果还没有gnome-terminal安装,请将以下内容放入\xce\xb1

\n
#!/bin/bash\n\n[ x"$1" = x"--" ] || { exec /usr/bin/gnome-terminal "$@"; exit 0; }\n\nshift\n\nTITLE="$(basename "$1")"\nif [ -n "$TITLE" ]; then\n  /usr/bin/alacritty -t "$TITLE" -e "$@"\nelse\n  /usr/bin/alacritty             -e "$@"\nfi\n
Run Code Online (Sandbox Code Playgroud)\n

2b. 如果已经gnome-terminal安装,将以下内容放入\xce\xb1

\n
#!/bin/bash\n\n[ x"$1" = x"--" ] || exit 1\n\nshift\n\nTITLE="$(basename "$1")"\nif [ -n "$TITLE" ]; then\n  /usr/bin/alacritty -t "$TITLE" -e "$@"\nelse\n  /usr/bin/alacritty             -e "$@"\nfi\n
Run Code Online (Sandbox Code Playgroud)\n

阿斯库本图 x-post

\n