LINUX.ORG.RU

Emacs не видит темы

 


1

2

Емакс не видит темы, находящиеся в подкаталогах относительно пути ~/.emacs.d/themes/ - указанного в файле инициализации (init.el).

;; директория для тем оформления
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/")
;; загрузка темы оформления
(load-theme 'solarized t) 

т.е. если сваливать все темы непосредственно в /themes/, то всё подхватывает как надо, но стоит только раскидать темы по каталогам:
/darkburn/
/ample/
/monokai/
/solarized/
etc. Как сделать рекурсивно? Как сделать правильно?
GNU Emacs 25.2.1

Как сделать правильно?

Добавить поддиректории?

(defun subdirectories (dir)
  (let (subdirs)
    (dolist (entry (directory-files dir t nil t))
      (when (and (not (string-suffix-p "." entry))
                 (not (string-suffix-p ".." entry))
                 (file-directory-p entry))
        (push entry subdirs)))
    subdirs))

(setf custom-theme-load-path
      (append (subdirectories "~/.emacs.d/themes/")
              custom-theme-load-path))
theNamelessOne ★★★★★
()
Ответ на: комментарий от theNamelessOne

Спасибо, добрый человек! Намаялся я с этим. Получилось теперь!

Dreamdrawer
() автор топика

т.е. если сваливать все темы непосредственно в /themes/, то всё подхватывает как надо, но стоит только раскидать темы по каталогам: /darkburn/, /ample/, /monokai/, /solarized/

Как сделать правильно?

Использовать диспетчер пакетов, разумеется. Вы не рассказали, какой у вас дистрибутив ГНУ, но в Дебиане из вышеперечисленного уже́ наличествуют elpa-solarized-theme и elpa-solarized-theme, darkburn и ample есть на Мельпе, можно поставить в домашний каталог.

Zmicier ★★★★★
()
Ответ на: комментарий от Zmicier

Вы не рассказали, какой у вас дистрибутив ГНУ

Манжаро.

Использовать диспетчер пакетов, разумеется.

Через диспетчер пакетов всё как надо работает, без нареканий. Но. Во-первых, там не все темы присутствуют, которые мне нужны. Во-вторых, темы предполагается модифицировать, и нежелательно, если менеджер пакетов ненароком затрёт все сделанные изменения. Эксперементировать комфортнее в отдельном каталоге, с директориями, имеющими понятные имена.

Dreamdrawer
() автор топика
Ответ на: комментарий от Dreamdrawer

Во-вторых, темы предполагается модифицировать, и нежелательно, если менеджер пакетов ненароком затрёт все сделанные изменения.

Модифицируйте на здоровье. А для того, чтобы диспетчер пакетов ненароком не затер вашу версию ванильной, ее надо *переименовать*. То есть solarized остается solarized’ом, а ваша темка должна называться как-то иначе, в простейшем случае «solarized-dreamdrawer».

Zmicier ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.