3
votes

Using emacs-24.1, how can we extend/customize existing color-theme in emacs ? I tried doing this

(custom-theme-set-faces
'tango
'(ido-first-match ((t (:foreground "008800" :weight bold))))

It worked fine when I had tango loaded. But when I put this in .emacs.d/init.el file, it failed because tango was not loaded by then and emacs complained of undefined tango. This certainly is not going to help as I tend to change theme regularly using (load-theme ...). What I'm looking at is some kind of hook to run when the theme is loaded. Is it possible ?

Ofcourse, I can modify tango-theme.el file but that is not my goal. I want to extend the existing theme. I tried this in my init file

(load-theme 'tango-dark)

    (custom-theme-set-faces
    'tango-dark
    '(ido-first-match ((t (:foreground "#00cdef" :weight bold))))

(deftheme tango)

    (custom-theme-set-faces
    'tango
    '(ido-first-match ((t (:foreground "#008800" :weight bold))))

This worked fine for tango theme.. But tango-dark is show the same color as tango. So, how to customize existing themes even before loading them or set the custom faces at the time of loading the theme.

2

2 Answers

2
votes

When I want to define a new theme, I modify a given theme, and afterwards I call (color-theme-print). This function will generate a function that helps to restore my modified color theme.Put/include the generated function in .emacs.

color-theme-print is used to generate new color themes.

1
votes

The command you are looking for is eval-after-load.