是否有一种惯用的方式在linux中打开图形终端?
我有一些bash脚本可以打开图形终端(Gnome终端、LXTerminal、Konsole等) 然而,我想知道是否有一种惯用的方式来打开终端?类似于用于文件类型的XDG标准?否则,我将使用打开终端的特定方式硬编码引用,例如:是否有一种惯用的方式在linux中打开图形终端?,linux,bash,x11,Linux,Bash,X11,我有一些bash脚本可以打开图形终端(Gnome终端、LXTerminal、Konsole等) 然而,我想知道是否有一种惯用的方式来打开终端?类似于用于文件类型的XDG标准?否则,我将使用打开终端的特定方式硬编码引用,例如: lxterminal -e "ls" 一个更简洁的方法是使用一个“openTerminal”函数,它将命令作为参数之一运行 Debian使用虚拟软件包实现这一点,如中所述 为X Window系统提供终端仿真器的软件包,如果符合下列条件,则应在其“提供”控制字段中声明它们提
lxterminal -e "ls"
一个更简洁的方法是使用一个“openTerminal”函数,它将命令作为参数之一运行 Debian使用虚拟软件包实现这一点,如中所述
为X Window系统提供终端仿真器的软件包,如果符合下列条件,则应在其“提供”控制字段中声明它们提供了虚拟软件包X-terminal-emulator
。他们还应将自己注册为/usr/bin/x-terminal-emulator
,优先级为20。对于/usr/share/man/man1/x-terminal-emulator.1.gz
,该备选方案应有一个指向相应手册页的从属备选方案
要成为x终端仿真器,程序必须:
- 能够模拟DEC VT100终端或兼容终端
- 支持命令行选项-e command,它创建一个新的终端窗口[106]并运行指定的命令,将命令行的其余部分全部解释为直接传递给exec的命令,方式与xterm相同
- 支持命令行选项-T title,它使用窗口标题创建一个新的终端窗口
- 一些打包程序滥用优先级字段,使用远高于20的值
选项与您提到的某些终端的兼容性较差-e
40
优先级的每个包都不遵循以下策略:
$ sudo update-alternatives --config x-terminal-emulator
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/xterm-dev 60 auto mode
1 /usr/bin/evilvte 20 manual mode
2 /usr/bin/gnome-terminal.wrapper 40 manual mode
3 /usr/bin/koi8rxterm 20 manual mode
4 /usr/bin/konsole 40 manual mode
5 /usr/bin/lxterm 30 manual mode
6 /usr/bin/lxterminal 40 manual mode
7 /usr/bin/mate-terminal.wrapper 30 manual mode
8 /usr/bin/mlterm 20 manual mode
9 /usr/bin/mrxvt-full 10 manual mode
10 /usr/bin/pterm 20 manual mode
11 /usr/bin/stterm 15 manual mode
12 /usr/bin/terminology 40 manual mode
13 /usr/bin/urxvt 20 manual mode
14 /usr/bin/uxterm 20 manual mode
15 /usr/bin/xfce4-terminal.wrapper 40 manual mode
16 /usr/bin/xterm 20 manual mode
17 /usr/bin/xterm-dev 60 manual mode
Press <enter> to keep the current choice[*], or type selection number:
$sudo更新替代方案--配置x-terminal-emulator
选择路径优先级状态
------------------------------------------------------------
*0/usr/bin/xterm dev 60自动模式
1/usr/bin/evilvte 20手动模式
2/usr/bin/gnome-terminal.wrapper 40手动模式
3/usr/bin/koi8rxterm 20手动模式
4/usr/bin/konsole 40手动模式
5/usr/bin/lxterm 30手动模式
6/usr/bin/LX终端40手动模式
7/usr/bin/mate-terminal.30手动模式
8/usr/bin/mlterm 20手动模式
9/usr/bin/mrxvt全10手动模式
10/usr/bin/pterm 20手动模式
11/usr/bin/stterm 15手动模式
12/usr/bin/40手动模式
13/usr/bin/urxvt 20手动模式
14/usr/bin/uxterm 20手动模式
15/usr/bin/xfce4-terminal.wrapper 40手动模式
16/usr/bin/xterm 20手动模式
17/usr/bin/xterm dev 60手动模式
按可保留当前选项[*],或类型选择编号:
(当然,“xterm dev”包是一个本地开发包,没有发布)。我认为规范的解决方案是允许用户通过配置文件或环境变量配置终端命令,并默认为
xterm
之类的内容。