2

Gnome Terminal позволяет иметь разные профили. Можно ли получить имя профиля, под которым этот терминал запускается из командной строки?

2 ответа2

2

Это кажется невозможным, однако вы можете узнать заголовок терминала по умолчанию, поэтому все, что вам нужно сделать, чтобы различать вкладки или профили, это настроить разные заголовки по умолчанию.

Последовательность управления ESC [ 2 1 t просит терминал вставить свой заголовок во входной поток терминала. (См. Управляющие последовательности Xterm для получения дополнительной информации о escape-последовательностях для xterm и аналогичных программ). В частности, терминал (если он поддерживает эту функцию; gnome-терминал поддерживает) отвечает 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 ...
1

Раньше вы могли делать это с 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .