XEmacs Personal Configuration
This is my personal configuration for XEmacs. It's almost as
large as the site-wide
configuration, and it is substantially more complex.
It changes the `default look' of XEmacs a hell of a lot.
First, there's code which is useful at initialization, and only then; it
sets lots of hooks and so forth.
All the paths here are relative to my home directory.
- .emacs (source)
- This loads in a lot of other files, and does some miscellaneous
work:
- Binds a bunch of keys.
- Loads a bunch of things (providing a window ring, improved
scrolling, unique buffer-naming and flashy incremental completion).
- Turns off novice mode; I'm not a novice, but I disliked novice mode
even when I was. XEmacs has `C-h k' for a reason
dammit... this doesn't work without a
patch to fix
a bug related to the `disabled-command-hook'; without that patch,
this turns off the disabled commands completely (hardly what is wanted).
- Does some stuff for the
type-break anti-RSI mode.
- Frobs the colours some more; the colours set here are ones that nobody
other than me, not even other black-background fanatics, seems to like.
- Points the file generated by `M-x customize' somewhere sane.
(Not that I use customize anyway; I like my Lisp to be at least
somewhat readable...
- lisp/init-prog-modes.el
(source)
- This sets my C coding style to be used in directories which are
nominally `personal' (where the GNU coding standards don't need to apply),
turns on `hideshow' (making XEmacs a folding editor), turns on `checkdoc'
mode (to check my Lisp code's documentation for stylistic errors), and
provides code to automatically transform all my Lisp code to HTML; indeed,
the very HTML you're reading here. (Well, not actually this bit; this
bit was hand-crafted. But all the other bits.)
- lisp/init-message-modes.html
(source)
- This does all mail and news configuration that could apply to MUAs/newsreaders
other than Gnus 5.8 and above. It sets fill columns, tells the
Insidious Big Brother Database what my
email addresses are, loads the
bbdb-expire
code, and teaches BBDB how to demangle some people's email addresses.
- .gnus.el (source)
- dot-gnus-articles.el (source)
- dot-gnus-bbdb.el (source)
- dot-gnus-colourization.el (source)
- dot-gnus-mail.el (source)
- dot-gnus-sa.el (source)
- This vastly overblown pile of Gnus
configuration files does many things:
- Teaches Gnus where my mailing lists are located. (The
gawd-misc.el has
already told Gnus where the site news server sits.)
- Defines a grossly overblown colourization system for the Group
buffer, so that you can tell at a glance from the fontification which groups
contain ticked items, important items, unread items, or anything else you
can think of. This occupies most of
dot-gnus-colourization.el
and was almost certainly a complete waste of my time to write...
- Arranges to use TrivialCite
(source) to provide attribution lines.
- Automatically sticks Approved lines in place for some
newsgroups.
- Arranges for every mailing list to automatically be threaded by subject,
because many MUAs are primitive bastards that don't bother to keep the
References header up to date.
- Arranges to grab mail from files in my ~/.Mail subdirectory
and stick them into newsgroups with the same names as the files. (This
is, I hear, far more complicated than it needs to be; it's working around
a bug in earlier versions of Gnus that no longer exists.)
- Sets up advisements so that certain newsgroups automatically have BBDB
entries defined for all people who post in them, while people who send me
personal email get BBDB entries with permanent fields in them,
so that they never get expired. This is horrible code; there must
be a better way to do this. Anyone got any ideas?
- Sets up similarly horrible code to put the SpamAssassin score of mails
in groups receiving SpamAssassin-filtered mail into the Summary buffer,
and to allow reporting and revocation of that spam, in the background,
to Razor and friends (and to the SA 2.50 Bayes database).
There are lots of other fiddles that aren't described here, too.
Everything below here is fairly boring Lisp support code.
- lisp/nixlist.el
(source)
- This provides functions to splice elements into the middle of lists, and produce
the power set of some list. (Or at least the almost-but-not-quite power set. I
wrote this for a single purpose and never fixed the bugs in it.)
- lisp/auto-edit-substitute.el
(source)
- This provides one function, `auto-edit-substitute', which provides a
rough analogue of sed, in Lisp, but with more power. It gives the
ability to carry out truly arbitrary transformations on arbitrarily marked regions
of files.
- lisp/timeclock-visualize.el
(source)
- This lengthy piece of code contains a function to transform a given
week's timesheet entries in John Wiegley's
timeclock.el into an HTML timesheet, a function that uses
that to generate a webpage containing a timesheet for a given week
(including the non-timesheet-related markup), and a function that keeps an
index of timesheets up to date (including creating new timesheets for
weeks that exist in the raw log, but don't exist in the index). I use this
code at work and transferred it back to the home net for no clear
reason.
Nix
Last modified: Fri Aug 17 21:33:30 BST 2007