why cant emacs 24 find a custom theme I added?

萝らか妹 提交于 2019-12-03 10:20:09

问题


My entire emacs setup is here

I loaded my init-theme.el file here

And supposedly that should make the darkclean theme available.

But when I type M-x load-theme TAB the darkclean theme is not listed.

How can I register it for Emacs 24?


回答1:


If you install themes via elpa / package.el you'll notice that you need to add each theme folder into your custom-theme-load-path - this is a bit of a pain to do manually, especially when you take into account upgrades will create a new folder, e.g. 0.1.0 -> 0.1.2 will be a new folder inside your elpa folder.

Assuming you've installed your elpa packages into ~/.emacs.d/elpa/ add this script to your ~/.emacs.d/init.el

(require 'dash)
(require 's)

(-each
   (-map
      (lambda (item)
      (format "~/.emacs.d/elpa/%s" item))
   (-filter
      (lambda (item) (s-contains? "theme" item))
      (directory-files "~/.emacs.d/elpa/")))
   (lambda (item)
      (add-to-list 'custom-theme-load-path item)))

You'll need dash.el and s.el (available from elpa.)




回答2:


init-themes has commented out the load path.

I have this (add-to-list 'custom-theme-load-path "~/.emacs.d/themes") and i think it found all my themes with M-x load-theme, enter then hit tab to see all the themes.

there was no search in the github for your repo, so i couldn't grep to see if you are doing it elsewhere. Also is your darkclean compatible with a 24 theme?

Edit: 1

actually i thought of another debug technique to rule out it being darkclean vs setup. put into your directory the solarized theme and if you don't see it in your load-theme you know it's you and not a theme, as solarized worked for me this way on emacs 24.

I don't enjoy it, and prefer wombat actually.




回答3:


I m new to emacs and wanted to add some custom themes and create my own as well.

first add this

(add-to-list 'custom-theme-load-path "~/.emacs.d/themes")

then add any new theme to that folder. This first did not work and when i used load-theme the themes in ~/.emacs.d/thems where not loaded.

the documentation says:

Each theme file is named THEME-theme.el, where THEME is the theme name.

so renaming darklean.el to darkclean-theme.el did the trick




回答4:


I think you need to set custom-theme-directory and then include the sha256 hash in custom-safe-themes to remove the confirmation prompt everytime you load it. To insert the sha256 hash, you can use the customize interface, as then it is calculated for you. To enable the theme, you will have to include it in custom-enabled-themes.

Below is an example from my setup:

(custom-set-variables
 ;; ...
 '(custom-enabled-themes (quote (dark-emacs)))
 '(custom-safe-themes (quote ("<SHA256 hash goes here>" default)))
 '(custom-theme-directory "~/.emacs.d/themes/")
)

To see my actual setup, take a look at the following links:

  • my custom file
  • my dark theme


来源:https://stackoverflow.com/questions/9840558/why-cant-emacs-24-find-a-custom-theme-i-added

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!