EmacsLisp library <tt>[[color-theme.el]]</tt> provides many predefined color themes
for your use, and you can easily define additional themes.  

The library has not really been well maintained since 2009, but you can use it with any Emacs version since Emacs 20.

[new:DrewAdams:2019-04-04 19:23 UTC]
The version of <tt>[[color-theme.el]]</tt> on the wiki (6.6.1) is a quick fix to the last version (6.6.0) maintained by XavierMaillard, which no longer worked starting with Emacs 26 because it still used `make-variable-frame-local'.  Beyond <tt>[[color-theme.el]]</tt> itself, please refer to http://www.nongnu.org/color-theme/ for all other info (e.g. ##README## file).
[new]

If you look at the themes provided via [[ELPA]] and [[MELPA]], you'll see that they all implemented using [[CustomThemes|custom themes]], not color themes. If you are going to write your own theme, you might therefore prefer to write a /custom/ theme instead of a /color/ theme.

Vanilla Emacs CustomThemes are similar to color themes, but ''they '''do not replace''' color themes'' -- [[CustomThemes#ComparedToColorThemes|each approach has its advantages]].  Custom themes that have been based on some color themes can be found [https://github.com/emacs-jp/replace-colorthemes|here].

See the color-theme web page at http://www.nongnu.org/color-theme for how to get
started with ##color-theme.el##.
For questions about color-theme, see ColorThemeQuestions.  








[:InstallingAColorTheme]
== Installing Library Color Theme ==

[See http://www.nongnu.org/color-theme for the latest information.]

Put the file <tt>[[color-theme.el]]</tt> and the folder ##themes## (with the files ##color-theme-example.el## and ##color-theme-library.el##) in a directory on your LoadPath. The main function to
use is `color-theme-select'. It creates the Color Theme Selection
buffer that allows you to test the themes before choosing one.

    M-x load-library RET color-theme RET
    M-x color-theme-select RET

