Я протестировал сохранение вашего образца CSS-файла в файл emacs-zufall.css
который я импортировал из локально модифицированного файла gtk.css
используя
@import url("apps/emacs-zufall.css");
и это сработало: мой менубар превратился в психоделический зеленый цвет с черным текстом.
Я предполагаю, что ваш emacs даже не читает файл в том месте, где вы его создали. Расположение зависит от названия темы. Я использую тему Orion
и Emacs пытается загрузить чтение gtk.css
используя путь
~/.local/share/themes/Orion/gtk-3.0/gtk.css
и если не получится, то от
~/.themes/Orion/gtk-3.0/gtk.css
Самый простой способ увидеть это, просто отследить системные вызовы. Если вы используете Linux, вы можете запустить
$ strace -o strace.log emacs &
и ищите строковые themes
в strace.log
используя ваш любимый пейджер или редактор (например, emacs
!). Выводов много, но вы можете быстро найти путь, используя эту строку поиска (чтобы соответствовать попыткам найти файл темы). Вот что я нашел в своем выводе strace
когда временно переместил локально измененный каталог темы:
access("/home/foof/.local/share/themes/Orion/gtk-3.0/gtk.css", F_OK) = -1 ENOENT (No such file or directory)
access("/home/foof/.themes/Orion/gtk-3.0/gtk.css", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/share/themes/Orion/gtk-3.0/gtk.css", F_OK) = 0
Если вы видите похожий результат ENOENT
указывающий на ваши emacs
и у вас другое мнение о том, где искать файлы CSS, вы можете:
скопируйте тему в локальный каталог и сделайте необходимые изменения:
$ mkdir -pv ~/.local/share/themes/Orion
$ cp -ai /usr/share/themes/Orion/gtk-3.0 ~/.local/share/themes/Orion/
добавьте оператор @import в локально модифицированный файл gtk.css
:
@import url("apps/emacs.css");
и создайте или убедитесь, что файл apps/emacs.css
существует в ожидаемом месте с желаемыми изменениями.
Не забудьте запустить emacs
с помощью командной строки, чтобы увидеть возможные ошибки, связанные с CSS. По моему опыту, кеширование тем отсутствует, поэтому было возможно открыть несколько приложений emacs с разными настройками темы, что противоречит ответу связанного суперпользователя; но это может быть потому, что я не использую настольную систему Gnome (KDE - мой выбор).
Если вы используете другую операционную систему, то должна быть другая утилита для отслеживания системных вызовов. OS X и, возможно, другие системы BSD используют DTrace и т.д. Вы можете также рассмотреть возможность запуска emacs в режиме отладчика, если не можете найти, как отслеживать системные вызовы в вашей системе, хотя это гораздо более хлопотно.