Quick
index
main
eev
eepitch
maths
angg
blogme
dednat6
littlelangs
PURO
(C2,C3,C4,
 λ,ES,
 GA,MD,
 Caepro,
 textos,
 Chapa 1)

emacs
lua
(la)tex
maxima
 qdraw
git
lean4
agda
forth
squeak
icon
tcl
tikz
fvwm
debian
irc
contact

Eev and Customize

I never liked Emacs's M-x customize. I always found it very hard to understand, for exactly the same reasons that I find Org very hard to understand. The support for Customize in eev is quite minimal - basically `M-h M-h' knows how to handle Customize buffers, and it can generate links like this one,

# (find-customizegroup 'faces)

that point to a certain Customize buffer - but eev doesn't have functions to display the variables associated to a certain "customization group" yet.

Index:



1. `ee-hyperlink-prefix'

Eev contains several "experimental alternatives to customize". The oldest, and simplest, of these experiments, is from 2005: we can change the value of the variable `ee-hyperlink-prefix' by running `M-x ee-hyperlink-prefix'; note that this runs a command that has the same name as a variable. `M-x ee-hyperlink-prefix' creates a temporary buffer like the one in the screenshot below, in which the `setq' in the second line contains the current value of the variable, and the other setqs contain other common values.


2. `find-elinks-elisp'

In 2021 and 2022 I added to eev these four customization functions:

1. find-red-star-links (screenshot, defun)
2. find-angg-es-links (screenshot, defun, page, video)
3. find-newbrowser-links (screenshot, defun)
4. find-newpdfviewer-links (screenshot, defun)

They are "5-minute hacks", in the sense of my presentation at the EmacsConf2020; the only extra trick is that they are written using `find-elinks-elisp' instead of `find-elinks'; `find-elinks-elisp' puts the temporary buffer in emacs-lisp mode. For more info on "5-minute hacks" see the other video that I prepared for the EmacsConf2020, and the indexes for the main video and for the other one. Click on the thumbnails below to see full-sized screenshots:

The standard "customize" is intended to be used in this way: we navigate through the customization buffers pressing lots of magic buttons - that I never understood well because I'm a very bad user - and the buttons that say "Save for Future Sessions" save some settings in our ~/.emacs or in our custom-file.

My eev-ish alternatives to "customize" are intended to be used in two different ways. If people are willing to chat with me - usually via IRC of Telegram - then I'll diagnose their problems, run one of the functions that I've described above - for example, `find-newbrowser-links' -, cherry-pick some lines from the temporary buffer, send to the person a small chunk of elisp code like this,

;; Generated with:
;; (find-newbrowser-links "g" "iceweasel" "iceweasel-uxp")
;;
(defun find-iceweasel (url &rest rest)
  (find-bgprocess `("iceweasel-uxp" ,url)))
(code-brurl 'find-iceweasel  :remote 'brg  :local 'brgl  :dired 'brgd)
;;
;; Test: (brg "http://www.lua.org/start.html")

and say: put that in your ~/.emacs, and when you want to understand the details run the sexp after the "Generated with:"... and ta-da, problem solved in just a few minutes. The second way is for people who don't want to chat: they can run things like `M-x find-newbrowser-links' themselves, spend some hours or days or weeks following the links and running the tests in comments, and then they'll find the right solutions and modify their "~/.emacs"s themselves.

Note that many "configurations" in eev are done by redefining functions. This only works well because functions in eev are not byte-compiled.


3. eev-wconfig.el

I finished the page above in 2022-04-04, and in the same day it was announced in Emacs News.
Later in the same month I started to work on eev-wconfig.el.