প্রথমত, অ্যাপ্লিকেশনগুলিতে গণ্ডগোল করা উচিত নয়dconf
Dconf প্রকল্প পৃষ্ঠা থেকে পরিচিতি :
dconf
একটি নিম্ন-স্তরের কনফিগারেশন সিস্টেম। এর মূল উদ্দেশ্য হ'ল প্ল্যাটফর্মগুলিতে জিএসটিটিংগুলিকে ব্যাকএন্ড সরবরাহ করা যা ইতিমধ্যে কনফিগারেশন স্টোরেজ সিস্টেম নেই।
কোথায় তথ্য সংরক্ষণ করা হয়? (রেফ: https://wiki.gnome.org/ প্রকল্পগুলি / ডকনফ / সিস্টেম অ্যাডমিনিস্ট্রেটর )
একটি প্রোফাইল কনফিগারেশন ডাটাবেসের একটি তালিকা। দেখে মনে হচ্ছে যে জিনোম এবং ইউনিটি একই প্রোফাইল ব্যবহার করে।
$ cat /etc/dconf/profile/gdm
user-db:user
system-db:gdm
user-db:user
: প্রোফাইলে প্রথম ডাটাবেসটি পঠন-লিখন rw
এবং এটি ব্যবহারকারীর হোম ডিরেক্টরিতে তৈরি করা হয়।
$ file ~/.config/dconf/user
/home/sneetsher/.config/dconf/user: GVariant Database file, version 0
system-db:gdm
: শুধুমাত্র পাঠযোগ্য
$ file /etc/dconf/db/gdm
/etc/dconf/db/gdm: GVariant Database file, version 0
dconf
db.d/*
ফোল্ডার থেকে জিভিআর্যান্ট ডেটাবেস ছাড়াও একটি পাঠ্য শৈলীর স্টোর বাঁধতে পারে । উদাহরণ (ফাইলের পথ লক্ষ্য করুন, সুতরাং এটি একটি অংশ system-db:gdm
):
$ cat /etc/dconf/db/gdm.d/00-upstream-settings
# This file is part of the GDM packaging and should not be changed.
#
# Instead create your own file next to it with a higher numbered prefix,
# and run
#
# dconf update
#
[org/gnome/desktop/a11y/keyboard]
enable=true
[org/gnome/desktop/background]
show-desktop-icons=false
...
স্কিমা ফাইল: schema id
এবংschema path
( *.gschema.xml
) এর মধ্যে সম্পর্ক
আমার দ্রুত প্রয়োগের ডেটা / গ্লিব -২.০ ফোল্ডারে স্কিমা এক্সএমএল ফাইলটি কী? ট্রেন্ট দ্বারা তাত্ক্ষণিকভাবে অ্যাপ্লিকেশনটিতে জিএসটিটিং এপিআই ব্যবহার করার একটি দুর্দান্ত উদাহরণ এবং তার অভিজ্ঞতার ভিত্তিতে তার উপসংহার দেখায়।
ভিনো ফিরে। প্রতিটি অ্যাপ্লিকেশন যা জিএসেটেটিংগুলি ব্যবহার করে তার স্কিমার সংজ্ঞা দেওয়া উচিত এবং সেগুলিতে এটি সংরক্ষণ করা / ইনস্টল করা উচিত /usr/share/glib-2.0/schemas/
(এটি একটি গ্লীব ডিরেক্টরি):
$ dpkg -L vino | grep -i glib-2.0
/usr/share/glib-2.0
/usr/share/glib-2.0/schemas
/usr/share/glib-2.0/schemas/org.gnome.Vino.enums.xml
/usr/share/glib-2.0/schemas/org.gnome.Vino.gschema.xml
$ more /usr/share/glib-2.0/schemas/org.gnome.Vino.gschema.xml
<schemalist>
<schema id='org.gnome.Vino' path='/org/gnome/desktop/remote-access/'>
<key name='enabled' type='b'>
<summary>Enable remote access to the desktop</summary>
<description>
If true, allows remote access to the desktop via the RFB
protocol. Users on remote machines may then connect to the
desktop using a VNC viewer.
</description>
<default>false</default>
</key>
<key name='prompt-enabled' type='b'>
<summary>Prompt the user before completing a connection</summary>
<description>
If true, remote users accessing the desktop are not allowed
access until the user on the host machine approves the
connection. Recommended especially when access is not password
protected.
</description>
<default>true</default>
</key>
...
যদি আপনি খেয়াল করেন, স্কিমাটি একটি id
এবং একটি দ্বারা সংজ্ঞায়িত করা হয়েছে path
। স্কিমা ফাইলের নামটি id
মান অনুসরণ করে ।
<schema id='org.gnome.Vino' path='/org/gnome/desktop/remote-access/'>
*.enums.xml
ফাইলগুলি কাস্টম এনুমারেশন ঘোষণার জন্য, *.gschema.xml
একই সাথে নতুন ডেটা ধরণের হিসাবে ব্যবহার করা schema id
।
$ cat /usr/share/glib-2.0/schemas/org.gnome.Vino.enums.xml
<!-- Generated data (by glib-mkenums) -->
<schemalist>
<enum id='org.gnome.Vino.VinoIconVisibility'>
<value nick='never' value='0'/>
<value nick='always' value='1'/>
<value nick='client' value='2'/>
</enum>
</schemalist>
<!-- Generated data ends here -->
$ gsettings range org.gnome.Vino icon-visibility
enum
'never'
'always'
'client'
$ gsettings get org.gnome.Vino icon-visibility
'client'
স্কাইমার সংকলন (রেফারেন্স: ডেকনফ এবং জিনোম-টুইক-টুল দিয়ে বাজানো )
ইনস্টলেশন প্রক্রিয়া অংশ হিসাবে (এটি একটি dpkg ট্রিগার আছে), স্কিমা এর glib-compile-schemas
সরঞ্জাম (গ্লিব থেকে) দিয়ে সংকলিত হয়
sudo glib-compile-schemas /usr/share/glib-2.0/schemas
*.gschema.xml
একটি বাইনারি ফাইল সংকলিত হবে /usr/share/glib-2.0/schemas/gschemas.compiled
বিক্রেতা ওভাররাইড ফাইলগুলি ( *.gschema.override
)
স্কিমা ফাইলগুলি ছাড়াও, বিক্রেতা ওভাররাইড ফাইলগুলি glib-compile-schemas
পড়ে , যা মূল ফাইলগুলি স্কিমাতে কীগুলির ডিফল্ট মানগুলিকে ওভাররাইড করতে পারে (রেফারেন্স )। এগুলি উবার্টু বিতরণ দ্বারা আপস্ট্রিম স্কিমা ডিফল্টগুলিকে ওভাররাইড করার জন্য পরিবর্তনগুলি ধারণ করে।man glib-compile-schemas
$ ls /usr/share/glib-2.0/schemas/*.gschema.override
/usr/share/glib-2.0/schemas/10_compiz-gnome.gschema.override
/usr/share/glib-2.0/schemas/10_desktop-base.gschema.override
/usr/share/glib-2.0/schemas/10_evolution-common.gschema.override
/usr/share/glib-2.0/schemas/10_gnome-settings-daemon.gschema.override
/usr/share/glib-2.0/schemas/10_gnome-shell.gschema.override
/usr/share/glib-2.0/schemas/10_gnome-system-log.gschema.override
/usr/share/glib-2.0/schemas/10_gsettings-desktop-schemas.gschema.override
/usr/share/glib-2.0/schemas/10_libgtk-3-common.gschema.override
/usr/share/glib-2.0/schemas/10_ubuntu-settings.gschema.override
/usr/share/glib-2.0/schemas/20_ubuntu-gnome-default-settings.gschema.override
$ cat /usr/share/glib-2.0/schemas/10_gnome-settings-daemon.gschema.override
[org.gnome.desktop.wm.keybindings]
switch-input-source=['<Super>space']
switch-input-source-backward=['<Shift><Super>space']
ওভাররাইড ফাইলগুলি ব্যবহারের উদাহরণ, উবুন্টু লাইভ সিডি কীভাবে কাস্টমাইজ করবেন? (5. কাস্টমাইজেশন 2: পটভূমি এবং থিম)।
লক ফাইল
বর্তমানে, ডকনফ কেবল প্রতি-কী লকিং সমর্থন করে, কোনও সাব-পাথ লক নেই। ব্যবহারকারীর সংজ্ঞায়িত মানগুলি এখনও এতে সংরক্ষণ করা user-db
হবে তবে অ্যাপ্লিকেশনগুলিতে কোনও প্রভাব ফেলবে না। dconf / gsettings locked লক করা কীগুলির পরিবর্তে ডিফল্ট মানগুলি দেয় returns লক ফাইলগুলি সংরক্ষণ করা হয় db.d/locks/
। উদাহরণ:
$ cat /etc/dconf/db/gdm.d/locks/00-upstream-settings-locks
/org/gnome/desktop/a11y/keyboard/enable
/org/gnome/desktop/background/show-desktop-icons
/org/gnome/desktop/lockdown/disable-application-handlers
/org/gnome/desktop/lockdown/disable-command-line
/org/gnome/desktop/lockdown/disable-lock-screen
/org/gnome/desktop/lockdown/disable-log-out
/org/gnome/desktop/lockdown/disable-printing
/org/gnome/desktop/lockdown/disable-print-setup
/org/gnome/desktop/lockdown/disable-save-to-disk
/org/gnome/desktop/lockdown/disable-user-switching
...
কার্যকর চালানোর জন্য লক সংশোধন করার পরে:
sudo dconf update
একটি ভাল শোকেস: dconf সেটিংস: ডিফল্ট এবং লকস
গ্লোবাল সেটিংস পরিবর্তন করা হচ্ছে
সম্পাদনা করার জন্য gsettings
/ এর জন্য ডিফল্ট । পরিবর্তন করতে , একটি নতুন ওভাররাইড ফাইল লিখুন এবং স্কিমাগুলির পুনরায় সংকলন করুন।dconf-editor
user-db
system-db
আমি এটি কাজ করতে পারি না:
sudo su gdm -c 'gsettings ...'
উভয় উত্তর এখানে নেই ডিফল্ট / গ্লোবাল জিনোম পছন্দসমূহ (জিনোম 3) সেট করুন এটি পুরানো প্রকাশের জন্য হতে পারে।