Загрузить конфигурацию из XML (Xfconf)

Загрузить конфигурацию из XML (Xfconf)

Я пытаюсь создать приложение для переключения макета XFCE4-Panel между 3 макетами. Я применил эти макеты и скопировал XML-файл, в котором Xfconf хранит свою конфигурацию для панели.
Общая идея заключалась в том, что я мог бы просто удалить старый файл и скопировать поверх него новый. Только это не сработало так хорошо. Кажется, что-то мешает мне изменять XML-файлы без использования xfconf-query. Я мог бы просто сбрасывать панели каждый раз, позволять скрипту устанавливать значения такими, какими они должны быть, и перезапускать панель, но файлы конфигурации слишком велики для всего этого (у меня также возникают некоторые проблемы с содержимым панели при использовании xfconf-query).

Так что в основном я хочу узнать, есть ли способ просто применить конфигурацию всего XML-файла. Будь то путем завершения некоторых процессов и быстрого копирования файлов, или с помощью чего-то, чтоавтоматическианализирует XML-файл и устанавливает все значения с помощью xfconf-query. Я использую Python (в сочетании с Bash), если кто-то знает какой-то класс, который может это сделать.

решение1

Я обнаружил, что следующее работает, но требует перезагрузки панели, что приводит к короткому мерцанию:

killall xfconfd
cp my-cfg-0.xml ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
xfce4-panel -r

или как однострочный код для Python:

bash -c 'killall xfconfd && cp my-cfg-0.xml ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml && xfce4-panel -r'

Перезапуск панели также приведет к перезапуску демона xfconfd.

Это работает, но лучшим подходом было бы использовать , xfconf-queryтак как это не вызывает мерцания. Вам просто нужно будет выяснить правильные пары путь-значение, проанализировав XML-файл и применив их в одном пакете. Не могу вам помочь с этим, извините.

Связанный контент