Gnome 終端允許擁有不同的設定檔。是否可以取得從命令列啟動該終端機的設定檔名稱?
答案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
答案3
答案4
它並沒有完全回答這個問題。但如果您想區分配置文件,您可以嘗試檢查背景顏色等。
[[ "$(xtermcontrol --get-bg)" == "rgb:3b3b/3c3c/3e3e" ]] && echo profile-1 || echo profile-2
它傳回目前設定檔的背景顏色;但是,不一定是一開始的那個,因為您可以即時更改設定檔。