Dconf या gsettings के साथ डिफ़ॉल्ट कुंजी मान कैसे पढ़ें?


13

मैं एक dconf / gsettings कुंजी का डिफ़ॉल्ट मान जानना चाहूंगा।

मेरा प्रश्न नीचे दिए गए प्रश्न का अनुवर्ती है: मुझे gsettings के साथ उपयोग करने के लिए SCHEMA / PATH / KEY की सूची कहां मिल सकती है?

मैं क्या करने की कोशिश कर रहा हूं, इसलिए एक ऐसी स्क्रिप्ट बनाएं जो मेरी सभी व्यक्तिगत प्राथमिकताओं को पढ़े ताकि मैं उन्हें वापस कर सकूं और उन्हें पुनर्स्थापित कर सकूं। मैं यह बताने की योजना बनाता हूं कि उपरोक्त कुंजी की तरह, सभी कुंजियाँ, यह देखें कि उनके डिफ़ॉल्ट मान से क्या कुंजियाँ बदली गई हैं, और इनमें से एक नोट करें, जिसे बाद में पुनर्स्थापित किया जा सकता है।

मैं देखता हूं कि dconf- एडिटर कुंजियों की डिफॉल्ट वैल्यू प्रदर्शित करता है, लेकिन मैं इसे स्क्रिप्ट करना बहुत पसंद करता हूं। इसके अलावा, मैं यह नहीं देखता कि स्कीमा /usr/share/glib-2.0/schemas/ को कैसे स्वचालित किया जा सकता है। शायद कोई मदद कर सकता है?

gsettings get-default। सूची-चूक अच्छी होगी =)

(Geesh, पुराने दिनों में यह बहुत आसान था, जहाँ आपने अपने ~ / .somethingrc को तोड़फोड़ में रखा था ... = \ _


नीचे दिए गए उत्तर के आधार पर, मैंने स्कीमा, कुंजी, कुंजी का डेटा प्रकार, डिफ़ॉल्ट मान और वास्तविक मान प्रिंट करने के लिए स्क्रिप्ट को अपडेट किया है :

#!/bin/bash

for schema in $(gsettings list-schemas | sort); do
    for key in $(gsettings list-keys $schema | sort); do
        type="$(gsettings range $schema $key | tr "\n" " ")"
        default="$(XDG_CONFIG_HOME=/tmp/ gsettings get $schema $key | tr "\n" " ")"
        value="$(gsettings get $schema $key | tr "\n" " ")"
        echo "$schema :: $key :: $type :: $default :: $value"
    done
done

यह वर्कअराउंड मूल रूप से कवर करता है जो मुझे चाहिए। मैं यहाँ से बैकअप लाभांश पर काम करना जारी रखूँगा।


अगर किसी और को भी यह पता चल गया है कि अपने डिफ़ॉल्ट मूल्य की कुंजी कैसे रीसेट की जाए, तो gsettings reset KEYजाने का रास्ता है।
एंड्रियास स्टॉरविक स्ट्रोमैन

जवाबों:


11

डिफ़ॉल्ट मानों को सीधे प्राप्त करने का एक अच्छा तरीका प्रतीत नहीं होता है, लेकिन चूंकि ग्राहक XDG_CONFIG_HOME की जाँच करता है, इसलिए वातावरण में एक नए विन्यास से मान प्राप्त करने के लिए एक अच्छा समाधान हो सकता है:

XDG_CONFIG_HOME=/nonexistent gsettings get SCHEMA KEY

1

यदि आप अपनी सेटिंग्स का बैकअप लेने और पुनर्स्थापित करने में रुचि रखते हैं (इस मामले में आपको अपने प्रश्न का शीर्षक बदलना चाहिए)।

बैकअप

आप अपनी सेटिंग्स का बैकअप ले सकते हैं

gsettings list-recursively > backup

यह आपके द्वारा होम-फोल्डर में फ़ाइल बैकअप की सभी कुंजियाँ लिखता है ।

पुनर्स्थापित

जहाँ तक मुझे पता है कि फ़ाइल को वापस dconf में आयात करने का कोई सीधा विकल्प नहीं है। हो सकता है कि आप एक रूटीन लिख सकते हैं जो बैकअप फ़ाइल लाइन को लाइन से पढ़ता है और gsettings set <input line from backup>आपकी सेटिंग्स को पुनर्स्थापित करने के लिए निष्पादित करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.