İçin GNOME Terminal> = 3.8 , oluşturmak / düzenlemek / cli yoluyla profillerini okumak, ya kullanabilirsiniz dconf-cli
veya gsettings
. Benim seçimim dconf-cli
.
GNOME Terminal'in dconf dizini
/org/gnome/terminal/legacy/profiles:
. Tüm operasyonlar bu dir. Bunun içinde saklamak $dconfdir
aşağıda komut gösterilmiştir.
Yeni bir profil oluştur
Minimum adımlar
- Komutu çalıştırarak profil için bir UUID oluşturun
uuidgen
- Şuraya ekleyin
list
:dconf write "$dconfdir/list" "[..., 'UUID']"
- Ayarla
visible-name
:dconf write "$dconfdir/:UUID"/visible-name "'NAME'"
Bundan sonra, birçok ayar yapılmasa bile, ayarları GUI aracılığıyla düzenleyebilmeniz için Terminal'in GUI ayarlarında yeni bir profil görünecektir.
Çalışan bir senaryo:
#!/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)
Yazdığınız değerin etrafındaki alıntılara dikkat edin. Olarak bahsedilen kılavuzu ,
Bir anahtar ayarlarken, ayrıca a belirtmeniz gerekir VALUE
. Değerinin biçimi bir tefrika GVariant, örneğin toplam böylece bir dize açık tırnak içerisine gerektiğidir: "'foo'"
. Bu biçim değerleri yazdırırken de kullanılır.
İsterseniz cli ile profilin daha fazla seçeneğini ayarlayabilirsiniz. Çalıştırmak
dconf write /org/gnome/terminal/legacy/profiles:/:UUID/KEY "'NAME'"
kurmak. dconf-editor
Mevcut seçenekleri kontrol etmek için kullanabilirsiniz . Gibi bir yola gidin
/org/gnome/terminal/legacy/profiles:/:9ca4ab84-42f2-4acf-8aa9-50e6351b209a/
. Birçok seçenek ayarlanmış eski bir profili kontrol etmek daha iyi olur.
Bir profili çoğaltma
dconf dump
Eski bir profili ve load
mevcut bir profile ekleyebilirsiniz . Bu nedenle bir profili çoğaltmak için yukarıdaki adımları kullanarak yeni bir profil oluşturmanız ve eski bir profili geçersiz kılmak için kopyalamanız gerekir. Geçersiz kıldıktan sonra yeniden adlandırmayı unutmayın.
Çalışan bir senaryo:
# ... 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
Bir profilin UUID'sini adına göre almak için:
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)
Bir profili varsayılan olarak ayarlama
Profilin UUID'sini anahtara yazmanız yeterlidir default
:
dconf write $dconfdir/default "'$UUID'"
Referans