Я пытаюсь создать приложение для переключения макета 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-файл и применив их в одном пакете. Не могу вам помочь с этим, извините.