Gnome Terminal 允许使用不同的配置文件。是否可以从命令行获取该终端启动时的配置文件名称?
答案1
这似乎是不可能的,但是您可以找出默认的终端标题,因此您需要做的就是区分选项卡或配置文件以配置不同的默认标题。
控制序列ESC [ 2 1 t
要求终端将其标题插入到终端输入流中。(见Xterm 控制序列有关 xterm 和类似程序的转义序列的更多信息)。具体来说,终端(如果它支持此功能;gnome-terminal 支持)会响应ESC ] l title ESC \
。
下面是一个 bash 函数,用于设置变量,该变量的名称将作为第一个参数传递给 xterm 标题(如果可用)。如果终端不支持该功能,它会在一秒钟后超时,并返回非零错误代码。
read_xterm_title () {
# Clear IFS so that read doesn't do any word splitting.
local IFS= read_xterm_title_header=
# $1 is expected to be a parameter name. Do a crude format check.
if [[ $1 = '' || $1 = *[!0-9_A-Za-z]* ]]; then return 120; fi
eval $1=
# Expect "ESC ] l title ESC \\"
read -p $'\e[21t' -s -t 1 -r -n 3 read_xterm_title_header &&
[[ $read_xterm_title_header = $'\e]l' ]] &&
read -p '' -s -t 1 -r -d $'\e' $1 &&
read -s -t 1 -r -n 1
}
read_xterm_title title
case $title in ...
答案2
以前,您可以使用来执行此操作gconftool2
,然后使用dconf
,现在您必须使用,gsettings
但这是一个 GUID,因此您可能想要的是类似这样的操作:
gsettings get org.gnome.Terminal.ProfilesList default | tr -d \'
并在设置变量的上下文中:
gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$(gsettings get org.gnome.Terminal.ProfilesList default | tr -d \')/ cursor-blink-mode off
答案3
答案4
它并没有准确回答问题。但是如果你想区分个人资料,你可以尝试检查背景颜色。
[[ "$(xtermcontrol --get-bg)" == "rgb:3b3b/3c3c/3e3e" ]] && echo profile-1 || echo profile-2
它返回当前配置文件的背景颜色;但是,不一定是开始时的背景颜色,因为您可以动态更改配置文件。