From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Gregory Heytings via "Emacs development discussions." Newsgroups: gmane.emacs.devel Subject: Re: Interactive guide for new users Date: Sat, 12 Sep 2020 09:31:06 +0000 Message-ID: References: <875z8ortot.fsf@gkayaalp.com> <83lfhjkq0r.fsf@gnu.org> <8620B5CD-CA92-46BF-80A8-DBE7052F4CA6@gmail.com> Reply-To: Gregory Heytings Mime-Version: 1.0 Content-Type: text/plain; format=flowed; charset=US-ASCII Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9385"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Alpine 2.22 (NEB 394 2020-01-19) To: Yuan Fu , emacs-devel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Sep 12 11:32:02 2020 Return-path: 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 ) id 1kH1t4-0002KF-5m for ged-emacs-devel@m.gmane-mx.org; Sat, 12 Sep 2020 11:32:02 +0200 Original-Received: from localhost ([::1]:49756 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kH1t3-00050i-7d for ged-emacs-devel@m.gmane-mx.org; Sat, 12 Sep 2020 05:32:01 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:54658) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kH1sL-0004ao-KG for emacs-devel@gnu.org; Sat, 12 Sep 2020 05:31:17 -0400 Original-Received: from mx.sdf.org ([205.166.94.24]:51776) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kH1sJ-0000i0-1M for emacs-devel@gnu.org; Sat, 12 Sep 2020 05:31:17 -0400 Original-Received: from sdf.org (IDENT:ghe@faeroes.freeshell.org [205.166.94.9]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id 08C9V9Bq003088 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO); Sat, 12 Sep 2020 09:31:09 GMT Original-Received: (from ghe@localhost) by sdf.org (8.15.2/8.12.8/Submit) id 08C9VKAJ005893; Sat, 12 Sep 2020 09:31:20 GMT In-Reply-To: Received-SPF: pass client-ip=205.166.94.24; envelope-from=ghe@sdf.org; helo=mx.sdf.org X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/12 05:31:13 X-ACL-Warn: Detected OS = ??? X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:255282 Archived-At: Based on the feedback received so far, I reworked the proposal a bit. The idea is to create an "initial greeting" that would be bundled with Emacs, and would be executed the first time the first time Emacs is launched (instead of the initial splash screen). It should be short (take no more than three minutes to go through), and give the user (1) a way to set some defaults according to their preferences, and (2) a short introduction to the most important elements of Emacs. The rationale behind this proposal is the discussion that started with Ergus' mail a week ago. It is hard to synthetize what has been said, but it seems to me that it boils down to two incompatible viewpoints: (1) those who have been using Emacs for years do not want to change the default settings too much, and (2) new Emacs users, who already know and use other text editors (Visual Studio, Atom, ...), are puzzled with its interface and find that it does not look "modern" enough. IOW, the only purpose of this proposal is to do something to avoid the initial feeling some users have that Emacs is an old thing that they will have difficulty to adapt to their needs. The initial greeting would have eight screens, which I detail here because some on this list prefer not to view videos on Youtube: SCREEN 1: Welcome! It seems that this is the first time you run Emacs, would you like to customize its interface and have a short introduction? This will not take you more than three minutes. SCREEN 2: "Set the color theme", with a clickable list containing the (currently) 16 built-in themes. A short code snippet above that list illustrates how code is displayed with each of these themes. [It would be nice to have a way to select a default font here, but I don't know if that feasible.] SCREEN 3: Basic keybindings. It introduces the "C-" and "M-" notations, and the user can select between the default keybindings and cua-mode (with some additional keybindings). This "enhanced cua-mode" would have: C-c = copy, C-v = paste, C-x = cut, C-f = search, C-s = save, C-o = open file, C-z = undo, C-y = redo. If the user selects the cua-mode bindings, he gets a message: "We encourage to reconsider this choice after some time, because the alternative keybindings conflict with many parts of Emacs and make the experience worse in the long run." SCREEN 4: Choose whether to set some common options that new users might want (because they are common in other text editors). These are (the order could be improved, and items could be added or removed): 1. display-line-numbers-mode 2. disable tool-bar-mode 3. disable scroll-bar-mode 4. column-number-mode 5. (setq cursor-type 'bar) 6. hl-line-mode 7. show-paren-mode 8. which-key-mode 9. column-number-mode 10. save-place-mode and desktop-save-mode 11. (setq uniquify-buffer-name-style 'forward uniquify-min-dir-content 1024) 12. tab-line-mode 13. (global-set-key (kbd "C-b") 'ibuffer) [if cua-mode has been chosen] 14. icomplete-mode (or fido-mode?) 15. (setq scroll-conservatively 101) 16. display-time-mode 17. (setq tool-bar-style 'image) SCREEN 5: Short explanations about what the user sees: the minibuffer (where commands are entered and error messages appear), the mode-line (with the current editing modes between parentheses, the first one is the major mode), with a mention that the user can have a description of these modes and of their keybindings by typing "C-h m". SCREEN 6: How to find help. Short explanation about C-h C-h, C-h m, C-h p, C-h k / C-h w / C-h a, C-h l. Note on terminology: in the documentation two words might be confusing, "frame" is what is generally known as "window", and "window" is a portion of a frame when it is splitted in two or more parts. [Also explain what a "buffer"?] SCREEN 7: Elementary keybindings: explain what "C-x 1" and "C-g" do. Give a few examples to give the new user a sense of what using C- and M- is: 1. "M-f and M-b" (which have the same effect as M- and M-) 2. "C-a and C-e" (which have the same effect as and ) 3. "M-%" and "C-M-%" SCREEN 8: Thank you. Your choices have been saved in Emacs' configuration file ~/.emacs.d/init.el (or ~/.emacs ?). You can use M-x customize at any time to set additional configuration options. You can use M-x initial-greeting at any time to go through this configuration again.