A person of emacs: acdw

This is my entry to the Emacs Carnival for December 2025, hosted by George Jones. The theme is “The People of Emacs”.

2025 is my so-called tin anniversary for emacs: i’ve been using it for ten years now. In that time, i’ve slowly learnt enough to be able to manipulate it into doing a lot of the things i want my computer to do, in the kind of way that i want it to do them. But i didn’t undertake this journey on my own. One person has done more to teach me about the underlying philosophy of emacs than anyone else, and that person is Case Duckworth, also know as acdw.

I joined the tilde.town unix server in 2019, which was how i came to know acdw. He was always friendly and cracked the most excellent jokes. He also has done some pretty impressive things with shell scripts. At some point i found out that he also used emacs, and i joined the #emacs channel in the town irc.

I think that in many ways, the emacs mindset and the shell script mindset are quite similar; people who do cool stuff with shell scripts generally don’t do it because their goal is to write some fast, robust software. Shell is a pile of junk; it just so happens that a pile of junk is a very practical building resource. And the acdw mindset is to say, wouldn’t it be funny if i made something with this junk that is just smooth-edged enough that i can use it every day? And then you end up with markup languages, gemini browsers, and website generators written in shell.

Emacs can be seen as an extension of that. Maybe it’s a little bit more robust, but ultimately you’re playing with fire, and i still frequently make the wrong change to the big lump of state that is my emacs. For the first four years of my emacs using life, that meant that all i did was install packages that other people had made, and gently place them into my configuration file, and call it a day.

The “underlying philosophy of emacs” is quite a pretentious phrase, but i think that it can be summed up thus: “wouldn’t it be funny if i made something with this junk that is just smooth-edged enough that i can use it every day?” And then you actually go and make something. That second step is the core of emacs, and the missing puzzle piece that acdw taught me. Using emacs makes it very possible to actually go and make a change, and although you will not end up with something perfectly polished, it will probably be good enough that you can use it every day.

Often in the irc i would voice some annoyance about how emacs worked, and acdw would say, i bet you can do something about that. And then he would disappear for five minutes, and five minutes later he would come back and drop a few tens of lines of elisp in the chat and say, that’ll probably do it.

Emacs docstrings are usually hard-wrapped at eighty characters, a choice that, given that emacs is fundamentally made up of windows of flexible width, downright perplexing. Most of the time i see that documentation, it is wrapped in such a way that all the lines are jagged and i find it very difficult to read. Here’s a function and some advice, acdw said, and then my help buffers were readable.

Emacs indentation is a wild and incomprehensible black hole, and even if you are on team actual tabs, sometimes it simply makes more sense to use spaces. I wish i didn’t have to disable indent-tabs-mode in a hook for every mode i want spaces. Here’s a variable and a loop, acdw said, and then my tabs and spaces were correct.

I wanted to make a colour scheme with a very limited palette, but had been writing exactly the same things in about a million different face definitions. This is tedious, i said. Why don’t you try defining the repetitive bits at the top, and then just slot them in to every face definition as and when, said acdw, and then my theme suddenly became much easier to write, and easier to change.

See, emacs lisp is a programming language, and emacs is made of emacs lisp, so you can write code and make emacs do stuff. And the key part of that sentence is you can do stuff, not just the people with packages on github with a few hundred stars that you can download from melpa. You can notice you’re annoyed by something and flop around in the scratch buffer for ten minutes or so, and alter the way emacs does something so it’s a bit less annoying. Most software doesn’t let you do that, and i think we often don’t realise that it’s possible. But acdw realises, and when faced with something that isn’t quite right, instead of sighing and living with it under a cloud of annoyance he thinks, could i improve the situation by ramming a screwdriver in the side there? And maybe that would make it worse, and maybe it would make it better, but there’s only one way to find out, and that’s to grab that screwdriver and ram it in the side there.

Acdw rams screwdrivers with such joyful fervour that it infects everybody. I have been infected, and now i too am a screwdriver rammer. With the right person to teach and encourage you, you come to realise the fundamental nature of emacs: emacs is just one enormous screw.

So that’s why acdw is my person of emacs: it is from him that i learnt the underlying philosophy of emacs and it is from him that i learnt the fundamental nature of emacs.

emacs

𓈝

This site is a part of the no ai webring. Travel backward, travel forward, or try a random site!