สำหรับGNOME เทอร์มิ> = 3.8การสร้าง / แก้ไข / อ่านโปรไฟล์ผ่าน CLI คุณสามารถใช้อย่างใดอย่างหนึ่งหรือdconf-cli
ทางเลือกของฉันคือgsettings
dconf-cli
ไดเรกทอรี dconf ของ GNOME
/org/gnome/terminal/legacy/profiles:
เทอร์มิ การดำเนินการทั้งหมดเกิดขึ้นใน dir นี้ ฉันเก็บไว้$dconfdir
ซึ่งจะแสดงในสคริปต์ด้านล่าง
สร้างโปรไฟล์ใหม่
ขั้นตอนขั้นต่ำคือ
- สร้าง UUID สำหรับโปรไฟล์โดยเรียกใช้คำสั่ง
uuidgen
- ผนวกเข้ากับ
list
:dconf write "$dconfdir/list" "[..., 'UUID']"
- ตั้งค่า
visible-name
:dconf write "$dconfdir/:UUID"/visible-name "'NAME'"
หลังจากนั้นแม้ว่าจะไม่ได้ตั้งค่ามากมายโปรไฟล์ใหม่จะปรากฏในการตั้งค่า GUI ของ Terminal เพื่อให้คุณสามารถแก้ไขการตั้งค่าผ่าน 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'"
การอ้างอิง