從命令列存取 gnome 終端設定檔的名稱

從命令列存取 gnome 終端設定檔的名稱

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

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

它傳回目前設定檔的背景顏色;但是,不一定是一開始的那個,因為您可以即時更改設定檔。

相關內容