From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?Q?=C3=93scar_Fuentes?= Newsgroups: gmane.emacs.help Subject: Re: Trying to define face dynamically Date: Fri, 18 Oct 2019 02:15:47 +0200 Message-ID: <87h846oqmk.fsf@telefonica.net> References: <87pnivnqxh.fsf@telefonica.net> <834l079nkg.fsf@gnu.org> <87lftjno57.fsf@telefonica.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="25853"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Fri Oct 18 02:16:22 2019 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iLFwM-0006bV-Gi for geh-help-gnu-emacs@m.gmane.org; Fri, 18 Oct 2019 02:16:22 +0200 Original-Received: from localhost ([::1]:34292 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iLFwL-0006kv-3H for geh-help-gnu-emacs@m.gmane.org; Thu, 17 Oct 2019 20:16:21 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:46817) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iLFw6-0006kp-2m for help-gnu-emacs@gnu.org; Thu, 17 Oct 2019 20:16:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iLFw4-0002nj-Hh for help-gnu-emacs@gnu.org; Thu, 17 Oct 2019 20:16:05 -0400 Original-Received: from 195-159-176-226.customer.powertech.no ([195.159.176.226]:33582 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iLFw3-0002n6-9U for help-gnu-emacs@gnu.org; Thu, 17 Oct 2019 20:16:04 -0400 Original-Received: from list by blaine.gmane.org with local (Exim 4.89) (envelope-from ) id 1iLFvx-0006C7-LB for help-gnu-emacs@gnu.org; Fri, 18 Oct 2019 02:15:57 +0200 X-Injected-Via-Gmane: http://gmane.org/ Cancel-Lock: sha1:VbcQZG9wlKJ1SSA1BekrUOEuihI= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 195.159.176.226 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 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" Xref: news.gmane.org gmane.emacs.help:121666 Archived-At: Óscar Fuentes writes: > Eli Zaretskii writes: > >>> (mapcar (lambda (face) >>> (face-remap-add-relative >>> face `(:filtered (:window has-keyboard-focus nil) >>> :background ,(color-darken-name >>> (face-attribute face :background) >>> 10.0)))) >>> '(default fringe)) >>> >>> But this has not the desired effect: faces remain the same and every now >>> and then Emacs throws an error "wrong-type-argument stringp nil" from >>> functions such as font-info. >>> >>> What I'm doing wrong? >> >> You didn't say what color-darken-name does, but I think the problem is >> that ':background "foo"' is not a face spec. Did you try something >> like '(background-color . ,(color-darken-name ...))' or maybe >> '(:background ,(color-darken-name ...))' instead? > > Thanks. Changing to either of your suggestions eliminates the error, but > the face is not altered. Eli's suggestion was right. The face change didn't apply because specific actions are required by the minor mode to be effective. For the record, this is the complete call: (mapcar (lambda (face) (face-remap-add-relative face `(:filtered (:window has-keyboard-focus nil) (:background ,(color-darken-name (face-attribute 'default :background) 3.0))))) '(default fringe)) This darkens the "default" and "fringe" background colors by 3% when the window has no keyboard focus. Neat. Now, if we only had a hook for detecting enabling/disabling of themes for invocating the code above automatically... I'll submit a bug report about that.