명령줄에서 gnome 터미널 프로필 이름에 액세스합니다.

명령줄에서 gnome 터미널 프로필 이름에 액세스합니다.

Gnome Terminal은 다양한 프로필을 가질 수 있습니다. 명령줄에서 해당 터미널이 시작된 프로필 이름을 얻을 수 있습니까?

답변1

불가능해 보이지만 기본 터미널 제목을 찾을 수 있으므로 탭이나 프로필을 구별하기 위해 해야 할 일은 다른 기본 제목을 구성하는 것뿐입니다.

제어 시퀀스는 ESC [ 2 1 t터미널 입력 스트림에 제목을 삽입하도록 터미널에 요청합니다. (보다Xterm 제어 시퀀스xterm 및 유사한 프로그램의 이스케이프 시퀀스에 대한 자세한 내용은) 특히 터미널(이 기능을 지원하는 경우, gnome-terminal은 지원)은 로 응답합니다 ESC ] l title ESC \.

다음은 가능한 경우 이름이 xterm 제목의 첫 번째 인수로 전달되는 변수를 설정하는 bash 함수입니다. 터미널이 해당 기능을 지원하지 않으면 1초 후에 시간 초과되고 0이 아닌 오류 코드를 반환합니다.

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지금은 GUID를 사용해야 하므로 gsettings다음과 같은 것이 원하는 것일 수 있습니다.

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

현재 프로필의 배경색을 반환합니다. 그러나 프로필을 즉시 변경할 수 있으므로 반드시 시작된 프로필일 필요는 없습니다.

관련 정보