以下のためにGNOMEターミナル> = 3.8、作成する/編集/ CLIを使用してプロファイルを読んで、あなたはいずれかを使用することができますdconf-cli
かgsettings
。私の選択はdconf-cli
です。
GNOMEターミナルのdconfディレクトリは
/org/gnome/terminal/legacy/profiles:
です。すべての操作はこのディレクトリで行われます。$dconfdir
以下のスクリプトに示されている場所に保存します。
新しいプロファイルを作成する
最小ステップは
- コマンドを実行して、プロファイルのUUIDを生成します
uuidgen
- 以下に追加し
list
ます。dconf write "$dconfdir/list" "[..., 'UUID']"
- その設定
visible-name
:dconf write "$dconfdir/:UUID"/visible-name "'NAME'"
その後、多くの設定が設定されていない場合でも、新しいプロファイルがターミナルのGUI設定に表示されるので、GUIを使用して設定を編集できます。
作業スクリプト:
#!/bin/bash
dconfdir=/org/gnome/terminal/legacy/profiles:
create_new_profile() {
local profile_ids=($(dconf list $dconfdir/ | grep ^: |\
sed 's/\///g' | sed 's/://g'))
local profile_name="$1"
local profile_ids_old="$(dconf read "$dconfdir"/list | tr -d "]")"
local profile_id="$(uuidgen)"
[ -z "$profile_ids_old" ] && local lb="[" # if there's no `list` key
[ ${#profile_ids[@]} -gt 0 ] && local delimiter=, # if the list is empty
dconf write $dconfdir/list \
"${profile_ids_old}${delimiter} '$profile_id']"
dconf write "$dconfdir/:$profile_id"/visible-name "'$profile_name'"
echo $profile_id
}
# Create profile
id=$(create_new_profile TEST)
記述する値を囲む引用符に注意してください。マニュアルで述べたように、
キーを設定するときは、を指定する必要もありますVALUE
。値の形式は、シリアル化されたGVariantの形式です"'foo'"
。たとえば、文字列には明示的な引用符を含める必要があります。この形式は、値を出力するときにも使用されます。
必要に応じて、cliを使用してプロファイルのオプションをさらに設定できます。走る
dconf write /org/gnome/terminal/legacy/profiles:/:UUID/KEY "'NAME'"
設定する。利用可能なdconf-editor
オプションを確認するために使用できます。などのパスに移動します
/org/gnome/terminal/legacy/profiles:/:9ca4ab84-42f2-4acf-8aa9-50e6351b209a/
。多くのオプションが設定されている古いプロファイルを確認することをお勧めします。
プロファイルを複製する
dconf dump
古いプロファイルとload
既存のプロファイルを作成できます。したがって、プロファイルを複製するには、上記の手順を使用して新しいプロファイルを作成し、古いプロファイルをコピーして上書きする必要があります。オーバーライドした後は、必ず名前を変更してください。
作業スクリプト:
# ... codes from last script
duplicate_profile() {
local from_profile_id="$1"; shift
local to_profile_name="$1"; shift
local profile_ids=($(dconf list $dconfdir/ | grep ^: |\
sed 's/\///g' | sed 's/://g'))
# If UUID doesn't exist, abort
in_array "$from_profile_id" "${profile_ids[@]}" || return 1
# Create a new profile
local id=$(create_new_profile "$to_profile_name")
# Copy an old profile and write it to the new
dconf dump "$dconfdir/:$from_profile_id/" \
| dconf load "$dconfdir/:$id/"
# Rename
dconf write "$dconfdir/:$id"/visible-name "'$to_profile_name'"
}
# Create a profile from an existing one
duplicate_profile $id TEST1
名前でプロファイルのUUIDを取得するには:
get_profile_uuid() {
# Print the UUID linked to the profile name sent in parameter
local profile_ids=($(dconf list $dconfdir/ | grep ^: |\
sed 's/\///g' | sed 's/://g'))
local profile_name="$1"
for i in ${!profile_ids[*]}; do
if [[ "$(dconf read $dconfdir/:${profile_ids[i]}/visible-name)" == \
"'$profile_name'" ]]; then
echo "${profile_ids[i]}"
return 0
fi
done
}
id=$(get_profile_uuid Default)
プロファイルをデフォルトとして設定する
プロファイルのUUIDをキーに書き込むだけdefault
です:
dconf write $dconfdir/default "'$UUID'"
参照