2

У меня есть ~/.Xdefaults, у которого есть определенная цветовая тема, определенная для Xorg, и это работает. У меня есть ~/.XdefaultsNew, указывающий альтернативную цветовую тему. Xorg запускается и загружается ~/.Xdefaults что правильно. После запуска некоторых приложений я запускаю

xrdb ~/.XdefaultsNew

Это переопределяет все мои X-ресурсы на новые определенные значения (правильно). Если я открою новое окно, тема будет видна правильно. Однако все ранее открытые окна сохраняют оригинальную тему.

Есть ли способ заставить X «перефразировать» все окна, которыми он управляет, с загруженными в данный момент ресурсами X?

1 ответ1

2

Это возможно для приложений, которые реализуют протокол Editres и поддерживают запросы SetValues (см. editres(1) для описания уровня пользователя и /usr/include/X11/Xmu/EditresP.h для описания уровня программиста).

Вы можете посмотреть протокол Editres в действии, запустив программу editres . В меню выберите «Команды / Получить дерево» и щелкните окно редактирования, затем выберите «Дерево / Выбрать виджет в клиенте» и снова щелкните где-нибудь в окне редактирования. Выберите «Commands / Show Resource Box», нажмите «background» в списке обычных ресурсов и введите название цвета, где написано «Enter Resource Value», затем нажмите «Apply» и посмотрите, как часть окна editres меняет цвет.

К сожалению, хотя большинство приложений, использующих ресурсы X, понимают протокол Editres, лишь немногие реализуют часть SetValues. Это хорошая идея, которую практически никто не удосужился реализовать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .