From mboxrd@z Thu Jan  1 00:00:00 1970
Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail
From: Lars Ingebrigtsen <larsi@gnus.org>
Newsgroups: gmane.emacs.devel
Subject: Re: [External] : Re: Propose to add setup-wizard.el to ELPA
Date: Tue, 04 Jan 2022 16:04:23 +0100
Message-ID: <8735m34k5k.fsf@gnus.org>
References: <8735m6o349.fsf@yahoo.com>
 <CADs++6jrBfKUQcF0oXWjh5YZ3WEZ4tJGiZ6oWAkOAHpupQ-QxA@mail.gmail.com>
 <MsPLj-L--3-2@tutanota.de> <87pmpamlon.fsf@yahoo.com>
 <MsPZqa9--3-2@tutanota.de-MsP_1xO----2> <MsPdiSS--3-2@tutanota.de>
 <CADwFkmnezyHgrD6gUCMBucspVhFpmAMjbbuMfq+vDP-PxOiX3A@mail.gmail.com>
 <834k6mdu7q.fsf@gnu.org> <MsQfHFF--3-2@tutanota.de>
 <SJ0PR10MB5488867C03CD4A383BD4180BF3489@SJ0PR10MB5488.namprd10.prod.outlook.com>
 <MsRB6uF--7-2@tutanota.de>
 <SJ0PR10MB5488AF21FEB1065F673C7C21F3489@SJ0PR10MB5488.namprd10.prod.outlook.com>
 <CADwFkmnUeJq3kvWQGTqSCGWVEqabFVQYc2pB9KjcL5wsxQXvfQ@mail.gmail.com>
 <87v8z12ud8.fsf@athena.silentflame.com>
 <jwvmtkcx0uj.fsf-monnier+emacs@gnu.org>
 <7BD42724-519F-406C-ABB2-CC50E70CD837@gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214";
	logging-data="21136"; mail-complaints-to="usenet@ciao.gmane.io"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
Cc: Sean Whitton <spwhitton@spwhitton.name>, Stefan Kangas <stefan@marxist.se>,
 Stefan Monnier <monnier@iro.umontreal.ca>, Drew Adams <drew.adams@oracle.com>,
 "emacs-devel@gnu.org" <emacs-devel@gnu.org>
To: Yuan Fu <casouri@gmail.com>
Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Jan 04 16:19:20 2022
Return-path: <emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org>
Envelope-to: ged-emacs-devel@m.gmane-mx.org
Original-Received: from lists.gnu.org ([209.51.188.17])
	by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
	(Exim 4.92)
	(envelope-from <emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org>)
	id 1n4lap-0005Eb-PZ
	for ged-emacs-devel@m.gmane-mx.org; Tue, 04 Jan 2022 16:19:19 +0100
Original-Received: from localhost ([::1]:53268 helo=lists1p.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.90_1)
	(envelope-from <emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org>)
	id 1n4lao-0003tv-5N
	for ged-emacs-devel@m.gmane-mx.org; Tue, 04 Jan 2022 10:19:18 -0500
Original-Received: from eggs.gnu.org ([209.51.188.92]:54256)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <larsi@gnus.org>) id 1n4lMi-0007Cl-6V
 for emacs-devel@gnu.org; Tue, 04 Jan 2022 10:04:44 -0500
Original-Received: from [2a01:4f9:2b:f0f::2] (port=36220 helo=quimby.gnus.org)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <larsi@gnus.org>) id 1n4lMg-0005gq-Cq
 for emacs-devel@gnu.org; Tue, 04 Jan 2022 10:04:43 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID
 :In-Reply-To:Date:References:Subject:Cc:To:From:Sender:Reply-To:Content-ID:
 Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
 :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
 List-Post:List-Owner:List-Archive;
 bh=PpJ69jsmXEiyH84F4642P9V/CqecPYCAk32SHr/AVKE=; b=lsky1bFGpVt7Gdv2Tw+61KIssW
 b+Ct5BLAMoRtfcVJehMIKffxLM/P4Y3luc0kL4r12wWpD3QjQz02E3TJosRLAgFuPJzdeML1tT2u3
 ovlMM5QtINOItMJEUscGhu+8B4vt4vsZgS5MfYOOynBnYlFkfSsn9qSm85U63AW+l2/w=;
