nat*_*ala 7 linux desktop terminal
如何检测当前桌面环境中使用的是哪个终端模拟器(xterm
,gnome-terminal
...)?像xdg-open
,但用于终端模拟器。
我已经xdg-terminal
在我的 Xubuntu 安装上尝试过这个脚本,但没有成功:
./xdg-terminal.sh: 305: [: x: unexpected operator
./xdg-terminal.sh: 399: [: xxterm: unexpected operator
xdg-terminal: configured terminal program 'xterm' not found or not executable
Run Code Online (Sandbox Code Playgroud)
它将用于在 C++ 程序中使用,因此任何脚本、包或内置命令都可以。
谢谢您的帮助 !
没有标准可以了解各个发行版的默认终端模拟器是什么。事实上,用户可能“默认”使用与桌面环境附带的终端完全不同的终端。您只能通过查看不同的系统变量和配置文件来猜测它。
你可以尝试猜测你的前进方向$TERM
请参阅man term.5
和/或man term.7
(术语手册页第 5 页和第 7 页)。
环境变量 TERM 通常应包含您正在使用的终端、控制台或显示设备类型的类型名称。此信息对于所有面向屏幕的程序(包括编辑器和邮件程序)至关重要。
默认 TERM 值将通过 /etc/inittab(Linux 和类似 System-V 的 UNIX)或 /etc/ttys(BSD UNIX)按行设置。对于工作站和微型计算机控制台来说,这几乎总是足够的。
在我的 Manjaro i3 安装上
$ echo $TERM
rxvt-unicode-256color
Run Code Online (Sandbox Code Playgroud)
这是 的另一个名称urxvt
。所以你甚至不能指望获得默认终端的正确名称。
如果您的 $TERM 有 [您无法识别的内容],请仔细检查您的配置,包括:
- /etc/inittab 中的agetty 行(最后应该说 linux1)
- 系统范围的 shell 启动脚本
- /etc/profile, /etc/profile.d/*.sh
- /etc/bash.bashrc (如果使用 bash)
- 您自己的 shell 启动脚本
- 〜/ .profile,〜/ .bash_profile,〜/ .bash_login,〜/ .bashrc
默认情况下,i3 附带i3-sensible-terminal
. 根据它的说明书
i3-sensible-terminal 在 i3 默认配置中调用来启动终端。这个包装脚本是必要的,因为没有独立于发行版的终端启动器(但例如 Debian 有 x-terminal-emulator)。分发打包者负责以适合分发的方式传送此脚本。
它的工作方式只是浏览常用终端模拟器的列表
它尝试启动以下操作之一(按顺序):
- $TERMINAL(这是一个非标准变量)
- x-terminal-emulator(仅存在于 Debian 及其衍生版本上)
- 乌尔克斯VT
- 接收值
- 白蚁
- 终结者
- ...
在哪里
$TERMINAL
使用时通常在前述启动脚本中设置。x-terminal-emulator
是 Debian 询问默认终端的方式(适用于 Ubuntu)在 bash 脚本中,这会给出类似的内容
$ echo $TERM
rxvt-unicode-256color
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6301 次 |
最近记录: |