从命令行访问 gnome 终端配置文件的名称

从命令行访问 gnome 终端配置文件的名称

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

https://wiki.archlinux.org/index.php/GNOME/Tips_and_tricks

答案3

这似乎可以解决问题:

gsettings get org.gnome.Terminal.Legacy.Profile:$dconfdir/":"$1/ visible-name

被盗这里

答案4

它并没有准确回答问题。但是如果你想区分个人资料,你可以尝试检查背景颜色。

[[ "$(xtermcontrol --get-bg)" == "rgb:3b3b/3c3c/3e3e" ]] && echo profile-1 || echo profile-2

它返回当前配置文件的背景颜色;但是,不一定是开始时的背景颜色,因为您可以动态更改配置文件。

相关内容