के लिए सूक्ति टर्मिनल> = 3.8 , बनाने के लिए / संपादन / CLI के माध्यम से प्रोफाइल को पढ़ने, तो आप उपयोग कर सकते हैं dconf-cli
या gsettings
। मेरे विकल्प है dconf-cli
।
GNOME टर्मिनल की dconf निर्देशिका है
/org/gnome/terminal/legacy/profiles:
। सभी ऑपरेशन इस dir में होते हैं। मैं इसे संग्रहीत करता हूं $dconfdir
जिसमें नीचे स्क्रिप्ट में दिखाया गया है।
एक नया प्रोफ़ाइल बनाएं
न्यूनतम कदम हैं
- कमांड चलाकर प्रोफ़ाइल के लिए एक यूयूआईडी बनाएं
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 के माध्यम से प्रोफ़ाइल के अधिक विकल्प सेट कर सकते हैं। Daud
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'"
संदर्भ