From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thorsten Wilms Subject: Re: Updates on the guix home manager Date: Fri, 20 Sep 2019 11:31:15 +0200 Message-ID: <20190920113115.7256a0515033145f55cc32ae@freenet.de> References: <20190919232257.671511bb@sybil.lepiller.eu> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:53642) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iBFIq-0003uX-R9 for guix-devel@gnu.org; Fri, 20 Sep 2019 05:34:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iBFIn-0002Cz-4c for guix-devel@gnu.org; Fri, 20 Sep 2019 05:34:12 -0400 Received: from mout1.freenet.de ([2001:748:100:40::2:3]:53228) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iBFIm-0002CC-Va for guix-devel@gnu.org; Fri, 20 Sep 2019 05:34:09 -0400 Received: from [195.4.92.164] (helo=mjail1.freenet.de) by mout1.freenet.de with esmtpa (ID t_w_@freenet.de) (port 25) (Exim 4.92 #3) id 1iBFIh-0003pH-T2 for guix-devel@gnu.org; Fri, 20 Sep 2019 11:34:03 +0200 Received: from [::1] (port=45906 helo=mjail1.freenet.de) by mjail1.freenet.de with esmtpa (ID t_w_@freenet.de) (Exim 4.92 #3) id 1iBFIh-00083j-S4 for guix-devel@gnu.org; Fri, 20 Sep 2019 11:34:03 +0200 Received: from sub0.freenet.de ([195.4.92.119]:40908) by mjail1.freenet.de with esmtpa (ID t_w_@freenet.de) (Exim 4.92 #3) id 1iBFFz-00055Q-Pi for guix-devel@gnu.org; Fri, 20 Sep 2019 11:31:15 +0200 Received: from p200300e4f72ca800fcd4e4bdbd74e3d3.dip0.t-ipconnect.de ([2003:e4:f72c:a800:fcd4:e4bd:bd74:e3d3]:35206 helo=charly) by sub0.freenet.de with esmtpsa (ID t_w_@freenet.de) (TLSv1.2:ECDHE-RSA-CHACHA20-POLY1305:256) (port 465) (Exim 4.92 #3) id 1iBFFz-0008By-Nd for guix-devel@gnu.org; Fri, 20 Sep 2019 11:31:15 +0200 In-Reply-To: <20190919232257.671511bb@sybil.lepiller.eu> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org On Thu, 19 Sep 2019 23:22:57 +0200 Julien Lepiller wrote: > I you have a color-theme-home-type that extends all terminals, color > themes would be configured in all terminals, but because of the > extension, a mate-terminal-home-type would be instantiated. > > My version of services introduce the notion of an extension point: all > three terminal services would implement a color-theme extension point > that could be targeted by another service. When it targets an > extension point, a service does not need to specify what service is > extended. In that case, no service is implicitely instantiated, and > any service with that extension point is extended. This is exactly > what we want to do here: by using the extension point, without > specifying a target service, both gnome and xfce4 terminal > configurations are updated with your color theme, and > mate-terminal-home-type is not instantiated. OK, let me try to put that in different terms: An application-configuration may contain placeholders. A generalized-configuration may declare that it fills in a specific placeholder. This happens automatically, if the generalized-configuration is used, while any application-configuration with such a placeholder is also in use. So basically like having an inherits-from, but with one level of abstraction that allows to swap in the thing to inherit from? So far, in my own practice, what I have been missing is a way to manage defaults and customizations. I'd like to keep track of it, in terms of "these are the defaults the application has been installed with", "these are the changes I applied". Then, when an update of the application does anything to the defaults, I want to be able to get to a diff and the option to apply my changes as a patch, or see where conflicts are. Adding a mechanism to generalize settings, I can only imagine a graph, consisting of generalized-settings-producers, translators, patches and combiners. Actually, generalized-settings-producers could be patches (from nothing to something). -- Thorsten Wilms