Анализ ~ / .Xresources выполняется при запуске сервера X11 в рамках сценариев инициализации сеанса X11. Если вы редактируете ~ / .Xresources, вам нужно использовать xrdb (1) для загрузки нового файла, чтобы сообщить работающему серверу X11 об изменениях.
ВНИМАНИЕ, что xrdb (1) по умолчанию заменяет текущие ресурсы, а не перезаписывает их, и чтение из stdin является значением по умолчанию, поэтому не вызывайте его без параметров! Итак, вы хотите использовать
xrdb -merge ~/.Xresources
для загрузки измененного файла. Вы можете использовать
xrdb -query
чтобы посмотреть, что уже загружено.
Что касается Mac, я не знаю, что, где и когда, возможно, смотрит на ~ / .Xresources; потому что X11 - это программа, запускаемая для использования дисплея, а не мастер всего графического, она может быть довольно минимальной и не делать этого по умолчанию. xrdb -query поможет.
Одна вещь, которая может помочь, - вместо этого установить XAPPLRESDIR в качестве экспортируемой переменной оболочки; где-то в MacOS есть какая-то ручка для установки переменных окружения как объекта сеанса, видимого для всех программ без попадания в пользовательскую оболочку, но я забыл, где (нашел его при настройке SSH Keychain один раз) XAPPLRESDIR - переменная переменной env, указывающая на собственные переопределения ресурсов приложения пользователем. Это значение должно быть каталогом (например, $ HOME / share / xapps /). Каждое приложение X11, связанное с библиотекой X Intrinsics ( libXt ), во время инициализации X11 будет искать в этом каталоге файлы, соответствующие имени класса приложения. Таким образом, вам не нужно беспокоиться о загрузке ресурсов и т. Д .; отредактируйте файл приложения, запустите программу.
Итак, ресурсы для xterm помещаются в файл XTerm и т. Д .; чтобы узнать класс произвольной программы, вы можете использовать xprop (1) без аргументов, щелкнуть в целевом окне, когда указатель является перекрестием, а затем посмотреть на стандартный вывод из xprop для свойства WM_CLASS. Для некоторых старых инструментов, таких как xterm, вы также можете использовать editres (1), чтобы иметь возможность интерактивно просматривать виджеты запущенного приложения X с помощью удаленной проверки; есть пункт меню Get Tree, позволяющий вам щелкнуть по целевому приложению и другой пункт меню, чтобы показать имена классов.
Мой файл ~ / share / xapps / XTerm сам устанавливает цвет фона меню на отвратительный желтый; таким образом, когда я управляю- -click в XTerm, я сразу узнаю, что-то не так, и мои ресурсы не были загружены.
#ifdef COLOR
XTerm.SimpleMenu*background: yellow
#endif