How to compare dconf files of two computers and intelligently merge them with `dconf dump` or `gsettings`

I have several computers running MATE desktop and I want to merge their setup (and keep them in sync afterwards). With dconf dump / I can get configuration details, but comparing the output (with meld) is hopeless as the order in which entries are presented is not the same, thus a manual, intelligent merge is not feasible.

Alternatively, I can use gsettings list-recursively which gives a list which can be sorted and then compared, but I do not see how to write back the result (there is no command like dconf load for this file format).

I see possible approaches:

  • sort the output of dconf dump (there should be some utilities, but I could not find any)
  • a gsettings write-many function, as an inverse of gsettings list-recursively)
  • convert gsettings list into the dconf dump format
  • sort the dconf dump list.

What is easiest with existing tools? considering the discussion and here my goal of keeping configurations in sync may not be very easy.

As examples, I include short pieces of the two list formats I currently have:

gsetting produces (extract):

org.gnome.rhythmbox.podcast-source paned-position 180
org.gnome.rhythmbox.podcast-source sorting ('Feed', true)
org.blueman.transfer opp-accept false
org.blueman.transfer shared-path ''
org.mate.Caja.Sendto last-compress 0
org.mate.Caja.Sendto last-medium ''
org.gnome.evolution-data-server.calendar contacts-reminder-interval 15

and dconf dump (different extract):

lock-after-screensaver=uint32 0

задан 21 November 2020 в 12:09

0 ответов

Другие вопросы по тегам:

Похожие вопросы: