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
답변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
현재 프로필의 배경색을 반환합니다. 그러나 프로필을 즉시 변경할 수 있으므로 반드시 시작된 프로필일 필요는 없습니다.