The easiest way is to install a chosen color theme is to require the
file and call the appropriate color theme function. Put the
appropriate code in your InitFile:

    (require 'color-theme)
    (color-theme-initialize)
    (color-theme-robin-hood)

If it doesn't seem to work, try adding one more line:

   (require 'color-theme)
   (setq color-theme-is-global t)
   (color-theme-robin-hood)

If you like putting globals in ##default.el## and local customizations in
your InitFile then add the `require' to ##default.el## and use this in your InitFile:

     (eval-after-load "color-theme" '(color-theme-robin-hood))

Use `?' in the Color Theme Selection buffer to find the name of
the appropriate color theme function.

If the colors seem to get reset (such as background color changing to white on startup or when creating a new frame), consider checking ColorsAndKde.







[:ChooseFromAMenu]
== Choosing a Color Theme from a Menu ==

Choosing a color theme by name is only convenient if you already know what color scheme a given name represents.  After installing Color Theme, you can pick and choose from a menu.  This menu can be accessed via `M-x color-theme-select'.






[:ChooseByCycling]
== Choosing a Color Theme or Custom Theme by Cycling ==

An alternative way to choose a theme is to cycle among a set of themes, applying each in turn, and stop when you find one you like -- '''''WYSIWYG'''''.

Here are four alternative ways to cycle among color themes in a list. For illustration, they all use the same list.

  (require 'color-theme)
  (setq my-color-themes (list 'color-theme-billw 'color-theme-jsc-dark 
                              'color-theme-sitaramv-solaris 'color-theme-resolve
                              'color-theme-classic 'color-theme-jonadabian-slate
                              'color-theme-kingsajz 'color-theme-shaman
                              'color-theme-subtle-blue 'color-theme-snowish
                              'color-theme-sitaramv-nt 'color-theme-wheat))






[:DoReMiColorThemes]
[:doremi-color-themes]
[:doremi-custom-themes]

=== Do Re Mi: Cycling Color Themes and Custom Themes ===

You can cycle among color themes or custom themes using library '''DoReMi'''.  This feature is part of library <tt>[[doremi-cmd.el]]</tt>.

Use command `##M-x doremi-color-themes+##' or `##M-x doremi-custom-themes+##', then use the up and down arrow keys and/or the mouse wheel to cycle among themes. The name of each newly applied theme is displayed in the echo area. You can customize [[option]]s `doremi-color-themes' and `doremi-custom-themes', which is the set of color or custom themes to cycle among.  By default, ''all'' color or custom themes are included. 

You can use these commands to preview themes: use `C-g' to cancel changes and return to what you had before.

* For color themes, `C-g' is equivalent to picking pseudo-theme ##[Reset]##, which also means that sometimes not everything is restored, but most is. 

* Unfortunately, Emacs custom themes ''cannot'' be undone this way, to return to a non-theme state prior to applying a theme. For ##`doremi-custom-themes+'##, `C-g' just disables each of the themes that you cycled through.  This does not, however, restore any non-theme customizations in effect before cycling. The appearance of the last theme applied remains, for the existing frames, even though that theme has been disabled and will have no effect on new frames etc.

Also worth mentioning, if you define your own themes, are the commands in library <tt>[[doremi-frm.el]]</tt> that let you fine-tune [[frame]] and [[face]] colors incrementally, using the arrow keys or mouse wheel. They give you an easy way to get exactly the color scheme you want before saving it as a color theme. There are also commands to convert and tweak colors (for example, obtain a color that is slightly lighter, redder, etc. than a given color). See '''[[DoReMi|Do Re Mi]]'''.






[:IciclesColorThemes]
=== Icicles: Completion and Cycling of Color Themes and Custom Themes ===

You can use '''[[Icicles]]''' command `icicle-color-theme' or `icicle-custom-theme' to cycle among color themes or Emacs custom themes, respectively. This functionality is similar to that provided by [[#DoReMiColorThemes]] (above), but you can also ''complete'' the color-theme names, which means also that you can narrow the set of themes that you cycle among.  (You can also sort the set in various ways.)

Just as for the corresponding DoReMi commands, `C-g' undoes your changes.  Options `icicle-color-themes' and `icicle-custom-themes' are similar to options `doremi-color-themes' and `doremi-custom-themes', respectively -- customize them to define the lists of themes to choose from (default: all themes).  See '''[[Icicles]]'''. 


=== Cycling by Repeating a Command ===

Repeat command `my-theme-cycle' (bound here to ##`[F12]'##) to cycle among themes.

    (defun my-theme-set-default () ; Set the first row
      (interactive)
      (setq theme-current my-color-themes)
      (funcall (car theme-current)))
     
    (defun my-describe-theme () ; Show the current theme
      (interactive)
      (message "%s" (car theme-current)))
     
   ; Set the next theme (fixed by Chris Webber - tanks)
    (defun my-theme-cycle ()		
      (interactive)
      (setq theme-current (cdr theme-current))
      (if (null theme-current)
      (setq theme-current my-color-themes))
      (funcall (car theme-current))
      (message "%S" (car theme-current)))
    
    (setq theme-current my-color-themes)
    (setq color-theme-is-global nil) ; Initialization
    (my-theme-set-default)
    (global-set-key [f12] 'my-theme-cycle)

: -- JakubHozak

(note: Make the following changes to allow this code to work when (setq my-color-themes color-themes). )


    (defun car-theme () ;figure out if we need car or caar
      (interactive)
      (cond
       ((consp (car theme-current))
        (caar theme-current))
       (t
        (car theme-current))))

    (defun my-theme-set-default () ; Set the first row
      (interactive)
      (setq theme-current my-color-themes)
      (funcall (car-theme)))

    (defun my-describe-theme () ; Show the current theme
    (interactive)
    (message "%s" (car-theme)))

    ; Set the next theme (fixed by Chris Webber - tanks)
    (defun my-theme-cycle ()		
    (interactive)
    (setq theme-current (cdr theme-current))
    (if (null theme-current)
        (setq theme-current my-color-themes)
        (funcall (car-theme)))
    (message "%S" (car-theme)))
    
    (setq theme-current my-color-themes)
    (setq color-theme-is-global nil) ; Initialization
    (my-theme-set-default)

== Installing a Color Theme for One Buffer Only ==

On GNU Emacs featuring [http://www.gnu.org/software/emacs/manual/html_node/elisp/Face-Remapping.html Face-Remapping] (that is versions >= 23) you can use [https://github.com/vic/color-theme-buffer-local/blob/master/color-theme-buffer-local.el color-theme-buffer-local] to install theme faces on a per buffer basis.

Here's how to do this interactively.

   M-x color-theme-buffer-local

Or you can use it programmatically to install a color theme based on a major mode, for example:

   (require 'color-theme-buffer-local)
   (add-hook 'java-mode 
     (lambda nil (color-theme-buffer-local 'color-theme-robin-hood (current-buffer))))

== Installing a Color Theme for One Frame Only ==
You can do this by using the variable `color-theme-is-global' which
determines whether a color theme is installed on all frames or not.
Here's how to do this interactively.

    M-x set-variable RET color-theme-is-global nil
    M-x color-theme-blue-sea

A possible use for this variable is dynamic binding. Here is a larger
example to put in your ~/.emacs; it will make the Blue Sea color theme
the default used for the first frame, and it will create two additional
frames with different color themes.

    (require 'color-theme)
    ;; set default color theme
    (color-theme-blue-sea)
    ;; create some frames with different color themes
    (let ((color-theme-is-global nil))
        (select-frame (make-frame))
        (color-theme-gnome2)
        (select-frame (make-frame))
        (color-theme-standard))

== Installing a color Theme Depending on the Display ==
Use display-color-cells find how many colors are supported. Note that
on X, even though all RGB values are supported, each application gets
allocated a number of colors it may use. Perhaps that is the reason
the function returns 64 on my system even though it seems that it
supports a lot more.

    (if ((display-color-cells) 20)
        (color-theme-tty-dark)
        (color-theme-goldenrod))
	
== Installing a Color Theme Depending on the Window System ==
Use `window-system' to determine whether or not you are in a terminal,
or a windowing system such as X11.

    (if window-system
        (color-theme-subtle-hacker)
	(color-theme-hober))

`window-system' is nil for a character-based terminal, 'x' for X11, 'mac'
for mac, etc.

Fixed: The (window-system) to window-system since it's a variable and not a function shouldn't have the ().

Question: Any idea how to detect if emacs has been started as a daemon? I think we need logic like:

    (if window-system or started-as-daemon
        (color-theme-subtle-hacker)
	(color-theme-hober))

The following code in your .emacs file will test whether each frame is opened in a GUI or console and select according to the colors you select for each in the variable, color-theme-choices (based on the comments by Pierre on [http://emacs-fu.blogspot.com/2009/03/color-theming.html Emacs-Fu]):

    ;; select theme - first list element is for windowing system, second is for console/terminal
    (setq color-theme-choices '(color-theme-deep-blue color-theme-standard))

    ;; test for each frame or console
    (require 'cl)	
    (lexical-let ( (cols color-theme-choices) )
      (defun test-win-sys (frame)
        (let ( (color-theme-is-global nil) )
          (select-frame frame)
          (eval (append '(if (window-system frame)) 
     		    (mapcar (lambda (x) (cons x nil)) cols))))))

    ;; hook on after-make-frame-functions
    (add-hook 'after-make-frame-functions 'test-win-sys)
 

== Installing a Color Theme with multi-tty ==
I want a color theme to be selected any time I open an X frame, but not when I open a TTY frame. With multi-tty, this is selected on a frame-by-frame basis. So I use a hook:

 (add-hook 'after-make-frame-functions
           (lambda (frame)
             (set-variable 'color-theme-is-global nil)
             (select-frame frame)
             (if window-system
                 (color-theme-robin-hood)
               (color-theme-tty-dark))))

== Changing Fonts ==
Usually the color themes don't change fonts. Please let me know if they do.
That is a bug. If you want to install a color-theme and then switch font-family and font-size to something new, here is an example of how to do it:

    (let ((spec '((t (:family "neep alt" :height 200)))))
        (mapc (lambda (face)
            (face-spec-set face spec)
            (put face 'face-defface-spec spec))
            '(default menu)))

If you use `set-face-font' instead, you will note that on subsequent frames, your settings may not take effect. (Actually I haven't really investigated this.)


: It seems that some color-theme-* function destory the 'default face font when the 'default face uses fontset specification. In other words, (face-attribute 'default :font) is not preserved. To handle this, insert following macro in your code:

        (defmacro save-font-excursion (face &rest body)
          "Save the :font property of given FACE during the execution of BODY."
          (declare (indent 1) (debug t))
          `(let ((oldfont (face-attribute ,face :font)) ret)
             (setq ret (progn ,@body))
             (or (string= oldfont (face-attribute ,face :font))
                 (set-face-attribute ,face nil :font oldfont))
             ret))

: And, try something like:

      (save-font-excursion 'default
        (color-theme-emacs-nw))

: Note that if you do not use fontset spec, save-font-excursion helps less. -- CinSK

== Mix and Match ==
Take a look at ColorThemeMaker.

= Color Theme Session =
Following code will allow you to setup a mechanism of saving and
retrieving the last session's settings. This depends on two files in
your home directory, .themesettings and .curTheme. The first is just
an elisp file which is loaded when Emacs starts. It is primarily used
for two settings: theme-default and theme-load-from-file.

Example 1:

    (setq theme-load-from-file t)

Example 2:

    (setq theme-default 'color-theme-gnome2)

This always loads the default theme you provided.
Add the following code to your ~/.emacs. This assumes that you have
(require 'color-theme) somewhere before that:

    (defun my-onload()
        (setq filename (concat (expand-file-name "~") "/.themesettings"))
    (if (file-exists-p filename)
        (progn
            (load-file filename)
            (if (equalp theme-load-from-file t)
                (progn
                    (setq filename 
                        (concat (expand-file-name "~") "/.curTheme"))
                    (if (file-exists-p filename)
                        (progn
                            (message "selecting theme from .curTheme")
                            (load-file filename)
                            (color-theme-install (my-color-theme))
                 )))
                (funcall theme-default)
        ))
        (message "selecting theme from color-theme-standard")
    (color-theme-install(color-theme-standard)
    )))
    
    (defun my-kill-saves()
        (if (equalp theme-load-from-file t)
            (progn
                (color-theme-print)
                (write-file (concat (expand-file-name "~") "/.curTheme"))
    )))
    
    (add-hook 'after-init-hook 'my-onload)
    (add-hook 'kill-emacs-hook 'my-kill-saves)
    

Please note that I have used this only on XEmacs. --GirishB

The above code should change the filenames to be in one place and give some indication of what the files are for.  Otherwise a year later you will be scratching your head
trying to figure out what program put those files there.  Try sticking them in a directory like ~/.my-emacs-extensions.  If you don't believe that this is important, look at your home directory and tell me what program put each file there!  -- gadfly

== Having the Color Theme Selection buffer always present ==
Put the following lines to your ~/.emacs file:

    (load-library "color-theme")
    (color-theme-select)

Assuming you have color-theme package in load-path.

== Day/night toggling ==
You can switch to dark mode and back again with the following in your ~/.emacs:

    (defun toggle-night-color-theme ()
      "Switch to/from night color scheme."
      (interactive)
      (require 'color-theme)
      (if (eq (frame-parameter (next-frame) 'background-mode) 'dark)
          (color-theme-snapshot) ; restore default (light) colors
        ;; create the snapshot if necessary
        (when (not (commandp 'color-theme-snapshot))
          (fset 'color-theme-snapshot (color-theme-make-snapshot)))
        (color-theme-dark-laptop)))
    
    (global-set-key (kbd "<f9> n") 'toggle-night-color-theme)

The function assumes that default `background-mode' is `light'.
You may wish to modify the name of [dark] theme and the key binding.

== Day/night toggling based on time of day ==
You can also automatically change your color theme based on the time of day using [https://github.com/hadronzoo/theme-changer theme-changer.el]. In your ~/.emacs, make sure your location is set:

    (setq calendar-location-name "Dallas, TX") 
    (setq calendar-latitude 32.85)
    (setq calendar-longitude -96.85)

And then specify the day and night color themes:

    (require 'theme-changer)
    (change-theme 'color-theme-solarized-light 'color-theme-solarized-dark)

Note: you may need to add the theme-changer.el path to your loadpath. For
example:

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

== More Color Themes ==

High contrast zenburn theme: [https://github.com/edran/hc-zenburn-emacs hc-zenburn-emacs] -- edran

I added my tweaked port of ColorThemeInkpot from VIM. -- Per Vognsen

DanielBrockman links to another color-theme on his page.
I will add it for the next release. -- zeDek. 

I've put an updated version of DanielBrockman's theme ('zenburn') on the wiki: ColorThemeZenburn.

I've posted the latest revision of [http://edward.oconnor.cx/elisp/color-theme-hober2.el color-theme-hober2]; it's quite a bit more fleshed out from when I submitted it to you. -- EdwardOConnor

Here's my [http://color-theme-select.heroku.com/#color-theme-dark-vee DarkVee] color theme -- vic

Alex rose to the Hello Kitty challenge and wrote PinkBliss.

I've attempted to clone the Blackboard theme from textmate [http://jdhuntington.com/paste/color-theme-blackboard.el here] -- JD Huntington

I have created a color theme based on Tango Palette. Lisp:color-theme-tango.el [http://danran.72pines.com/files/2008/04/emacs_tango.png (screenshot)] -- danran

[Lisp:color-theme-empty-void.el The Empty Void] - A dark theme that I created for myself, with subtle shades; easy on the eyes.

[new]
I created a color theme based on your color-theme-tango.el. I modified it a bit and added some faces for Gnus, org-mode, customize buffers, etc. You can find screenshots and installation instructions here : https://github.com/juba/color-theme-tangotango -- JulienBarnier

I've created color-theme-dirac, a nice (for me) pastel color theme on black background. It's available via git at http://github.com/nicodds/color-theme-dirac [http://github.com/nicodds/color-theme-dirac/raw/master/screenshot/color-theme-dirac.png (screenshot)] -- Domenico Delle Side

I have created a color theme based on the TextMate Mac Classic theme. It's stored in a git repo via http://github.com/jbw/color-theme-mac-classic along with a screenshot and install instructions. --jbw

A port of VIM's desert theme can be found [https://github.com/superbobry/color-theme-desert here]. Any comments / suggestions are welcome! -- superbobry

[new]
Live color theme screenshots at the [http://color-theme-select.heroku.com/ (color-theme-select)] web site (almost ~130 themes) -- vic

Bill Clementson has published his color theme: http://bc.tech.coop/ubuntu-config/elisp/color-theme-billc.el

Pomgranate Explosion, an elegant and soft color theme for GNU Emacs. Available at [https://github.com/bmarcot/color-theme-pomgranate-explosion https://github.com/bmarcot/color-theme-pomgranate-explosion].

[[monokai-theme.el]] is based on TextMate's monokai theme. Can anybody make it Emacs 24 deftheme and package.el compatible?

[new]
My take on Monokai for emacs: https://github.com/stafu/AnotherMonokai -- SM

[new]
Color theme I use daily. It's highly contrast black-purple theme. Lisp:color-theme-black-purple.el -- Anonymous

== History ==
The original color theme code was written by Jonadab the Unsightly
One.

= Installing a Random Color Theme =
Put this in your ~/.emacs:

    (funcall (car (nth (random (length color-themes)) color-themes)))

* http://www.litchie.net/programs/color-theme-random.html

== Saving a Color Theme in .Xresources ==

Given the name of a color theme, write out the .Xresources equivalent of the theme.  You would want to do this if you want to make Emacs start much faster than loading the theme from Lisp.

* Lisp:color-theme-x.el

Example usage:

    M-x color-theme-x RET hober RET
    C-u M-x color-theme-x RET classic RET ~/elisp/color-theme.el RET

After the generated X resource settings have been written out to your .Xresources file, you'll need run either xrdb -merge .Xresources or xrdb -load .Xresources (depending on the desired effect). You will have to restart your Emacs to have the new X resources take effect. 

[new:MathieuBasille:2010-03-16 14:50 UTC] Using GNU Emacs 23.1.1 (i486-pc-linux-gnu, GTK+ Version 2.18.2) of 2009-11-01 on raven, modified by Debian, I'm not able to use properly that package. It loads fine, but when I'm invoking one of the example commands, I get the following error message: 'assoc: Wrong type argument: listp, color-theme-classic', and the buffer *color-theme-xresources* is practically empty. Am I doing something wrong? -- MathieuBasille

I've forked and updated color-theme-x.el.  It's available in [http://marmalade-repo.org/packages/color-theme-x Marmalade] and on [https://github.com/ajsquared/color-theme-x GitHub] -- AndrewJohnson


== Saving a Color Theme in the Windows Registry ==

Lisp:color-theme-reg.el -- convert color-theme to win32 reg. by Kyle M. Lee, based on color-theme-x.

== Issues ==

* I get a nasty error (wrong-type-argument symbolp (list font-latex-doctex-documentation-face font-lock-preprocessor-face))
when I call up color themes to customize a frame that is displaying LaTeX code. The top of the call stack is 
 internal-get-lisp-face-attribute((list font-latex-doctex-documentation-face font-lock-preprocessor-face) :family #&lt;frame Emacs@lucy 0x2393db0&gt;)
  face-attribute((list font-latex-doctex-documentation-face font-lock-preprocessor-face) :family #&lt;frame Emacs@lucy 0x2393db0&gt;)
  color-theme-face-attr-construct((list font-latex-doctex-documentation-face font-lock-preprocessor-face) #&lt;frame Emacs@lucy 0x2393db0&gt;)
: The problem is that the current version does *NOT* support multiple inherited properties. A quick workaournd has been sent to David for testing purpose. As it is quite ugly and doesn't handle Xemacs, I won't post it here before working on it again. Please David, tell us if that worked for you. -- XavierMaillard

Any ideas what to do about this?

* ViperMode does not play well with color themes. It seems like the Viper mode forces the TextCursor color to be "black" if the background is anything other than "black". This basically makes the cursor almost invisible on dark backgrouds. Just FYI. Does anyone know of a fix for this? -- GirishB

:: I've seen similar problems on Windows where somehow the cursor color was always wrong for the first frame. I solved this by creating a new frame and deleting the old one in my .emacs on Windows. -- AlexSchroeder

:: Solved the problem by loading viper-mode after the color-theme call. That seems to fix the problem. It seems like viper basically remembers the last cursor color it knew and forces it down your throat no matter what. -- GirishB

[new:DrewAdams:2007-01-14 01:39 UTC]
:: I reported that bug in May 2006. It has been fixed recently in Emacs 22. See the thread "cursor-color frame parameter cannot equal background-color" in emacs-pretest-bug@gnu.org. This has nothing to do, per se, with color themes, BTW. -- DrewAdams
[new]

* Frame creation is slowed down a lot - it takes seconds to create a new frame when i've applied different color-themes before. The reason seems to be that a myriad of faces is defined, because each color themes defines some 50 faces, and they never get removed before a new face is applied. You can easily end up with 600 faces defined, and Emacs needs a lot of time to go through all of them when it creates a new frame.
Has anyone experienced similar issues? -- DavidReitter

* I get "Wrong type argument: symbolp, (link-visited info-xref)" with 2006-05-13 CVS emacs, with 2006-05-14 CVS color-theme.el. It isn't fixed by the other 'symbolp' fix, which is already included in the CVS. Any suggestion?
** I installed the CVS version of color-theme which fixed this (Emacs/22.0.92). - springfield

* New version of color-theme (6.5.4) doesn't work with stable emacs version (21.4).  Users will see this error:

&lt;code&gt;color-theme-backup-original-values: Symbol's function definition is
void: color-theme-filter&lt;/code&gt;

To fix the problem, open color-theme.el and change:

 <code>easy-menu-get-map(nil ("Tools") nil)
 easy-menu-add-item(nil ("Tools") "--")</code>

to:

 <code>easy-menu-get-map(nil ("tools") nil)
 easy-menu-add-item(nil ("tools") "--")</code>

Original help.gnu.emacs post: http://tinyurl.com/bgke3

--JasonDunsmore

[new]
This issue is fixed in the CVS.

[new]
I am running Ubuntu 6.06 (Dapper Drake) and emacs-snapshot seems to not play well with color-theme. When it loads, only the characters have the correct background color. The rest of the buffer has some default gray color. Emacs21 seems to work just fine. Has anyone else seen this? Any idea how to fix it?

[new]
Check out the [[ColorsAndKde]] page.

-McKayMarston

=== Themes for console/tty Display ===

How can I filter the themes to find those suitable for console/tty?  Recently I've been using GNU Screen and naturally my X Windows faces don't work.  Ediff is especially limited :-(.

Screen supports 256 colors.  It's a compile-time option disabled by default in Debian and Ubuntu packages. -- TrentBuck

[new]
This hasn't been the case since 2007.  4.0.3-5 onward include 256 color support, which means Etch and Dapper, respectively, were the last releases to have non-256 color support in screen.

[new]
I suggest you use no theme at all.  Most themes are not designed to degrade gracefully.
They all use a spec that says "for all display types".  So you have to rely on the fall-back
mechanism that reduces millions of colors to 16.  Not good.  All of themes I know except for
retro orange or retro green look terrible on a 16 color terminal.  Have you tried running on
a 256 color terminal?  Might be a bit better. -- AlexSchroeder

[new]
It may still be desirable to filter for themes designed for those 256 color themes; 256 color ttys will still degrade themes designed for a 24-bit display.

== Bugs and caveats ==

[new:DaveAbrahams:2011-10-03 19:03 UTC]

Unfortunately, nothing here says where the bug tracker is ([http://savannah.nongnu.org/bugs/?group=color-theme found it!]), so I can't report anything there.  Should you happen to blow the stack trying to do color-theme-select, you might want to try this patch, which detects and suppresses such infinite recursions: https://gist.github.com/1259919

It happened to me because of https://github.com/dbrock/zenburn-el/issues/13

[new]

=== Installing ColorTheme (from tar.gz file) ===

After downloading the tar.gz file, there's a Makefile, a README, and a number
of other files, but no instructions for Joe User on how to install. If you're
simply a user who wants to have the color themes installed, I believe you are to
ignore the Makefile, and simply copy color-theme.el and the themes directory to a
directory on your load-path (say, [[.emacs.d]]).

[new:XavierMaillard:2009-04-15 22:59 UTC] Reported to the [http://savannah.nongnu.org/bugs/?group=color-theme bug tracker]. Thank you. It will be part of 6.6.1 -- XavierMaillard

=== Choosing a new theme resizes the frame ===

I am running 6.6.0 with the Carbon XEmacs port of 21.5.beta27.  Whenever I choose a new theme, it resizes my frame to 80x40. -- doktorstick

[new:XavierMaillard:2009-04-15 22:59 UTC] Please report it back to [http://savannah.nongnu.org/bugs/?group=color-theme our bug tracker]. -- XavierMaillard

=== Cursor faces are OS dependent (fixed in v24) ===

Just a note that after spending several hours trying to figure out why a color-theme wasn't displaying the text under the cursor correctly for me on OSX, it appears according to the people on the emacs irc channel that the cursor is controlled by the operating system. Under OSX, apparently the foreground color cannot be adjusted. If you change this value within emacs you won't see the result reflected as it will be ignored. It appears to work fine under Windows and Linux. The issues with OSX were noticed using OSX 10.6 and 10.7. This is not an issue with color-theme as such, but I just wanted to highlight it here also since I ran into this issue while trying to use color-theme and wasted several hours on it. I hope others won't do the same. -- Josh

Edit: The cursor colors function correctly with gnu emacs for osx v24, so they appear to have fixed whatever prevented it working with earlier versions. -- Josh

== Gallery ==

To have an idea of what a theme looks like, I think we could all take a screenshot of our prefered and running theme. 

If you want to help (as there are many themes now and still more pending), you can send me a big (png only) screenshot accompanished with a thumb of reasonable size (ie. 400x300). I will then build an online gallery and maybe add them to the ColorTheme package.

For theme creators, I would appreciate now if you could join a screenshot of your theme when you submit it to me.

Send them to me at : zedek (at) gnu.org

MaverickWoo has compiled one such gallery at http://code.google.com/p/gnuemacscolorthemetest/.
We now have another gallery on http://www.flickr.com/groups/emacs/. Please share your screenshots.

[new]
You can use the [http://color-theme-select.heroku.com/ (color-theme-select)] web site to preview many color themes ~130, and create your own. -- vic



== Future Plans ==

* split ##color-theme-library.el## in small pieces (one theme per file)
* Improve load
* Add a custom widget to select your theme
* Use new way to define a color-theme
* Improve submission process
 and way way more things.
* Add a FAQ, a gentoo ebuild file
* Add ##CREDITS.themes## as a thank-you list
* Build a small website about color themes using OrgMode.

-- XavierMaillard

----
CategoryFaces CategoryCustomize
