Я пытаюсь создать приложение для переключения макета вашей XFCE4-Panel между 3 макетами. Я применил эти макеты и скопировал XML-файл, где Xfconf хранит свою конфигурацию для панели.
Основная идея заключалась в том, что я мог просто удалить старый файл и скопировать новый. Только это не сработало. Кажется, что-то мешает мне изменить файлы XML без использования xfconf-query
. Я мог бы просто сбрасывать панели каждый раз, позволить сценарию установить значения, как они должны быть, и перезапустить панель, но файлы конфигурации немного велики, чтобы сделать все это (у меня также есть несколько проблем с содержимым панели при использовании xfconf-query
).
В общем, я хочу знать, есть ли способ просто применить конфигурацию всего файла XML. Будь то уничтожение некоторых процессов и быстрое копирование файлов или использование чего-то, что автоматически анализирует файл XML и устанавливает все значения с помощью xfconf-query
. Я использую Python (в сочетании с Bash), если кто-то знает какой-то класс, который может это сделать.
Я нашел следующее, чтобы работать, но это требует перезапуска панели, что приводит к короткому мерцанию:
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-файл и применить их в одном пакете. Извините, ничего не могу с этим поделать.