From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.help Subject: RE: RFC: Flavors - naming significant sets of customizations Date: Tue, 26 Nov 2013 06:35:26 -0800 (PST) Message-ID: References: <9fc6b1ae-7cbd-4a17-a9a0-f4af42969312@googlegroups.com> <87pppo2q16.fsf@djcbsoftware.nl> <0363e370-eb7a-4d41-a09d-f16f40499e7e@default> <87zjorap3a.fsf@motoko.kusanagi> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1385476560 17568 80.91.229.3 (26 Nov 2013 14:36:00 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 26 Nov 2013 14:36:00 +0000 (UTC) To: "William G. Gardella" , help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Tue Nov 26 15:36:04 2013 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1VlJkB-0007v1-3r for geh-help-gnu-emacs@m.gmane.org; Tue, 26 Nov 2013 15:36:03 +0100 Original-Received: from localhost ([::1]:59006 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VlJkA-0005Rw-LQ for geh-help-gnu-emacs@m.gmane.org; Tue, 26 Nov 2013 09:36:02 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:43090) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VlJjp-0005Rf-If for help-gnu-emacs@gnu.org; Tue, 26 Nov 2013 09:35:50 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VlJjf-0001LR-G2 for help-gnu-emacs@gnu.org; Tue, 26 Nov 2013 09:35:41 -0500 Original-Received: from userp1040.oracle.com ([156.151.31.81]:43124) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VlJjf-0001LN-8f for help-gnu-emacs@gnu.org; Tue, 26 Nov 2013 09:35:31 -0500 Original-Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238]) by userp1040.oracle.com (Sentrion-MTA-4.3.1/Sentrion-MTA-4.3.1) with ESMTP id rAQEZTfR012797 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 26 Nov 2013 14:35:30 GMT Original-Received: from userz7021.oracle.com (userz7021.oracle.com [156.151.31.85]) by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id rAQEZRaK001856 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 26 Nov 2013 14:35:28 GMT Original-Received: from abhmp0012.oracle.com (abhmp0012.oracle.com [141.146.116.18]) by userz7021.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id rAQEZRLX024424; Tue, 26 Nov 2013 14:35:27 GMT In-Reply-To: <87zjorap3a.fsf@motoko.kusanagi> X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.8 (707110) [OL 12.0.6680.5000 (x86)] X-Source-IP: acsinet22.oracle.com [141.146.126.238] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 156.151.31.81 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:94654 Archived-At: > > The bug is not the fact that you can accumulate the effects of multiple > > custom themes. The bug is the fact that you cannot restore the state o= f > > Emacs before any theme was applied. There is no way to take a snapshot > > of Emacs before theming and then restore to that. >=20 > Actually, there is: (disable-theme 'foo-theme), or globally, > (mapcar 'disable-theme 'custom-enabled-themes). This functionality is > also already exposed by the M-x customize-themes GUI, which defaults to > disabling enabled themes for enabling a new one. >=20 > The "bug", if there is one, is simply that the UI doesn't expose this > nicely (in fact, doesn't expose it nicely for experienced users such as > yourself to notice it). What makes you think I didn't notice it? Why don't you please read the bug report? The point is that "disabling" a custom theme only disables it relative to other themes. It does not *undo* the application of the theme. It does not restore Emacs to the state before applying the theme, even approximately. If you start with a customized Emacs (faces, variables, frame parameters, whatever) and then apply a custom theme, you have no prayer of returning to what things were like before applying the theme. That's the point. With color themes there is no such problem. There is a pseudo-theme ([Reset]) for restoring the state before theming. It does not guarantee to restore absolutely everything, but it does a pretty good job of things. This important feature of color themes is missing from custom themes (AFAICT). You cannot take a snapshot of the Emacs state before applying a custom theme, and then restore that snapshot state after applying the theme. With color themes this is trivial to do (and fast) - the snapshot is treated more or less as a theme (call it a pseudo-theme). --- The other problem with custom themes (compared to color themes) is that they are extremely slow if you have multiple frames open. And this is the case even if you inhibit the accumulation of themes, so that instead of each theme applied building on top of the previous ones it just replaces the last one (so only one theme is used at a time). If you allow accumulation (the default behavior) then Emacs just grinds to a halt. Switching among color themes is super fast, no matter how many frames there are. Don't get me wrong - I'm glad we have custom themes. The point is only that, so far, they are not a sufficient *replacement* for color themes. Each has its advantages, so far. Unfortunately. Currently, if you are mainly interested in colors (e.g., faces & frame parameters) then color-theme.el is still the way to go, AFAICS. If you are mainly interested in variables, then probably custom themes are more useful.