Acesse o nome do perfil do terminal gnome na linha de comando

Acesse o nome do perfil do terminal gnome na linha de comando

O Terminal Gnome permite ter diferentes perfis. É possível obter o nome do perfil sob o qual o terminal foi iniciado na linha de comando?

Responder1

Isso não parece ser possível, mas você pode descobrir o título padrão do terminal, então tudo que você precisa fazer para distinguir entre guias ou perfis é configurar diferentes títulos padrão.

A sequência de controle ESC [ 2 1 tpede ao terminal para inserir seu título no fluxo de entrada do terminal. (VerSequências de controle Xtermpara obter mais informações sobre sequências de escape para xterm e programas similares). Especificamente, o terminal (se suportar esse recurso; o gnome-terminal suporta) responde com ESC ] l title ESC \.

Aqui está uma função bash que define a variável cujo nome é passado como o primeiro argumento para o título do xterm, se disponível. O tempo limite após um segundo se o terminal não suportar o recurso e retornará um código de erro diferente de zero.

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 ...

Responder2

Você costumava fazer isso com gconftool2e depois com dconfe agora tem que fazer isso, gsettingsmas é um GUID, então algo assim pode ser o que você deseja:

gsettings get org.gnome.Terminal.ProfilesList default | tr -d \'

e no contexto da definição de uma variável:

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

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

Responder3

Isso parece funcionar:

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

Roubado deaqui.

Responder4

Não responde exatamente à pergunta. Mas se quiser distinguir perfis, você pode tentar verificar a cor de fundo, por exemplo.

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

Retorna uma cor de fundo do perfil atual; no entanto, não necessariamente aquele com o qual foi iniciado, porque você pode alterar um perfil rapidamente.

informação relacionada