Subject: Re: 24.3.50; custom themes: disabling does not restore initial configuration

From: "William G. Gardella" <[email-masked]>
Date: Tue, 26 Nov 2013 18:47:32 +0000

Drew Adams <[email-masked]> writes:

> AFAICT, there is no equivalent of such a snapshot with custom themes,
> and it's not clear how to create one.  But please prove me wrong.

Sure.  Follow this recipe:

1) Execute "emacs -Q".

2) Customize some face.  I did M-x customize-face
   font-lock-comment-face, changing the foreground color to magenta and
   clicking "Apply."  As expected, the initial comment in the *scratch*
   buffer is now magenta.  But the choice of face doesn't really matter,
   this works with any face I tried (font-lock-builtin-face,
   font-lock-keyword-face, font-lock-function-name-face, etc.).

3) M-x customize-themes.  Choose any face you like, for example
   `manoj-dark'.  Look at the *scratch* buffer.

4) Choose another theme via M-x customize-themes.  Look at the *scratch*
   buffer.

5) Uncheck the theme checked in M-x customize-themes.  Look at the
   *scratch* buffer.

Customizeations made outside Custom themes using Customize are entirely
reversible, to the pre-themed state.

I think the confusion here--and the bug, if any--is one of user
interface and user expectations.  `load-theme', `enable-theme',
`disable-theme' et al. normally operate on one theme at a time, without
reverting all themes.  This is perhaps not such a sane default.
However, `customize-themes' disables any other active themes unless the

> [ ] Select more than one theme at a time

checkbox is checked.  Perhaps enable-theme, disable-theme etc. should
adhere to the same default, leaving at most one theme (or the pre-theme
settings) enabled at a time.

--
Best,
WGG