unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: Drew Adams <drew.adams@oracle.com>
To: "W. Greenhouse" <wgreenhouse@riseup.net>, help-gnu-emacs@gnu.org
Subject: RE: custom-themes BAD?
Date: Tue, 25 Feb 2014 14:19:00 -0800 (PST)	[thread overview]
Message-ID: <6ad3b28c-1539-441d-899d-d82651a5e69a@default> (raw)
In-Reply-To: <87ppmaoqd2.fsf@motoko.kusanagi>

> The by-default-cumulative behavior of themes is confusing to newbies,
> but there is already `disable-theme'.  `load-theme' does not normally
> call `disable-theme' on the rest of `custom-enable-themes' prior to
> loading a new one, but you could advice it to do so.  See also M-x
> customize-themes, which already is hooked up to enable one theme at a
> time, removing others.

As W. Greenhouse should know, `disable-theme', even applied to
all custom themes that have ever been enabled in the session,
does not restore customizations that were present before enabling
any theme.  I.e., it does not restore non-theme settings that
enabling a theme wiped out.

Put differently, you cannot "undo" the application of custom
themes, to return to the state before applying a theme.  You
can only disable custom themes relative to each other - in
general, you cannot fall back to a non-theme state.  You can
swap one custom theme for another, but any non-theme state
before applying a custom theme is lost.

For others, unfamiliar with the bug report:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15687.
(The bug title was inappropriately renamed - the bug is not
particularly about variables.)

IMO, this represents a major deficiency of custom themes
compared to color themes (library `color-theme.el',
http://www.nongnu.org/color-theme/).

With color themes you can restore a pre-theme state.  It is
simple to take a snapshot of the current Emacs state as a
new (pseudo) theme ([Reset]), and then return to it after
enabling other themes.  What is missing for custom themes, IMO,
is the ability to take a snapshot of the current Emacs
appearance as a theme.

This, plus performance problems, mean that custom themes
cannot yet replace color themes, in general.  That's too bad;
it would be great if they could.  Custom themes do both more
and less than color themes.

(See bug #15740 about performance:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15740.)



  reply	other threads:[~2014-02-25 22:19 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-25 17:08 custom-themes BAD? Dan Espen
2014-02-25 17:22 ` Joost Kremers
2014-02-25 17:38   ` E Sabof
2014-02-25 17:54   ` Dan Espen
     [not found]   ` <mailman.16024.1393350344.10748.help-gnu-emacs@gnu.org>
2014-02-25 18:06     ` Dan Espen
2014-02-25 17:35 ` Drew Adams
     [not found] ` <mailman.16021.1393349758.10748.help-gnu-emacs@gnu.org>
2014-02-25 18:03   ` Dan Espen
2014-02-25 19:33     ` Rainer M Krug
     [not found]     ` <mailman.16038.1393356841.10748.help-gnu-emacs@gnu.org>
2014-02-25 19:48       ` Dan Espen
2014-02-25 20:04         ` Rainer M Krug
2014-02-25 21:05           ` W. Greenhouse
2014-02-25 22:19             ` Drew Adams [this message]
     [not found] <<ic1tyrdsrh.fsf@home.home>
     [not found] ` <<slrnlgpkad.3j2.joost.m.kremers@j.kremers4.news.arnhem.chello.nl>
2014-02-25 17:45   ` Drew Adams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6ad3b28c-1539-441d-899d-d82651a5e69a@default \
    --to=drew.adams@oracle.com \
    --cc=help-gnu-emacs@gnu.org \
    --cc=wgreenhouse@riseup.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).