Original-Received: from [84.212.220.105] (helo=xo)
 by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@gnus.org>)
 id 1n4lMQ-0000Yh-2M; Tue, 04 Jan 2022 16:04:28 +0100
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj
 SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAGFBMVEX9/Pjc1dCwp6GS
 hniOb2BVUUIjKB////9Z1785AAAAAWJLR0QHFmGI6wAAAAd0SU1FB+YBBA42MBuQYAsAAAGMSURB
 VDjLzZPdcaQwDIAxmdyz5UzueS1oIMgUkNhsAcFyBbH7LyEysCxkX3MzJ/Bg9OnHSKJp/gfRoJtG
 llJHbavNxdinBrV5giNQFVyMlgvsCQBYBVpbUPoUqoF6a1WXVuoWDSTCpTXWtCCuaPRu3kqCtmps
 g80FQd8zgAQHDapu1Q7+vSgwuEs3UEdEvoLXXB4kL4DPupIyL+Dv8poePRZQQrg+gCUHT1w2r3TL
 sZgwhVWfP/B6BHFw/v2F5qnvcNxAtYxTcAExFY5E7gCYYwijHDx/yaYcj8ucUk1bLa6H44oPr4/A
 Hq874KoSh09plGPf30NVUMpskSz0YajgeQcpk8HxHYH97iF5xeMTwRASpVjBn5pB4meu7UCHk+Mb
 2CrnB+OmGeee+Qz4TZo5Dtj5HyASAvReOpxPQEovn9HT0HVlP+4aigeDHXaOcp3FZy7bOOQ000DW
 +FBWkLYWyefkGD5wdryC+5jEILWc4riBtE9WniqJHBZwGDjJz7Xwi0d7H1ALN/nVn+Ab0Z+3/cTJ
 8a8AAAAldEVYdGRhdGU6Y3JlYXRlADIwMjItMDEtMDRUMTQ6NTQ6NDgrMDA6MDCzsKToAAAAJXRF
 WHRkYXRlOm1vZGlmeQAyMDIyLTAxLTA0VDE0OjU0OjQ4KzAwOjAwwu0cVAAAAABJRU5ErkJggg==
X-Now-Playing: Laura Jean's _Our Swan Song_: "The Hunter's Ode"
In-Reply-To: <7BD42724-519F-406C-ABB2-CC50E70CD837@gmail.com> (Yuan Fu's
 message of "Mon, 3 Jan 2022 17:50:55 -0800")
X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a01:4f9:2b:f0f::2 (failed)
Received-SPF: pass client-ip=2a01:4f9:2b:f0f::2; envelope-from=larsi@gnus.org;
 helo=quimby.gnus.org
X-Spam_score_int: -16
X-Spam_score: -1.7
X-Spam_bar: -
X-Spam_report: (-1.7 / 5.0 requ) DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
 DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3,
 RDNS_NONE=0.793, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no
X-Spam_action: no action
X-BeenThere: emacs-devel@gnu.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Emacs development discussions." <emacs-devel.gnu.org>
List-Unsubscribe: <https://lists.gnu.org/mailman/options/emacs-devel>,
 <mailto:emacs-devel-request@gnu.org?subject=unsubscribe>
List-Archive: <https://lists.gnu.org/archive/html/emacs-devel>
List-Post: <mailto:emacs-devel@gnu.org>
List-Help: <mailto:emacs-devel-request@gnu.org?subject=help>
List-Subscribe: <https://lists.gnu.org/mailman/listinfo/emacs-devel>,
 <mailto:emacs-devel-request@gnu.org?subject=subscribe>
Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org
Original-Sender: "Emacs-devel"
 <emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org>
Xref: news.gmane.io gmane.emacs.devel:284157
Archived-At: <http://permalink.gmane.org/gmane.emacs.devel/284157>

Yuan Fu <casouri@gmail.com> writes:

> Custom cannot save some of the results produced by the wizard, for
> example, key bindings and Unicode fonts. And I don=E2=80=99t know if
> package-selected-packages is enough for packages. Here is an example
> for the generated configuration:
>
> ;; Load modus-operandi theme
> (load-theme 'modus-operandi)
>
> ;; Set bindings for copy/cut/paste.
> (global-set-key
>  (kbd "s-c")
>  #'kill-ring-save)

By the way, if you're targeting Emacs 29 for this, you can use
`pp-emacs-lisp-code' to get more readable results, which would be a
priority if we want to move to a more code-based format for wizards and
customisations.

(And you can use `keymap-global-set'.)

>   (require 'package)

And that's not necessary, I think?

Anyway, I'm in favour of setup wizards...  but I don't think there
should be only one.  I think we should invite people to submit setup
wizards (like we do face themes), and then Emacs should list these (with
an explanation of what the use case for each wizard/configuration is).

I also think it's high time that we default to not having the Customize
stuff in the init file, but put it in a different file.  And if we do
that, I think we should discuss whether to change the format.  I think
it'd make sense to move to a more code-based format for the file.
Instead of

(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(foo-var 'bar)
 '(zot-thing '("/tmp")))

which is doesn't teach the user anything about anything, and is
unnecessarily hard to edit by hand, we could have:

;; `foo-var' controls ow fooification happens.
(setopt foo-var 'bar)

;; `zot-thing' is the directory where the Zot package stores stuff.
(setopt zoo-thing '("/tmp/"))

I.e., have the first line from the doc string in the file, and use
setopt (an alias for `customize-set-variable').  Users would be able to
read this file, and understand what it does, and edit it by hand if they
want to.

--=20
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no