* [comp.emacs] Announcing Easymacs: an all-in-one Emacs configuration for newbies @ 2005-07-01 7:43 David Kastrup 2005-07-01 13:36 ` Robert J. Chassell 2005-07-01 14:21 ` Luc Teirlinck 0 siblings, 2 replies; 7+ messages in thread From: David Kastrup @ 2005-07-01 7:43 UTC (permalink / raw) [-- Attachment #1: Type: text/plain, Size: 419 bytes --] The following announcement seems like an excellent reason to get custom themes working. While I have not looked at it yet, such customization sets might be desirable to be available in the core Emacs. And there are also things like "Aquamacs" which change a lot of default settings. Having those available as a single theme which the user can use all at once without losing his own customizations seems desirable. [-- Attachment #2: Type: message/rfc822, Size: 850 bytes --] From: public@heslin.eclipse.co.uk Subject: Announcing Easymacs: an all-in-one Emacs configuration for newbies Date: Thu, 30 Jun 2005 10:03:05 +0100 Message-ID: <87acl86wty.fsf@heslin.eclipse.co.uk> Easymacs is an easy-to-learn, one-size-fits-all configuration for new users of GNU Emacs. It sets up key bindings that conform to a common denominator of the Gnome/KDE/OS X/Microsoft Windows human interface guidelines, and provides function-key bindings for other powerful Emacs features. It is fully documented, and the new user can productively edit text right away, without going through the Emacs tutorial. Many commonly-used functions can be accessed without having to learn the "chords", or multiple keystrokes that Emacs uses by default. http://www.dur.ac.uk/p.j.heslin/Software/Emacs/Easymacs/ Peter [-- Attachment #3: Type: text/plain, Size: 52 bytes --] -- David Kastrup, Kriemhildstr. 15, 44793 Bochum [-- Attachment #4: Type: text/plain, Size: 142 bytes --] _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [comp.emacs] Announcing Easymacs: an all-in-one Emacs configuration for newbies 2005-07-01 7:43 [comp.emacs] Announcing Easymacs: an all-in-one Emacs configuration for newbies David Kastrup @ 2005-07-01 13:36 ` Robert J. Chassell 2005-07-01 14:21 ` Luc Teirlinck 1 sibling, 0 replies; 7+ messages in thread From: Robert J. Chassell @ 2005-07-01 13:36 UTC (permalink / raw) David Kastrup <dak@gnu.org> writes The following announcement seems like an excellent reason to get custom themes working. ... Yes. The advantages of a customize theme command are two fold: writing customizations becomes more usual for those who have learned differently than writing simple expressions. And loading the resulting libraries becomes simpler. As Luc Teirlinck pointed out, for loading, the current custom theme files use custom-theme-set-variables and custom-theme-set-faces. This is not necessary. There is an alternative way to load and unload the current custom theme libraries. This means writing one new function (which may be hard). The other part of customization, the part that uses the existing cus-*.el libraries, is fine for people who have not learned or do not wish to learn to write customizations in the normal way. For loading, the current custom theme methods is very inconvenient for those who have 20 year old custom theme libraries and load them frequently (well, I mean, load the current version of the library). That is because the regular customization libraries must be rewritten using custom-theme-set-variables and custom-theme-set-faces. On the other hand, the new method is advantageous to those who wish to specify the name of a custom theme inside a library instead of making the name of the library be the name of the theme. I think we should drop the loading method in the current set up and use the conventional loading method. The latter works fine to load `custom-set-faces' and `custom-set-variables' expressions; they can be set however you want. To load and unload custom themes we only need two functions, one of which has been around since the beginning and one of which is new. The first function is `load-library'. It loads an existing custom theme file, such as a .emacs file with a `custom-set-faces' expression in it. The second function does not exist. It is `unload-libraries'. This function should unbind every customized or user-modified symbol in an instance of Emacs and rebind those symbols to whose which come with emacs -q --no-site-file (Well, the function should be named `unload-library' and should only unload a specified library and return only those bindings to their defaults; but I think that is harder.) Thus, to offer an Emacs theme that has my personal theme plus a theme with a white background (useful for sitting in the sun), type M-x load-library RET .emacs RET M-x load-library RET .emacs-white-background RET To return to a default instance of Emacs, type M-x unload-libraries RET The disadvantage is that each theme is specified by a named file. In addition, you cannot put different themes into the same file. Also, you cannot substract one theme from another, since `unload-libraries' rebinds all symbols to whose which come with come with `emacs -q --no-site-file'. I do not know how unload one or more non-default libraries and return an instance of Emacs to a default. A function using `makunbound' is not what we want since `makunbound' does not rebind a symbol to the default value. It makes the symbol be void. As for `unload-feature', I cannot figure out how to call the name of a file, such as "~/.emacs-white-background" a `feature' that means the rest of the library must be loaded or unloaded. (I hope the capability is there and that I am just being foolish.) In any event, like everyone, I customize my instances of Emacs all the time using various .emacs files. However, instead of unloading such customizations, I simply start a new instance with `-q -l ' and the name of a different file to load. Thus, if the customization file exists, I could start Easymacs with emacs -q -l .emacs-easymacs With the new function, I could start an instance of Emacs of my own and then type M-x unload-libraries RET M-x load-library RET .emacs-easymacs RET For me, the first is easier, but for many, the second would be easier. As for settings that go into a customization file: that capability can be left as is. Some variables, like `inhibit-startup-message', should be set with `setq' with the expression written into the customization file. On the other hand, to specify faces, it is often best to use the `custom-set-faces' function. When the face is new and you are working interactively, the function automatically writes the expression into the initialization file. But you need not work interactively; for previously set faces, you can change the expression in your .emacs file. This can be very convenient. This is a scheme that works for both novices and experts: use the old loading function, one new unloading function, and the current setting mechanisms. -- Robert J. Chassell bob@rattlesnake.com GnuPG Key ID: 004B4AC8 http://www.rattlesnake.com http://www.teak.cc ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [comp.emacs] Announcing Easymacs: an all-in-one Emacs configuration for newbies 2005-07-01 7:43 [comp.emacs] Announcing Easymacs: an all-in-one Emacs configuration for newbies David Kastrup 2005-07-01 13:36 ` Robert J. Chassell @ 2005-07-01 14:21 ` Luc Teirlinck 2005-07-01 14:55 ` Lennart Borgman 1 sibling, 1 reply; 7+ messages in thread From: Luc Teirlinck @ 2005-07-01 14:21 UTC (permalink / raw) Cc: emacs-devel David Kastrup wrote: The following announcement seems like an excellent reason to get custom themes working. While I have not looked at it yet, such customization sets might be desirable to be available in the core Emacs. That announcement is talking about key bindings. The current Custom themes machinery does not attempt to handle key bindings at all. So it would be useless for this particular purpose. Custom themes only try to handle user options defined with defcustom. Sincerely, Luc. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [comp.emacs] Announcing Easymacs: an all-in-one Emacs configuration for newbies 2005-07-01 14:21 ` Luc Teirlinck @ 2005-07-01 14:55 ` Lennart Borgman 2005-07-01 15:36 ` Luc Teirlinck 0 siblings, 1 reply; 7+ messages in thread From: Lennart Borgman @ 2005-07-01 14:55 UTC (permalink / raw) Cc: emacs-devel Luc Teirlinck wrote: >David Kastrup wrote: > > The following announcement seems like an excellent reason to get > custom themes working. While I have not looked at it yet, such > customization sets might be desirable to be available in the core > Emacs. > >That announcement is talking about key bindings. The current Custom >themes machinery does not attempt to handle key bindings at all. So >it would be useless for this particular purpose. > >Custom themes only try to handle user options defined with defcustom. > > Which make me think that these two things would overlap if the key bindings where defined through define-minor-mode. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [comp.emacs] Announcing Easymacs: an all-in-one Emacs configuration for newbies 2005-07-01 14:55 ` Lennart Borgman @ 2005-07-01 15:36 ` Luc Teirlinck 2005-07-01 15:51 ` Luc Teirlinck 2005-07-01 16:58 ` Robert J. Chassell 0 siblings, 2 replies; 7+ messages in thread From: Luc Teirlinck @ 2005-07-01 15:36 UTC (permalink / raw) Cc: emacs-devel Lennart Borgman wrote: Which make me think that these two things would overlap if the key bindings where defined through define-minor-mode. In a certain sense, global minor modes can be thought of as keybinding themes (if the main thing they do is activate a keymap). However, there is a convention that minor modes can only bind a very limited number of key sequences. Of course, a "theme" minor mode can get around that by simply disregarding that convention. I am not really familiar with cua-mode or pc-selection-mode, but I guess that this is exactly what they do. A "theme" minor mode has to be very careful, however, because it normally is intended as a substitute for the global map. The local map (usually the major mode map) overrides the global map, but not the substitutions to the global map provided by the theme minor mode. This could potentially mess up some major modes. Sincerely, Luc. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [comp.emacs] Announcing Easymacs: an all-in-one Emacs configuration for newbies 2005-07-01 15:36 ` Luc Teirlinck @ 2005-07-01 15:51 ` Luc Teirlinck 2005-07-01 16:58 ` Robert J. Chassell 1 sibling, 0 replies; 7+ messages in thread From: Luc Teirlinck @ 2005-07-01 15:51 UTC (permalink / raw) Cc: emacs-devel >From my earlier message: The local map (usually the major mode map) overrides the global map, but not the substitutions to the global map provided by the theme minor mode. This could potentially mess up some major modes. I guess that once the problem is noticed, it can be corrected using minor-mode-overriding-map-alist. There are "emulation modes" which are a kind of a "keymap theme", like viper-mode. There also is emulation-mode-map-alists for them to use. See `(elisp)Active Keymaps'. Sincerely, Luc. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [comp.emacs] Announcing Easymacs: an all-in-one Emacs configuration for newbies 2005-07-01 15:36 ` Luc Teirlinck 2005-07-01 15:51 ` Luc Teirlinck @ 2005-07-01 16:58 ` Robert J. Chassell 1 sibling, 0 replies; 7+ messages in thread From: Robert J. Chassell @ 2005-07-01 16:58 UTC (permalink / raw) Lennart Borgman wrote: Which make me think that these two things would overlap if the key bindings where defined through define-minor-mode. It is easier to use the current, standard customization mechanism. Simply load a .emacs file. In it, you can define global keybindings, local keybindings, faces, variables, functions, and so on. You do not need to be limited as lisp/cus-theme.el is currently limited. By adding an `unload-libraries' function, you get both the known-to-work, longstanding method and the newer automatic programming method that the other cus-*.el libraries provide. -- Robert J. Chassell bob@rattlesnake.com GnuPG Key ID: 004B4AC8 http://www.rattlesnake.com http://www.teak.cc ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2005-07-01 16:58 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2005-07-01 7:43 [comp.emacs] Announcing Easymacs: an all-in-one Emacs configuration for newbies David Kastrup 2005-07-01 13:36 ` Robert J. Chassell 2005-07-01 14:21 ` Luc Teirlinck 2005-07-01 14:55 ` Lennart Borgman 2005-07-01 15:36 ` Luc Teirlinck 2005-07-01 15:51 ` Luc Teirlinck 2005-07-01 16:58 ` Robert J. Chassell
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).