wax banks

second-best since Cantor

Category: computering

Irreal Life Top 10, Thanksgiving 2022.

irreal life top 10, thanksgiving 2022.

This is a thing I do sometimes. Title and form after Greil Marcus, tone from elsewheres.

  1. ‘Inclusion.’ Like harm, it’s been defined out of any recognizable meaning by the hall-monitor class of self-styled ‘progressive’ types: you are now as ‘included’ as you feel, and if you can’t instantly see why that’s a problem then I’ll assume you’ve never interacted with humans before. (Hint: I can’t change your feelings, and am not even allowed to assess them for myself — so how can I possibly know or change your inclusion-status, for the better or worse?) The new discursive fashion is to claim that Mastodon (q.v.) is insufficiently ‘inclusive’ because its decentralized, federated — i.e. hyperlocal — structure militates against ideological orthodoxy and the empowerment of a ‘protected’ class. The actual content of the ideology in question doesn’t matter; this rhetorical arrangement is a trap laid by the ascendant self-appointed nationwide HR department.
  2. Mastodon. A slow-moving, high-friction, decentralized/federated halfway point between IRC and Twitter, with a number of built-in checks on ‘virality’ and several judiciously chosen ‘missing features’ (e.g. no equivalent to quote-retweets). Most bourgeois complaints about it boil down to ‘I don’t want to start my Twitter clout-farming over from scratch, and I’m not computer-literate enough to manage the minor irritations built in to this platform’; one common variant is to complain about decentralization making it impossible to set up a status-seekers’ corporate nanny-state like Twitter became. Holds infinitely more promise than Twitter ever had, and is a bigger pain in the ass than IRC — indeed, Mastodon will be a nice low-intensity break for many people, me included, but it won’t (in its present form) get anywhere near Twitter in terms of scale or reach, partly because of the macrocommunity’s desperate longing for paternalistic moderation. That said, the chance to start over is priceless. And make no mistake, that’s what’s happening: a brief bad chapter in USA cultural history is ending. Something else is starting, and we might get to decide what it is.
  3. Alice Coltrane, DIVINE SONGS. I’ve been on Journey in Satchidananda and Ptah, the El Daoud for years like every other fan of weed music, but reached midlife before getting hip to Alice’s own midlife music. She spent the decade after her husband’s death raising her kids and keeping John’s music moving to the next place, but not too far beyond — still in a recognizable ‘spiritual jazz’ subgenre for the most part. Jazz people knew she was serious (see Ethan Iverson’s obituary) but partly because of the ambivalent-at-best consensus about Trane’s post-Love Supreme work, for years Alice was unfairly presented to tyros as the Hippie Widow, a curious footnote to her husband’s final act. Thankfully Alice’s music from that period has been more broadly reconsidered since her death, and she’s now correctly understood as an important psychedelic artist and heavy jazz player in her own right. This collection of homemade devotional songs goes way beyond her 70s work, though, into an astounding fusion of deep blues and rapturous New Age synth-colours(!) — not quite jazz but so what. Religious music isn’t normally this hip. Heroic, fully realized personal expression from a faithful seeker. (Geeta Dayal wrote a great piece for the Grauniad about the Luaka Bop reissue of Alice’s ashram tapes back in 2017; Geeta earlier wrote a beautiful personal essay about Satchidananda for the 2007 Marooned anthology.)
  4. Rian Johnson, GLASS ONION. The sequel to the perfectly executed Knives Out is the smartest agitprop you’ll see this year, a thrilling and funny and unexpectedly harrowing story about privilege, power, and the ideological limits of the drawing-room mystery. Both films are ‘secretly’ about minor(ity) characters whom fans of Doctor Who would identify as ‘companions’: Ana de Armas in Knives, Janelle Monáe here. (Spoilers follow.) Playing a character uncomfortably named after Sandra Bland, Monáe is deliberately underwhelming in the first half of the movie in order to set up its manic second half, which she then carries almost singlehandedly — where Knives Out slowly shifted focus to de Armas’s character while maintaining a relatively familiar formal character throughout, Glass Onion daringly breaks genre-narrative frame to embed a second story about the (fantastic) hero-detective Daniel Craig ceding power to Monáe’s haunting/haunted character. (Maybe that’s why The Last Jedi was doomed — Johnson’s story about handing story-control to a ‘nobody’ was misshapen by the fact that Daisy Ridley’s winning Rey was an empty vessel for wish-fulfillment, both the most powerful being in the story-universe and its sympathy-magnet. The deck was stacked for ideological reasons at the expense of story.) Onion‘s ending is a brazen progressive carnival that’s also perfectly satisfying in genre terms; longtime readers may pick up on the significance of me using ‘progressive’ without scare quotes. It’s that serious. Johnson means every word of this masterful film — he’s completely in command, from sly script to expert ensemble direction. And not for a second does this fiercely political artwork devolve into lecture. It’s just really, really good at everything it sets out to do — even the Breaking Bad homage is funny. And get this: the villain is Elon Musk! I’m sick with envy. See it in theaters so they keep throwing money at Rian Johnson.
  5. Kanye West, ‘Monster.’ Obama was right to dismiss him as a jackass and it’s sad that he’s genuinely lost his mind (rich asshole/fools getting divorced do tend to), but West’s self-consciousness and extraordinarily fertile musical talent made for a run of albums that’ll stand the test of time and deserve to. ‘Monster’ will stand the test of time because, after Kanye spits an ordinary verse with one extraordinary pharaonic couplet and Jay-Z tries for the millionth time to remind everyone he has nothing to say (we believe you Shawn dear), Nicki Minaj throws herself a patently insane debutante ball with an Eminem-level guest shot. The final lines — ‘Now look at what you just saw, this is what you live for / AAAHHH! I’m a motherfuckin’ monster!’ — are pure unvarnished truth, both perfect cathartic narrative resolution and sufficient justification for the rest of her career, none of which has been remotely interesting because Kanye West she’s not. (Ever notice how you can tell an arts-school grad from a mile off?)
  6. DARK. Turns out the thing Lost was missing wasn’t meaning or sense or courage or convictions, but rather a hilariously bad English dialogue dub. This German show is a total waste of a superb premise on pure puzzle-box cliffhanger design, or so it seems from the half-season of melodramatic deferral and scriptwriter onanism I was able to tolerate before realizing I actually like meaning, sense, all that shit. (Spoiler: the cave is a time-travel portal, which you’ll guess from the pilot.) Imagine a miserable, contemptuous version of Stranger Things and you’re halfway there. No need to go further.
  7. Emacs 29. The most impressive piece of end-user software yet written is nearly a half-century old and still embodies an anticapitalist philosophy of freedom which is more dangerous now than ever — that’s why it’s routinely derided by Right-Thinking pseuds just shrewd enough to know that one synonym of ‘dangerous’ is ‘unemployable.’ Version 29 is a massive update to a program that remains far more modern than it looks, radically designed and thoughtfully maintained; that there’s no other software comparable to it is heartbreaking testimony to what was lost when the movement for liberatory personal computing was strangled and devoured by the ascendant industry for personal computers. The fundamental problem with Emacs, from the perspective of the ‘mainstream,’ is that its development isn’t driven by greed; there’s no ‘therefore,’ that’s the problem itself. Freedom is a sickness. Eppur si muove.
  8. Tom Petty. Who’s more overrated? Billy Joel? Jay-Z? Pink Floyd? The fucking Doors?
  9. Hakim Bey against ‘curation.’ ‘The parallel term in sufism would be “journeying to the far horizons” or simply “journeying,” a spiritual exercise which combines the urban & nomadic energies of Islam into a single trajectory, sometimes called “the Caravan of Summer.” The dervish vows to travel at a certain velocity, perhaps spending no more than 7 nights or 40 nights in one city, accepting whatever comes, moving wherever signs & coincidences or simply whims may lead, heading from power-spot to power-spot, conscious of “sacred geography,” of itinerary as meaning, of topology as symbology…travel as the antithesis of tourism, space rather than time.’ (from T.A.Z.)
  10. ‘Protect me from what I want.’ An insightful, if perhaps somewhat politically naïve, essay from Tim Bray calls for bottom-up development of recommendation algorithms for ‘social’ media — and intriguingly suggests incorporating a platform for creating and sharing such algorithms into Mastodon and the ‘fediverse.’ But I’m left with the suspicion that ordinary human minds are constituted such that it’s (all but) impossible for someone to design his own ideal recommendation algorithm — he can satisfy his articulable conscious desires, maaaaybe, but the deep-down stuff will presumably elude expression and understanding by definition. Which leaves me wondering, perversely, whether it’s possible for our own deep desires to be unearthed and played upon without exploitation. Feeling strongly but not simply is the least we can do, so I’ll end here for now.
Advertisement

Irreal Life Top 10, Labor Day 2022.

Working so hard for those clicks that I’m spelling it ‘Labor’ instead of ‘Labour,’ whaddaya think of me now. Nothing irreal about this but there’s no changing the series title now.

  1. Cherry Brown, Kailh Silver. Having made everyone’s second choice of keyswitches (Cherry MX Browns) when I bought my keyboard, and now having bad RSI for the first time in many years, I ended up switching this weekend to Kailh Speed Silvers while casting about for possible fixes. The keyswitches are the spring-loaded mechanism below the cap; you don’t see them and they’re what matters most in terms of keyboard feel. Cherry Browns are ‘tactile,’ i.e. there’s a bump in the key travel which you can feel; Kailh Silvers are linear switches, with no bump, just continuous resistance. I’m making an effort not to ‘bottom out’ or move the keys through their full travel as I type, sacrificing that incredibly gratifying THOCK sound on the altar of hand fatigue. I thiiiiink it’s working? Kailh Silvers are made for gaming so they actuate when you breathe on them, feather-light; the upshot is that I’ve moved fatigue from wrists to biceps, which is fine, and the experience gives much less sensual pleasure. It’s like I’m aging in reverse. I’ve got some Kailh Coppers coming, I think — short travel, light high actuation, tactile feel. Might not be worth it, but they’re not expensive. (I think I got 110 of them for $30, anybody need some keyswitches?)
  2. Harry Potter music. John William’s scores for the first three movies establish a soundworld on the Star Wars model (grounding fantasy doings in symphonic somaticism and familiar leitmotif) which seems inevitable in retrospect, even obvious: brass fanfares and low-string ‘mystery’ themes and the perfect ‘Hedwig’s Theme’ for initial Hogwarts impressions in the tween coming-of-age films, shading into richer darker colours as the generational story deepens and complicates. The third and best-by-a-mile film gets a very fine score from Williams, full of stark contrasts, eerie textures and shapes (the scansion on the witch-song is fucking strange), and several clever transformations and elaborations — check out the wide variations on Hedwig’s theme throughout the finale, ‘Mischief Managed!’ It’s all characteristically Williams in Spielbergian-wonder mode, though he stretched impressively for the Azkaban score. The rest of the series got a different composer every film or two, though: Patrick Doyle, Nicholas Hooper, Alexandre Desplat. Results were mixed. Doyle’s Goblet of Fire score sounds like him and like Hogwarts, though not quite like Williams (without thinking about it, my sense is that the audibly Scots-Irish Doyle seeks/gets a very different brass sound in particular; damn I used to love his Frankenstein score), Hooper’s scores go for whimsical mimesis (the best moment in Phoenix has no music, but his ‘Weasley Stomp’ is a useful reminder that Williams was very much an American tourist in Rowling’s imaginary Britain), and by Deathly Hallows Desplat conjures a diffuse melancholy hardly recognizable as Potter-related, which unfortunately fits those movies well. Unlike, say, the Star Wars or Lord of the Rings scores — which flow together into impossibly rich macrocompositions — the Potter soundtracks stand apart from one another, sonically and thematically, and I’m not tempted to throw them all on for a long day’s listen. But amidst the stupidities of the Rowling-related cultural conversation, it’s nice to be reminded of how skillfully executed these ordinary movies are.
  3. Nuns on the run. On Adam Roberts’s enthusiastic recommendation I’m reading Sylvia Townsend Warner’s The Corner that Held Them, the generations-spanning novel of a 14th-century English convent; after 250 pages I’m comfortable calling it the equal of any novel I’ve read in years. I keep wanting to compare it to Le Carré, his subtly barbed humour and skillful interweaving of the individual psychology of desperately focused people and their historical moments too vast to get ahold of, or even know about — only Warner writes men and women with equal mastery, which places her beyond Le Carré in at least that regard. The nunnery feels perfectly real, though the inside of that physical location is barely described (while the local countryside is vivid and clear); the women and men in the community are human beings, fully realized and empathetically, humanely rendered. Just an inspiring, perfectly executed novel. I’m sick with envy.
  4. Firefly. As preparation to run my Traveller-plus-Jedi RPG campaign with the lads, I threw the two-part Firefly pilot on the ol’ TV, and was reminded that Joss Whedon did the best, most perfectly realized work of his life while balancing three TV shows. Firefly is a masterwork in the classical sense, a carefully controlled showcase for every skill its chief maker had learned (though let’s not discount the contributions of his expert cocoreator Tim Minear). Whedon’s never been funnier or wiser, never worked successfully on so many levels at once. But even with inspired scripts and searching direction/production, the show might’ve fallen down without a star on the order of Sarah Michelle Gellar (or Gandolfini/Falco, Bryan Cranston, Julia Louis-Dreyfus), someone Whedon could count on to make sense of his characteristic tonal whip-pans and wild register jumps. Here Whedon lucked into a partnership with his most gifted male performer, the fucking Canadian Nathan Fillion, who gave the performance of his life in a role as rich as Buffy Summers — and then, with a sly character actor and ensemble comic (and born Western hero) at the top of the call sheet, the Firefly team surrounded Fillion with an oddball cast of equally multifaceted performers, literally any one of whom could easily have carried a spinoff. Special mention to Alan Tudyk, a comic virtuoso, and the astral projection known as Morena Baccarin, who slowly unfurled maybe the broadest range of talents in a talented cast. (Bonus points to a young Christina Hendricks as Saffron; watching her flirt with Baccarin in ‘Our Mrs Reynolds’ is one of the greatest experiences of my human existence.) The fact that this show existed at all is one of its fallen medium’s rare blessings; the fact of its cancellation is just another fucking crime. The sequel-feature Serenity is an overstuffed and hurried valedictory that boasts several classic Whedon sequences and a magnificent climactic showdown between Captain Tightpants and the impossibly charismatic Chiwetel Ejiofor; it’s a nice consolation but can’t touch the original series. Few shows can.
  5. ‘Effective altruism.’ Mostly the same sort of fraud as ‘AI alignment’ and indeed ‘rationalism’ writ large, starring mostly the same sorts of people. @chaosprime definitively sums up on Twitter: ‘Weird that EA converted on a focus that is addressed by nerds getting tons of money to 1) sit in rooms thinking big math thoughts all day then 2) telling other nerds what to do’.
  6. Harvard undergrads. They neatly illustrate, by contrast, how dowdy Cantabridgians are during the sparsely populated summer months; on the other hand, they manifestly couldn’t find their dicks with two hands and a dick map.1 Harvard Square in late August is trying for those of us who find privileged teenagers not just the worst but the most boring thing on earth.
  7. Frisell. How many artists are so powerfully and equally committed to both the gentlest moments of beauty and vulnerability and the weirdest psych-sonics? Listening to his debut In Line (recorded 40 years ago this month!) is one of those improbably deep experiences, where there seems to be too much detail to permit entry, much less immersion — too much pick and prickle — yet the sound slips across and around and then opens into something deep and enveloping, a whole soundworld in less than 45 minutes. Frisell is like Fillion: confident, unassuming, deep feeling, so’s you might not notice his virtuosity. I’ve enjoyed every note I’ve heard him play, but this album (maybe not surprisingly, as it’s half solo/overdubbed tracks) feels close to the bone. And Eicher’s production is just what the young seeker needed, of course.
  8. House of the Dragon. Unnecessary — and after the catastrophe of the latter seasons of Game of Thrones, faintly embarrassing — but Fire and Blood, the mock-scholarly Game of Thrones ‘prequel’ it’s based on, startled me years ago by being a joy to read and (fannishly) contemplate. It’s central to GRR Martin’s grand project and obviously dear to his heart, and you might read it instead of watching the show. Then again, I said that about Game of Thrones itself. Then again, I was right.
  9. Provisionality. Louis CK describes his creative technique in an interview: ‘When I develop material that’s in tough places, I have a method: I say the worst version, and then usually, they don’t like it. But I listen to that. I listen to the “Ugh,” and there’s a sound in it… Either I’m gonna take that “ugh” and I’m gonna play with it, or I’m gonna find a way around it… I need to hear the dissent… Sometimes I’m like, “I don’t want to upset these people tonight.” But I know there’s a bit in this that they’re going to like. And I work on it and work on it, to the point where everybody likes it… Every bit that I have that’s a great bit, started as: nobody wants to hear it.’
  10. Oscar and Basie. Peterson was a skillful host of his variety/interview TV show, and the Count was a wonderful guest, but their wordless opening duet is something more than entertainment: it’s a privilege to see an old master simply enjoy himself in the loving company of a younger master. Peterson’s adoration of Basie is evident, as is Basie’s love and admiration for Peterson. Their relationship to one another is their relationship to the music. It’s beautiful. There’s a moment in the video when a closeup of Peterson’s astonishing hands dissolves to a similar shot of Basie’s, gently stroking the piano keys like they’re his wife’s tired fingers and hands. Not much room in noisy transient modernity for quiet moments like this with a cherished elder, listening close to his life’s music. This is one of things jazz is for. This is what it is.

  1. Metaphorically speaking. 

Some hints for the new or prospective Emacs user.

Emacs is enormously complex — but not complicated. There aren’t a lot of moving parts to learn about, but they interact in fantastically rich and complex ways, and it can be hard to know where to start.

I wish I’d had a ‘here are the standard components of a good Emacs setup’ guide when I started. There are distribution packages that handle such setup for you — Doom, Spacemacs, et al. — but if you actually want to be an expert Emacs user, you’re far better off getting comfortable with vanilla Emacs and then (if ever) switching to a prepackaged distro once you know what you want. The value of Emacs is lost when you hide its inner workings behind such ‘sugar.’

Emacs might be the most impressive single piece of software ever written for personal computing (not counting operating systems etc.). With great power comes great responsibility; here are some tips for absolute beginners, to help you claim them both.

My imagined reader is an interested non-programmer wondering about this weird and supposedly powerful tool. Experienced programmers should rely on other guides to get started, though newbies might learn something.

Learn about M-x

Start Emacs, then type Meta-x — on a Mac this should be Option-x, on Windows Alt-x. The cursor will move to a one-line text area (the ‘minibuffer’) at the bottom of the screen. This is a place to talk directly to Emacs. It awaits your input.

Type kill-emacs, hit Return, and congratulate yourself on a job well done.

Meta-X, abbreviated M-x, is the standard ‘invoke a command’ key combination. After invoking M-x, you type the name of a function — a small piece of computer code defined within Emacs — and hit Return. Emacs tries to run the code.

There’s a lot of functions available. Emacs exposes its guts to the user; that’s the source of its astounding power, the feeling of weird freedom it grants.

But don’t type M-x kill-emacs anymore — C-x C-c will do from now on.

Learn about C-g

Type M-x kill again, but don’t hit Return — we’ve changed our mind, we want to live!

Hit Ctrl-g (abbreviated C-g).

Nice work, you just canceled a command, or more precisely you just executed the keyboard-quit command.

C-g is bound, by default, to the universal ‘cancel and escape’ command in Emacs. Get used to it. (I’ve got that command remapped to the actual Escape key, for reasons.)

Swap Caps Lock and Control

Caps Lock is nigh useless and Emacs will wear out your Ctrl key real fast. Figure out how to swap them on your computer/keyboard, and enjoy knock-on benefits from consigning Caps Lock to the bin where it belongs. Better yet, sell your car and buy a ZSA Moonlander keyboard instead, then set up homerow modifiers. I’m not joking — the ergonomic benefits are huge, beyond even the major ergonomic upgrade from moving to a split/tented configuration. (No one with normal hands/arms should ever use a ‘normal’ keyboard again.)

Learn about online help

Hit C-h, then k. (In emacs documentation this is written ‘C-h k,’ get used to that nomenclature.) You’re now in help mode, specifically executing the describe-key function, and you are prompted to type a key command. Type M-x and look what pops up: the name of the function ‘bound’ to M-x, and a description of that function.

Now hit C-g, or hit Escape three times (these are basically equivalent). The popup help area is dismissed.

Emacs has extraordinarily rich help of this kind: describe-function and describe-face (as in ‘typeface’) and describe-bindings, but also an excellent built-in tutorial and a famous batch of very long manuals whose first editions date back several decades.

Knowing how to get help with and from Emacs will make the experience much much smoother.

Learn about your init files (like .emacs)

You’ll spend a lot of time tweaking your ‘init files’ later — e.g. your .emacs file in your home folder. What you need to know right now is this: they’re not just preference files. Your init files are themselves computer programs, executed line by line every time Emacs launches, written in a language called Emacs Lisp or elisp. To configure Emacs, you’ll write code — arbitrary code — and this is one of the most badass things about Emacs. Normal settings/preferences files specify adverbs, and the software sticks to its standard verbs; your init files let you provide the verbs directly.

See, Emacs is an umbrella for running other pieces of software. It’s like a word processor, but it’s even more like the operating system a word processor runs on.

There are good tutorials online and loads of sample init files to browse, as well as the excellent Emacs Manual.

Learn about buffers, windows, and frames

In Emacs, ‘everything is a buffer.’

Sorta.

  • What you call a ‘window,’ Emacs calls a ‘frame.’
  • What you’d call a ‘pane’ or equivalent — half of a split screen, say — Emacs calls a ‘window.’
  • And a buffer is an area containing text, sometimes — but not always — connected to a file, i.e. ‘visiting’ a file.

When you start up Emacs and get kicked to the *scratch* buffer, you see *scratch*, the minibuffer, and the modeline (which isn’t a buffer, actually; rather it’s a feature of the window it’s in).

When you open the calendar (M-x calendar), up comes a read-only calendar-mode buffer. In calendar-mode — a ‘major mode’ — pressing ‘o’ brings up a prompt to enter a new calendar year, i.e. ‘o’ is bound to a calendar-specific function in that major mode. (Hitting ‘q’ exits the calendar program…but doesn’t kill the buffer, per se. Don’t worry about it.)

Each buffer has a current major-mode, and any number of minor-modes (including global ones which apply to all buffers). Understanding how these work and interact is essential to navigating Emacs, and a huge help when it comes to learning commands and keystrokes.

Learn about modes

Way beyond the scope of this document, but you need to be able to answer a few questions:

  • What major-mode is currently active?
  • What minor-modes is currently active?
  • What’re the keymaps for these modes?
  • How do I change these things?
  • How and when do modes get invoked?

Thinking of a ‘mode’ as a ‘syntax’ will get you a lot of the way there, but not all the way.

Print a movement cheatsheet

I like this one. Getting around Emacs buffers can be weird, and the commands you’re probably used to probably don’t work ‘right.’ Learn the Emacs commands, even if they seem weird or stupid. Weird doesn’t matter if you’re fast and accurate. You should put in the time to master moving quickly around the buffer.

Learn how to execute elisp code anywhere

In the *scratch* buffer that opens when you launch Emacs, type (+ 2 3) and, with the cursor just after the closing parenthesis, type C-x C-e. Check out the minibuffer: it should say ‘5’ and you just executed a bit of Lisp code, which should be easy to decipher even if you’ve never seen it before.

Remember how your init files are computer programs? And now you’ve just run a very short program in the middle of a random textfile. Understand: Emacs gives you access to its own guts, all the time, no matter what you’re doing at the time.

You’ve never had this degree of control over a piece of software before, this level of introspection available. You interact with the program by altering it… If you’re thinking it through, that should be a head trip, the kind that’s good for you.

OK, so much for the ultra-simple stuff. Now for the ‘…but how do I make Emacs more normal?’-type advice.

Select a package manager

Emacs loads extensions or ‘packages’ on launch. You download a package (M-x package-install, then specify name), and load it up. Doing this manually is a pain in the ass — and it makes your setup/config much less portable, since you can sit down at a new computer with the same init files and not have the packages you need to make them work.

Use the use-package or straight.el package-management tools. I use and recommend the former.

Get a narrowing-completion framework

Now we go into the weeds just a little bit.

Every Emacs user relies on a tool like Ido (interactive-do), Ivy, Avy, Helm, et al.: programs that let you narrow a list of choices, select quickly and smoothly, and do smart things with your selection. For instance, you wanna be able to type M-x packinst and have Emacs figure out that you mean package-install — this is ‘fuzzy finding’ and the vanilla alternative is terrible. When you run find-file (C-x C-f, i.e. ‘open’), factory-fresh Emacs behaves like the command line, where you’re expected to type exactly what you mean and get only tab-completion to save trouble. But look up Ivy and Helm online and see what else is possible.

Same with searching in a buffer. Emacs’s built-in incremental search function is good — try C-s * in a buffer full of text — but a jump-to-match tool like *avy is insanely good. Once you’ve tried it, you won’t want to go back to the mundane world.

Get in-buffer completion

Distinct from list-completion is a tool like Company (‘complete anything’), which autosuggests and does code completion. When I’m typing in my personal wiki, if I pause mid-word for a fraction of a second, company’ll pop up an ‘are you trying to link to this file?’ suggestion; I hit return to get a properly formatted link right there, boom. You need a tool in this class, which leapfrogs the whole pack of ‘minimalist text editors’ which so fascinate dabblers and dilettantes. (If you’re after that hipster typing experience, pick a classy font and turn on writeroom-mode or darkroom-mode or olivetti-mode.)

Pick a nice theme

Stock Emacs doesn’t look like anything, unless ‘old’ is a look. But it’s got loads of themes available, some (e.g. Zenburn, Monokai, Gruvbox) really very nice. There are even packages to enable live theme previews. Add commands to your init file to download and enable the theme you like, then…

Sync your init files

Dropbox, Github, Syncthing, whatever. (Github might be best because no overhead: anywhere you have a command line and an Internet connection, you have your files.) Pick a service, sync your init files between machines, and carry your Emacs everywhere you go. You don’t realize how empowering this is until you do it, then you can’t not do it.

Learn about keymaps

There is a logic to Emacs key commands, and there is an implicit keystroke ‘composition’ happening behind the scenes — learn about mode-specific keymaps and the subtle mnemonics will start to reveal themselves. When I’m in markdown-mode, say, C-c C-s is a prefix to nearly 30 markup commands, e.g. C-c C-s b for boldface. The logic is sane: C-c for user/mode commands, C-s for insssert(!), b for bold. On an ergonomic keyboard this is quick and, crucially, discoverable.

And you should install which-key ASAP, to prompt you when you’re not sure of a command.

Emacs’s commands lack the tight focus of vim’s bespoke fingertip-interface, but so does everything; vim is a hyperoptimized, narrowly focused tool, Emacs is a cosmos. Yet once you get that there’s an implicit modality to Emacs’s keyboard UI, you can start tailoring individual shortcuts to your preferences without having to worry about colliding with some other definition. And of course, C-h k is your friend.

Tighten the modeline

Use diminish/delight to remove unwanted minor-modes from your modeline, grab a useful theme (I use spaceline), and get the program working (and looking) exactly the way you want it.

Get markdown-mode or whatever

The target audience for this article probably writes in Markdown a fair amount. Jason Blevins’s markdown-mode is really good; set it up to auto-engage when you open a .md/.mdown file, get comfy with the shortcuts, and you’re just about ready for md-roam (q.v. ‘org-mode’ below)…

Consider evil-mode

One of Emacs’s dirty open secrets is that its keybindings are borderline insane. Even something as simple as ‘C-g to cancel’ — seriously, not just Escape? You have to engage your stupid pinky finger hundreds of extra times a day? (Assuming Ctrl is in its usual place, that is…)

I use Escape in place of C-g, but that doesn’t help with ugliness like ‘M-} to go down a paragraph.’ And I use a frankly expensive Moonlander keyboard that gives me homerow modifiers — but I only have so many fingers and don’t love stretching for chords all the time.

Consider evil-mode, which is not just the best but the best possible vim emulator in the business: a full-on modal editor with all of vim’s famously terse, ergonomic, and composable key commands, atop Emacs’s fantastic extensibility and power (and using elisp for extensions, instead of the widely disliked vimscript). Imagine floating on vim’s interface, and being able to dive into Emacs whenever you like.

If you can get comfortable with modal editing (where hitting Escape pops you out of typing mode into navigation/command mode, freeing up your basic single-stroke alphanumeric keys for stuff other than typing), then evil-mode is one of the hidden killer apps for Emacs — a ‘better vim’ built in to the editor that’s supposed to be vim’s, I dunno, nemesis or something.

Notice some minor tools

Try M-x calendar and M-x calculator. Pretty nifty, eh? And each is just a buffer, meaning all the ways of manipulating a text buffer’s contents are available to you inside these ‘minor’ tools.

Consider org-mode

Holy shit, org-mode.

Along with evil-mode, org-mode is Emacs’s secret weapon — but where evil-mode is there to bridge the vim/Emacs gap to make Emacs a better pure text editor, org-mode is a whole ecosystem of unique software tools. And org-mode is not just Emacs-native but basically Emacs-only. At its heart, it’s a task-manager, outliner, and personal productivity tool; it does things like automatically gather to-do items from every file in a project into an agenda, that kind of thing. It is, and yes I know this sounds crazy, easily the best tool of its kind — get your setup Just Right and it’s the last productivity software you’ll ever need. And it’s deeply integrated into Emacs, down to the bones. Capture a to-do item from inside any buffer. Insert a link to an org outline item (node) into any file, along with dynamic to-do status tracking. Track overall project status in futureproof portable plaintext using tools that automate all the clerical work. Export to a million formats. (People write entire scholarly books in org-mode w/bibtex on the backend and spit out gorgeous LaTeX with a keystroke.)

I use an org extension called org-roam (which began as a Roam Research emulator) to maintain a slowly growing ‘zettelkasten’ or ‘personal knowledge management’ setup. It’s great — but org alone is insanely powerful.1 Indeed, if you’re on the fence about whether to try Emacs at all, org might be what pushes you over to this side. (It’s one of the biggest Emacs/vim differentiators, certainly.)

(Mac users: there are tools to connect org-mode to programs like Drafts, to move you toward ‘ubiquitous capture.’)

Check out magit

Magit is the best frontend for git. There’s just no serious competition in GUI-land or at the command line. You think I’m being hyperbolic, but for God’s sake go have a look.

Check out GNU hyperbole

This one you’ll have to see for yourself: an all-purpose ‘turn textual features into buttons’ machine. You don’t need this software — I don’t use it — but it’s one of the most outlandish achievements in the Emacs sphere, just a terribly impressive and useful piece of software. It’ll change how you think about text editors, which is sort of the point of this whole exercise.

Quality of life

From here you can start making quality-of-life improvements of varying scope:

  • dogears to supplement Emacs’s persistent bookmarks with quick per-session bookmarks
  • marginalia or equivalent (e.g. ivy-rich) to display useful information during interactions w/Emacs
  • org-roam or deft for managing libraries of notes
  • flyspell (with aspell behind it) for strong spellchecking, and flyspell-correct for the right interface for your completion framework
  • avy, because it’s a different paradigm from the ‘standard’ helm/ivy approach and it’ll help wean you off those pesky non-ergonomic arrow keys, which are killing you
  • crux, though you’ll soon end up replacing all its handy constituent functions with features of other packages
  • dirvish for a way better file-nav experience, and either dirvish-side or neotree or equivalent for a folder-hierarchy sidebar
  • all-the-icons for all the icons
  • org-bullets and org-ql and oh there’s so damned much you can do with org-mode
  • yasnippet, which brings snippets over from textmate/sublimetext and makes them way more powerful (you can execute elisp code in a yasnippet)
  • projectile, obviously, for usefully restricting search to a project and integrating nicely with loads of other tools
  • visual-regexp-steroids, if you want realtime previews of regular expression substitutions plus freedom from Emacs’s indescribably irritating regex syntax (all those escaped parentheses!)

Put simply: your first days with Emacs will be interesting but difficult. But one day you’ll find yourself doing something that’s simply impossible with literally any other text editor ever written, and something down deep will awaken — it’s not a text editor, it’s a Lisp runtime that edits text — and you’ll spend the next however many years dealing with, and figuring out for yourself how to take advantage of, that knowledge.


  1. I’m switching away from org-roam for non-org reasons, beyond the scope of this article. 

M-x midlife-mode.

(written about a month ago)

A few months ago I made an abortive attempt to learn vim. Well, one hits midlife and wants to shake things up, it’s natural. But one mustn’t go to extremes.

I quickly realized that while I admire vim’s ergonomically sound modal editing approach — wherein you type awhile in Insert mode, hit Escape to remap all the keys to navigation/manipulation commands, then hit I to return to typing — and while it’s handy to command a tool that’s preinstalled on every unix machine, vim doesn’t feel to me like a step-change in capability. I already have a perfectly good standard-issue text editor (Sublime Text), and my layer-centric keyboard already picks up some of the ergonomic advantages of vim’s modal approach.

So lately I’ve been learning emacs instead. I haven’t used it since college, when I learned Scheme using Edwin (an emacs clone).

I was/am tempted by org-mode, though I have my task- and knowledge-management tools (Things 3, lots of Markdown docs, etc.) and don’t particularly feel like switching (yet?). But after a couple of days I’ve experienced something profound, and suddenly feel like I grok emacs (and realize I never have before).

Here’s the secret, I think: LISP everywhere.

The first time you extend the most basic functioning of the editor by writing/evaluating a line of LISP in whatever textfile you’re working in — the moment you understand what LISP’s ‘”data” is code’ paradigm means not only for configuring but for operating this program in the moment — you realize how limited your idea of a text editor has theretofore been. To my eye, vim is an interesting/impressive computer program, like Sublime Text or VSCode or Xcode, and emacs is a philosophy (as well as an operating system, as the semiserious line goes, lacking only a decent text editor).

(Others seem to experience the same phenomenon from, as it were, the opposite direction, seeing vim as intentionally conceptually unified and emacs as a horrifying mishmash. My response is tentative, and its first draft is: ‘That’s what I said.’)

Today I added a simple markdown-mode-hook to my .emacs file, setting font colours for bold/italic text irrespective of theme (I’m a disgusting ape). Writing LISP to dynamically set the face attributes on load feels fundamentally different from changing a value in a static settings doc; instead of tossing nouns into the verb-machine, you’re altering the machine itself. This is such a profound change that talking about it is embarrassing — so different from the norm that it sounds like conspiracism or religious blather. Maybe real programmers already interact with their tools like this; I’m an utter novice again, could be I’m independently ‘discovering’ the wheel. But this is giving me a vertiginous feeling that I recognize from, say, the first time I created a site in Rails. Categories being overwritten entirely.

Ugh, please ignore me.

Initial zettelkasten thoughts.

  • It’s not as complicated as newcomers think, nor as interesting as adherents think. But it’s a little complicated, and interesting.
  • The method has little to do with ‘taking notes’ and much to do with ‘outboard cognition.’
  • The self-published semischolarly book on the subject is a good read: Sönke Ahrens, How to Take Smart Notes. Ahrens is a true believer, which could be intolerable, but he’s also a scholar and teacher, and hammers home the central point that the slip-box is part of a comprehensive creative-intellectual workflow — i.e. his book looks like self-help but doesn’t read or work that way.
  • The ‘digital garden’ is only alive in traversal, i.e. when you are thinking it through. Meaning you need to be revisiting your notes regularly; the output of the zettelkasten method is the zettelkasten, parts of which you can gather and revise for publication.
  • My misunderstanding, a common one, was that the zettelkasten method is about storing notes. That is incorrect, badly and essentially so. You store notes in a box. But a brain isn’t a box, it’s a network of machinery. It constantly acts, it churns. The ‘second brain’ metaphor is precise: the associations formed between notes themselves constitute a kind of thought. This is non-neural cognition, of a sort. Think of it as a unique inorganic living thing, a cognitive supplement: a thinking-machine.
  • In other words, you don’t store material inside it to think with; you think inside it.
  • The zettelkasten argues implicitly. Nodes aren’t thoughts; the connections between them are thoughts. Following connections is following a kind of argument. This is nothing like, say, Wikipedia, where each node is a discrete info-drop.
  • All of this is to say, the slip-box (theoretically) makes you a better writer and thinker by making writing into thinking, and making everything writing.
  • This quasi-mystical gobbledygook is characteristic of the zettelkasten community, which has produced almost nothing of value but a library of blogposts about zettelkasten. (Where are the interesting writers/thinkers using this method?)
  • Org-roam is a good implementation whose main weaknesses are (1) you gotta be in Emacs to use it, which you almost certainly aren’t, and (2) viewing and following connections is a frustrating experience at times. It wants shorter entries in org syntax.
  • Obsidian is a good implementation geared toward the same people nearly every such product is geared toward — productivity bloggers. It wants longer entries in Markdown syntax.
  • Denote isn’t strictly a zettelkasten implementation at all, which is a big reason for its excellence: all it wants to be is a great note-taking system for Emacs, using long rich filenames as primary sort/search tools (i.e. no database reliance, so slower but better integrated w/Emacs at large). It’s a new package, but sanely designed and rationally opinionated and therefore not just immediately useful but immediately helpful. It wants whatever you’ve got, form/sizewise.
  • If you pay money for zettelkasten software you’re a fool.

Perhaps it’s an anglicization of an Oirish name.

The trouble is, there are lots of people like Elon Musk — smart but less than they think, and stupid enough to think that they have a clear idea of what ‘first principles’ means in any given context they might stumble into.

After the Moonlanding.

Note: This meandering, at times uncomfortably personal article overlaps in places with the much shorter, more straightforward Tips for creating a Moonlander keyboard layout post. If you just want advice on getting started with a Moonlander, go read that one. If you’re on the fence about trying one, try this:

I’ve been using a ZSA Moonlander keyboard as my ‘daily driver’ since a couple of days after it arrived in the mail — what, six weeks ago? I love working with it. Like my Baltz and Karas Kustoms pens, Hobonichi Techno planner, and Apple Airpods Max headphones, the Moonlander affords me the unique sensual/cognitive pleasure of using a thoughtfully designed tool that’s better at its task than anything I could have imagined. The concept of ‘a pen that’s a joy to write with’ simply didn’t exist for me before I was given the Baltz; now I have a handful of gorgeous pens and writing by hand is an opportunity to experience a tiny sort of music. The pages of the Hobonichi Techo aren’t just thin and nice to write on, they’re impossibly thin and unspeakably nice to write on. The Airpods Max’s built-in Transparency Mode isn’t just a good idea, it’s a minor miracle — as is their effortless, automatic switching between Apple devices; they provide beautiful solutions to what I hadn’t even realized were problems.

The Moonlander is like that. It is unnecessary, and it is incredible.

The first computer I used was probably a Commodore 64 at my elementary School in the mid/late-80s. I played a lot of Zork in the late 80s, and consequently became a fast hunt’n’peck typist in elementary school. In middle/high school we had a typing class, where I learned to touch-type with high accuracy at 80+ wpm. In college I spent a hell of a lot of time on my computer, and was up above 100 wpm by the time I wrote my Masters thesis. All of which is to say, I’ve beeen typing fast for a long time.

Recently I topped out at 140 wpm and 98% accuracy on a split/tented mechanical keyboard (the Kinesis Freestyle Edge RGB, my previous ‘daily driver’ and quite a fine piece of ordinary equipment). For a while I was using a really serious tenting angle — 45° or so. Challenging to learn but potentially excellent if you can solve certain setup problems,1 and I had.

All of which is to say: until a month ago I had a decent setup at home, I was an expert user of my writing/typing tools, and strictly speaking, I didn’t need a new keyboard, much less a Luxury Keyboard.

Well-made tools tend to be expensive

Permit me to talk briefly about money, before we talk about homerow modifiers.

The Apple Airpods Max are probably the best noise-canceling nonprofessional headphones you can buy, but they’re $500. My Baltz pen was a Christmas gift, from their first Kickstarter — $200. For a goddamn pen! A Hobonichi Techno A6 planner runs, what, $40? $50? And until recently you had to have it shipped from Japan.

The ZSA Moonlander keyboard costs about $350 all told. That’s an enormous amount of money — nearly as much as a cheap iPad, if I remember correctly.

When I was in elementary school we bought an Apple IIgs with 512kb of RAM, and it was the only best-of-its-kind item in our home — a joy to use; everything else was Good Enough for Now. In middle/high school money was really tight, and our shopping got even stingier. For a long time I understood belt-tightening to be not only necessary but morally correct behaviour, less about saving for the future (which might not happen, and anyway it’d take a miracle to save enoough) than about denying the present: you resign yourself to never owning anything really well made, and to replacing your junk painfully often; you console yourself with the idea that you did the Virtuous Thing, always and only optimizing for ‘making it through the month’ even when a longer play is possible. There’s a sad sort of ‘honour’ in being downtrodden in this way, with no good choices. You adapt to it, and start to think it’s inevitable if not natural.

This is poverty logic, though at the time I didn’t understand that.

Now my wife and I can afford well made things. In our early 40s we’ve passed through a socioeconomic phase-boundary or thermocline: on one side, the cycle of buying shitty things to replace the shitty things that wore out too soon; on this side, a quite different cycle of saving in the long term because you can afford to buy good things when you need them. We’ve moved, in other words, from constantly spending in a trickle punctuated by larger catch-up expenses, to spending in big but rare bursts. The amortized cost of sane buying at ‘higher prices’ ends up lower, if you put some thought into it, than the cheap’n’cheerful ‘low cost’ solution.

Put another way: if you walk through three pairs of Payless shoes a year, you’re spending more than if you buy a decent pair that lasts a couple of years. Same for buying a crap laptop instead of a Macbook, etc. This is ‘privilege’ and luck among other things, and it’s one of many reasons why the rich get richer while everyone else gets poorer. The system is built to reward money with more money.

A Moonlander keyboard is designed to be a forever device, one that eliminates your all your typing-related problems all at once, even the ones you don’t know you have. It is never bad; everything about it is qualitatively better than what you’re almost certainly just enduring now. After the first two weeks of adapting to the many strange things about it, it’s revealed as obviously correct. Are there better keyboards? Depends on your needs. Could be the intense contours of a Kinesis Advantage2 are right for you, etc. For me, the Moonlander is perfect.

So I sit down to use a perfect device every day, and anticipate doing so every day for at least a decade. For that, $350 is a steal.

Steve Jobs used to describe the first Mac as ‘insanely great.’ I choose to take that to mean: good in ways that defy sense; overflowing the boundaries of the comfortable and familiar. In retrospect, not only obvious but inevitable. A tool that seems ‘magical’ because its makers rejected convention, and so opened up new avenues of possibility. We might say: ‘uncompromising.’ It takes a while for such tools to become affordable for people on both sides of the phase-boundary, that’s one way they keep you in your place. A good keyboard is already worth it.

All of which is to say: if it’s even occurred to you to think about keyboard ergonomics, then you would be a fool not to let your money solve this problem.

Ordinary limits

What’s invisibly bad about ordinary keyboards?

  • Non-split, non-tented (wrist problems). Again, I’m not going to sell you on this, which I now consider a nonnegotiable feature of any keyboard I’ll use in future. (My company paid for the Freestyle Edge, and if I had a software engineer job instead of a tech writer one I’d’ve asked to be reimbursed for the Moonlander — though I do want to own one outright.) Having a single typing device that you have to contort your arms/wrists/hands to use is an ergonomic disaster and you owe it to yourself to switch.
  • Pinky work. On an ordinary keyboard, Enter/Return and Backspace/Delete are right-pinky keys. The left pinky deals with Tab and Escape — and both Shift keys are for pinkies as well. But all these keys involve a shift/stretch: either splaying the hand, rolling the wrist, shifting the arm, or (if you’re mad) actually just stretching out your poor pinky finger. This is lunacy. Your pinky is terrible at these tasks, and even if it weren’t slow it’d be under unnecessary strain.
  • Stretching for modifiers. If you’re like me, you’re constantly hitting Cmd+S to save, Cmd+Z to undo, the various Cut/Copy/Paste commands… Bad enough on a Mac, where Cmd is largely a thumb/index key but on the bottom row; much worse on a Windows/UNIX machine, with the Ctrl key out at the edges of the bottom row. More pinky work. Typical users go through contortions to use these keys. As above, eventually muscle memory makes up for the extra stretching time, but the ergonomic cost is real.
  • Numbers/symbols. Be honest: have you memorized the layout of the number-row symbols? At this point in history you should know that Shift+2 yields the @ symbol; can you hit it without looking? Most can’t — partly because the number row is a two-key stretch from the homerow, which leads to some hand-placement imprecision, and partly because of the next issue.
  • Asymmetry and stagger. Maybe you’ve notice that the rows on a typical keyboard are staggered. That’s a weird historical artifact but you can live with it, obviously. But have you noticed that the stagger is goddamn asymmetrical. In other words: the qwerty row is shifted way left of the homerow, so the left index finger has a short reach to hit T while the right index finger goes much further to land full on the Y key. Never mind why things are this way; think about what it means for touch-typing numbers, and even the zxcv (bottom) row. Then consider: historical typewriter-related questions aside, if staggered rows were good in themselves, why can’t you buy a staggered numpad?
  • Distant arrows. I can’t be unusual in needing to use my arrow keys all the time, all the time. The fact that I need(ed) to reach for the most remote part of my keyboard to navigate through a large piece of text — whether hunting Home/End, PageDn/PageUp, or the arrows themselves — imposes a small but nonnegligible cognitive tax, not to mention slowing my hands themselves. You can find those keys by location in physical space, sure; you can even take your eyes off the screen for a moment if you need to, no harm in it. But what if they were already under your fingers the whole time? What if all arrowkey usage was lightning-quick mode-switching, like in vim?
  • Arbitrary Shift+ assignments. It makes sense, maybe, that square brackets and curly braces share keys. (For non-programmers, it makes no sense that curly braces are even available as first-class characters rather than special chorded ones, oh well.) But why isn’t there a dedicated open/closed parentheses key for prose writers? Why are parentheses way off at top right? Why must you press Shift for both? In God’s name, why are relatively frequently used symbols like % and $ still hidden up in the number row?
  • Every key does only one thing. This is the essential limitation of the standard keyboard: the number of single-stroke commands is limited by the number of physical keys. asdfjkl; occupy billion-dollar real estate beneath your resting fingertips, and in a standard setup those keys serve one purpose each (plus who needs ‘k’ that often?); to get more out of them you have to reach for modifier keys, or foot pedals if you’re one of Those Fascinating People. It needn’t be this way. The keyboard isn’t just a bank of levers now; like the piano,2 it can benefit from smartening up.

Dvorak, Colemak, etc.

There are non-QWERTY layouts, and I’m sold on their advantages. QWERTY is an artifact of the mechanical-typewriter era, I know the history, etc. But at this point I’m not going to switch, and it’s extremely unlikely that you are, either — QWERTY is a common physical device-language, and several mnemonics are built around it (e.g. cut/copy/paste are all adjacent qwerty keystrokes). If you’re serious about absolutely minimizing your finger travel while typing, lemme propose that (1) your energy might be better spent elsewise, finger travel isn’t the only thing that matters, and (2) you probably don’t need this blogpost.

Bring the keys to you

The Moonlander’s marquee features, as I see them:

  • Columnar layout. It’s confusing, then good, then intuitive. (It’s not a strictly ‘ortholinear’ layout — the columns are vertically staggered to account for finger length. This is good, though it looks silly.
  • Split/tented. Yup.
  • Thumb clusters. You have no idea how good these can be until you try them.
  • Extreme programmability. This is the big deal.

One of the mantras of the ergonomic-keyboard community is: Don’t reach for the keys, bring the keys to you. With a programmable keyboard, you can relocate important functions within the 40-50 most commonly used keys and move little-used commands to the fringes, or to another layer. You can implement redundancies (e.g. additional Shift keys to reduce pinky stretching), combine complex chords (e.g. Cmd+Ctrl+Shift) into single keys, and group linked functions (e.g. open and close paren) together instead of scattering them. The goal is ergonomic sanity and sustainability, which is partly ‘efficiency’ and partly comfort. In an ideal world, your fingers would never have to leave the home row; this can be the next best thing.

Note that the beloved/reviled text editor vim is built around this principle: you can pop out of typing mode into navigation mode and the right homerow keys turn into arrow keys instead of letters. Hit space in nav mode, though, and you can start typing an extended command. Escape always takes you to Normal (‘do stuff other than typing’) mode; hit ‘i’ and you go right back into inserting text. Expert vim users are terrifyingly fast at navigating files and manipulating pieces of text/code. A programmable keyboard brings some of the power of that modal editor into systemwide usage. Again, the goal is to fit the work to the body — to bring commands to your hands.

Note that ZSA makes a crafty little 47-key keyboard called the Planck EZ, which also uses ZSA’s brilliant Oryx configurator. It is certainly a neat idea — its sheer portability is impressive, and the idea of ZSA’s fine build quality in a tiny board (with full-sized keys) is appealing, in an ‘expensive novelty’ way. But you absolutely should not be using something like the Planck for your ‘daily driver.’ The keyboard you spend most of your time using should be good for your body and the Planck, its many merits aside, simply isn’t. Your wrists deserve better.

How I’m doing it

My current Moonlander layout tries to take advantage of vim-like modal commands, and includes some major usability improvements over standard keyboard layout.

  1. Homerow modifiers. My keyboard has four Command keys, four Option, four Control, and (until I winnow my homerow down to what works best) six Shift keys. This is ludicrous, except it’s not: common commands like Cmd+S for Save are now entirely homerow chords, and my strong/fast index finger is enlisted to replace my weak/slow pinky for my most common key combinations.
  2. Enter, Esc, Space, and Backspace to the thumb clusters. Spacebar on the thumb makes intuitive sense, though I’d previously trained myself to hit Space with both thumbs so that took some work; Escape on the Moonlander’s infamous Big Red Button(s) is logical. It even looks like an Escape key. And hitting Enter with your thumb seems sensible, right? It’s not where you’d expect, but given the lack of a dedicated Enter key at far right, you’ve got to put that key somewhere accessible, ideally somewhere visually distinctive. You don’t hit Enter often enough to want it in the main four-finger body of keys, but it should obviously be on the main layer. So: right thumb. And Backspace for the left thumb is easily the most challenging part of the whole layout for me — yet it’s infinitely preferable to the whole-hand stretch for the top right, once you stop stumbling over it mentally. (Honestly, I’m thinking about replacing that key with Opt+Backspace, but let’s leave that aside.)
  3. Arrow layer. Oh, baby. This is the other trickiest part of switching to this keyboard — complicated enough to merit its own section below.
  4. Number pad. It turns out — and I did not expect this — that I can touch-type the number pad very quickly. Probably a combination of Nethack, old-school calculators, and telephones. At any rate, I hit the ‘Layer 3’ key with my left thumb and there’s a number pad directly beneath my fingertips, including arithmetic functions. This feature is always one of two things: totally irrelevant, or indisipensable.
  5. Square brackets to the right thumb. A bit random, you might think — but Cmd+[ is the Back button in a web browser, and Cmd+Shift+] is a standard ‘move to the next tab’ command. My thumbs naturally curl to the space between the thumb clusters and the left Cmd/[ keys, so one of my most commonly used browser/window nav commands is just right there. That might sound ‘handy’ to you, or ‘neat,’ but once you build muscle memory around it, it is revealed as Strictly Better than the previous setup. Honestly, I’ve forgotten where the square brackets are on a normal keyboard. They make sense where I’ve got them.
  6. Open/closed paren together. To make this work, you employ the Moonlander’s — or rather, the QMK firmware’s — astonishing, retrospectively obvious/inevitable quadruple-function keys, known as ‘tap dance.’ Tap the paren key and get (, double-tap it and get ). This takes getting used to, particularly the timing/speed issues — you end up with some accidental (( entries before you get fast enough. But once it’s in your hands, it’s simply strictly preferable to the old setup, which had you reaching for Shift+9 and Shift+0…
  7. Lights. Obviously the layers are indicated w/different lighting schemes — but crucially, individual keys are lit up in their own colours. You start out thinking this is charming but a bit ‘extra,’ as they say, and then for a while you rely on it…not least to indicate visually which ‘mode’ the keyboard is in. (I’ve done a lot of accidental arrowing-about, thinking I was in nav-mode on Layer 1 instead of insert-mode on Layer 0.)

The arrow layer

My arrow-key setup is wild, and it’s the one part of the setup that’s been slow to pay off — ergonomically it’s an instant win, and I’m even faster arrowing around on that inverted-T (like WASD but on the other side) than I was on regular arrow keys, because of my wrist angle. But key combinations are a hassle, because I’m trying to do too many new things at once, and the only solution to that is time and muscle memory (and probably a practice program).

My most frequently used arrow-key combinations are:

  • Opt+Left/Right. Move to the next word-boundary.
  • Opt+Up/Down. Move to the next paragraph.
  • Cmd+Up/Down. Move to the top/bottom of the page or document. In the Finder, pop up and down one level on the directory tree.
  • Shift+various. The hard part: select one of the above three ranges of text.
  • Ctrl+Left/Right. Irritatingly, this is the ‘swipe’ maneuver to move between desktops and fullscreen applications. Right now this chord is S+leftthumb+L, which isn’t bad but I have no muscle memory at all. The trouble here is that either I don’t need this command or I need it frequently, e.g. when moving between an essay and a browser on a single screen.

Note: I use Opt+Backspace a lot, which deletes a word at a time — indeed I normally use this in place of plain Backspace, since I type quickly enough that it’s usually worth it for me to shitcan an entire word and retype it rather than delete one character at a time. Right now this has a nice convenient chord: K (i.e. Option)+leftthumb, basically just striking resting-position keys though the thumb cluster isn’t strictly the ‘homerow.’ There’s a part of me that wonders if I shouldn’t remap Backspace to Opt+Backspace…

The current solution I’ve hit on is groovy — essentially a numpad of navigation commands, with Home/End in a sane place, Opt+Up/Down as single-stroke commands, Opt+Right/Left the same, PgUp in the 9 spot, and PgDn mapped to ‘,’ — but having these oft-used commands on a ‘separate’ layer means mentally remapping one of the most basic elements of my computer interaction model. I’ve had arrow keys in basically the same spot for 35 years! Switching up is very difficult.

This is basically equivalent to learning vim’s interaction model and nav commands — in my case, at the decreasingly neuroplastic age of 43 — but for the entire system, every app, with no way back to the ancient conventions. ‘Tricky.’

Yet in the long run, I’m confident it will be worth it. And here’s why: this mental remapping is also reinforcing little-used commands that are enormously handy in my daily work, like trusty Ctrl+A and Ctrl+E (goto beginning/end of line). With homerow modifiers, Ctrl+A turns into L+A. Think about that for a second, will you? And L+E to hop to the end of the line. Instead of visualizing a layer, which I currently very slowly do, I can be hopping around lines/paragraphs by remembering simple two-letter chords. Now add the semicolon key, which doubles as Shift when held, and ‘Select the paragraph up to the caret’ is L;+A. When I remember to use it, that’s just rad.

Adapting to the new world

How slow is the learning process?

After a month or so, I’m back up above 100 wpm with ~95% accuracy. I’m not quite where I was — the brain/screen connection is no longer seamless, which has definitely affected my productivity and even the nature of my writing work — but I’m back to top-2% typing speeds, i.e. I need to be grateful to have regained expert facility so quickly and I need to practice systematically. When my son practices piano, I remind him that playing scales is boring as hell but you have to do them, have to, because (1) all they take is time, and (2) they make it possible to play actually interesting music without worrying about those low-level mechanics. And the fact is, just playing a passage over and over again won’t do the trick. Instrumentalists all know this: you have to break it down, return to the boring atomic elements. That’s the discipline.

I’ve been a fast typist so long that I’ve forgotten that it ever took discipline. Moving to sane, sound ergonomics and sustainable practices is like…well, it’s like fixing a bad embouchure. You’ve been routing around your own bad habits, and becoming aware of them and deliberately correcting them is worse in the short term — then in the long term you can do things you had convinced yourself were simply impossible. After a while, the ‘impossible’ becomes natural.

But it’s slow, yeah. Compared to some other things anyway.

The first couple weeks were rough. My first extended writing sessions after getting the Moonlander, I packed it away in its (very groovy) neoprene travel case and regressed to the Freestyle Edge for a few hours. My hands were flying — man, it felt liberating. Now I’m experiencing long moments of peak dexterity using this new tool. It’s not quite the same, it doesn’t yet feel like going home, but I’m learning not to misread my intimate familiarity with the old weird staggered single-layer qwerty setup as healthy or preferable.

And honestly, every time I pick up a stupid conventional keyboard I want to tear my hear out — they’re just full of terrible goddamn ideas.

Shoutout: ZSA’s Oryx configuration software has made adapting much much easier than it might be — it’s trivial to swap/remap keys, flash the keyboard firmware, and see how the new layout works. Its search feature, which lets you browse other Moonlander users’ publicly shared layouts, is a great way to comparison shop. Indeed that’s the killer app — and it better be, because the default Moonlander layout is notoriously terrible. My own layout started out as a clone of some other Mac user’s vim-inspired setup; I’m still paring away the unnecessaries, e.g. the mouse-emulator buttons on my Media layer.


OK, enough of this.


  1. I won’t try to sell you on split/tented keyboards; either you understand that they’re straightforwardly better for touch-typing ergonomics or you don’t. If you type a lot and have pain in your neck and upper back, just buy one. 
  2. Acoustic piano is irreplaceable, but for everything else there’s…everything else. 

Tips for creating a Moonlander/Ergodox keyboard layout.

I bought a ZSA Moonlander keyboard this spring — it’s incredible, well worth the large expense. In this post I share some Handy Tips and some Things to Look Out For — mostly applicable to the Ergodox keyboard as well. For a logorrheic personal account of using the keyboard, along with the sales pitch for fence-sitting potential Moonlander/Ergodox buyers, read this article.

Here’s my layout for reference.

The default layout sucks, don’t use it

Everything about ZSA’s default layout is bad; as a result it’s actually a great teaching tool, as you’ve got to think on it a bit to understand why it doesn’t work. Imagine hitting Cmd+S to save a document — what does your hand do? On a normal kb you move your left thumb a tiny bit to Cmd, and hit S on the homerow, no stretch at all, or else you hit right Cmd with your right index/thumb for a little more authority. On the default Moonlander layout, you either splay your left hand across most of the keys, or else you reach with your right pinky…gaining nothing in terms of efficiency or comfort.

You want a homerow modifier for this task — stick Cmd under the J and F keys and watch your most oft-used commands get faster and more natural.

Similarly, what kind of psycho wants Space and Backspace both on the left thumb? Share the work, share the wealth! And who splits the arrow keys across two hands?! Who needs redundant L/R arrow keys? Who wants to be layer-toggling with the right pinky? Why do square brackets need dedicated single-function keys an in inconvenient spot?

And by the way, that thumb-cluster Cmd key is way out of normal reach. You really really don’t want to be chording with the most remote key on the board unless you have no choice. (I use mine for a rare layer toggle.)

Ditch the default layout immediately — honestly, you shouldn’t even use it as the foundation for your own setup. Pick something you like, and tweak that instead.

Spacebar on thumb cluster?

For users w/medium or large hands, the top ‘piano’ key on either thumb cluster is a good spot for the spacebar, though you’ll notice the placement at first. It’s big enough to strike with the middle joint of your thumb, or beside the nail if your posture is better. You surely don’t want to map the spacebar to the weird red 2u keys on the thumb cluster unless you have very big hands — the thumb actually has a long stretch to reach those, so they’re ideally suited for special-case work: Escape, Tab, or an oft-used chord.

However, users with smaller hands could profitably map spacebar to the leftmost key on the right bottom row (or its opposite number on the other half of the kb) — where the up/right arrow are, on the terrible default layout. If your thumb naturally curls under like that, and you don’t mind a tiny spacebar, that’s a compelling, characteristically ‘bring the key to your hands’ heterodox option.

Don’t think about specific keys: think in terms of their functions. Build your keyboard layout around the functions you need to perform — the actual characters your keyboard sends — and make performing those functions comfortable and efficient. That’s the whole game.

Where does Escape go?

I use the right-side red 2u key for Escape, along with the leftmost key on row 3. I don’t type Escape, I slap it — often I’m hitting it because I fucked up, or something else did, and it’s time to cancel or back out. Psychically, that weird red key is a good fit, as is the old-fashioned spot at upper-left of the keyboard.

And to be honest, you probably don’t want that key to be coming into play all the time. It’s a special-purpose key, limited use.

So if you’re a vim user, maybe you want Esc right there to get you quickly back to Normal mode. On the default layout, you could use the Hyper/Meh spots — but you probably don’t want to be hitting Esc w/your right index finger if your next keystroke is the same finger doing hjkl navigation. To me, the spot to the left of A makes sense. On conventional keyboards that’s the irritating, largely useless Caps Lock key. Under no circumstances should you have a dedicated Caps Lock key in a high-traffic part of the keyboard.

Homerow mods

My favourite feature of my keyboard, one of the big ergonomic game-changers: asdfg and ;lkjh double, respectively, as Shift-Ctrl-Opt-Cmd-Shift. Being able to hit Shift (and Cmd!) with zero stretching is such an obvious win that you might wonder why it isn’t simply standard on all keyboards. Do you really need three Shift keys on each side of the kb? Probably not. But why should you make do with one?

Training myself to actually use homerow Shift in normal typing has been difficult, there’s some deep muscle memory holding me back there, but adapting to dual-function keys has been surprisingly easy; homerow Cmd already comes naturally, and has integrated right away into my normal patterns. It seems weird/daunting but you can absolutely implement homerow mods on day 1 and slowly grow into using them. Honestly, if you set them up and don’t use them, you’ll never even notice they’re there…

…because, miraculously, with the default Advanced Settings governing roll-offs and delays and such, I now get zero false positives for homerow mods after just a few weeks. Maybe I’m subconsciously slowing my l-y rolls a little, I doubt it but dunno — yet at this point the dual-function homerow keys Just Work. It’s incredible. (I use the default 200ms delay for dual-function keys.)

Symbol layer

One of the most intriguing notions I’ve seen is a dedicated symbol layer or similar setup, which brings the distant Shift+number symbols like @ and # within easy reach. The idea is never to stretch two rows for anything — this is why you use a numpad layer (see below) — and it’s totally doable if you’re willing to trade, say, Shift+2 (@) for layertoggle+W. If you’re doing heavy data entry or programming and need regular access to those keys, definitely consider a layout that puts number-row symbols under your fingers. It’s potentially a very big change; all the more reason to try it.

That said, I haven’t bothered with this — I work mostly in ordinary prose and haven’t yet found myself needing to hit ‘@’ often enough to justify the additional (short-term) cognitive tax of learning another layer.

Number pad!!!!

I knew I could touch-type on a number pad, but it didn’t occur to me that it’d be useful outside of, er, playing Nethack. Yet for things like typing in phone numbers and doing quick calculations, being able to toggle on a dedicated numpad layer has been an actual time saver, and relaxing to boot. It’ll surely take the edge off of doing my taxes next time — the number row is a pain in the ass to touch-type, not to mention an unnecessary stretch, so the numpad (with jkl mapped to 456, etc.) is a big ergonomic win.

Arrow layer?

This is so hard. But if you master it — and I’m confident you can — it’s one of the biggest timesavers available with a multilayer keyboard.

Here’s the theory: vim-style mode-separation, with arrows on the homerow but hidden in their own dedicated layer. So instead of lifting your hand to get to dedicated arrow keys, you use layers to map them to, say, an inverted T — either WASD for gaming nerds, or IJKL/ESDF for pragmatists. Then surround them, on that navigation layer, with modifiers and other nav keys: Home/End, Opt+Up/Down, PgUp/PgDn, etc. You end up with a clever little cloverleaf formation of navigation commands. The trouble is, selecting text requires some heavy-duty mental remapping. I’m having the devil’s own time with chords like arrowtoggle+Shift+ijkl, though I’ve made good progress just this week.

Of course, it’s been less than two months.

I firmly believe that a dedicated navigation-key layer is exactly right for this keyboard; it’s also necessary, unless you want to cut into row 4 and move the ? key to stick the now-conventional inverted T arrowkey setup at bottom right. (Moving the question mark seems fucked to me. Fucked.) But this is the hardest thing to internalize. Don’t hold it against yourself if adapting to layer-separation takes time.

Typing-only layer

For gaming, this is a must. Just duplicate the base layer, strip out all the fancy dual-function keys, and hide the toggle in a non-base layer, so that you have to toggle a couple of times to get to game mode. I don’t play games on my computer (except Nethack lately) so it hasn’t been a thing for me, but it’s nice to know it’s there.

Dedicated Oryx/firmware keys

For the first month at least, you’ll want a dedicated key for launching Wally (the firmware-flashing program) and need a dedicated key for resetting the kb hardware itself, which would otherwise require a paperclip. If you’re gonna do browser-based Live Training or view a live display of the currently active layer — which doesn’t work in Safari btw — you’ll need a dedicated ‘Oryx’ key. I haven’t used that tool and can never remember where the Oryx key is, but it’s there somewhere. On the ‘Media’ layer I guess?

Oryx is superb, by the way.

Media keys

If you muck about with music/volume controls throughout the day — and who doesn’t? — you’ll need convenient keys for managing media. I’ve got a dedicated Media layer, which also hosts the function keys (e.g. F5) that I never need. I’ve got a dedicated volume-control knob (yeah, an actual rotary controller)(!) on my home machine, but when I’m at work the kb setup is still pretty handy: lower-left key toggles the Media layer, and the keys around it are mapped to systemwide shortcuts for handling Play/Pause and volume control. I’ve also overwritten my ‘spacebar’ with Play/Pause on the Media layer, but I never actually use it. Which is odd — that was one of the ‘definitely for sure’ mappings I didn’t think I’d have to think about. ‘Hit spacebar to play/pause’ seems like a no-brainer.

Which only goes to show that usage must determine design, and if you’ve been working with a conventional keyboard setup for a long time then you certainly have a distorted view of what’s appropriate for that tool. This is true even if you’re one of those Dvorak/Colemak lunatics — conventional keyboard hardware is suboptimal by design, and swapping alphanumerics around can only go so far to fix it.

‘Mouse’ keys

These seem like such a neat idea — who among us doesn’t dream of completely replacing the stupid mouse with keys that’re right there, literally at our literal fingertips? — but they appear to have no utility to ordinary users outside of dimly lit, cobwebby corner cases. For instance, you might be putting together a complex macro that involves not just keystrokes but mouse clicks/movement…I guess? Or setting up an autoclicker for God knows what reason? Out of the box, the mouse-emulation keys strike me as a cute tech demo and nothing more, but some obsessives are getting use out of them. I think they’re not the way to a mouseless future. Good luck.

Hold for Cmd+letter

This strikes me as insane — the chance for bad trouble from false positives is too high — but some people, e.g. user graemeg, use dual-function keys (separate functions when tapped / held) to implement, say, ‘tap Q for Q, hold Q for Cmd+Q.’ Graeme is even using a 180ms delay, below the default, meaning these single-key chords are happening really quickly. I can’t imagine introducing the possibility of accidentally quitting a program because I was slow to pull my finger off Q, or pasting some arbitrary data into a window because I got lost in thought while typing V. But the ergonomic win is clear: as Cerebus the Aardvark would say, ‘One less mouth to feed is one less mouth to feed,‘ where by ‘mouth to feed’ we mean ‘key to reach for.’ Contorting to play key-chords is bad.

And let’s be clear about this: 200ms is a shockingly long time to hold a key. Think on it:

…a person that types 60 WPM (where words are an average of five chars), is typing 360 characters per minute (which includes spaces between words, but excludes punctuation). This is about six characters per seconds which gives us an average inter-character time of 167 ms. However, this is just an average, it will be higher or lower for different character combinations. (source)

Of course, if the only dual-function keys you’re using are the kind you want to deliberately slow down, you even could crank up that delay another 50ms or so. But if you’re a fast typist, this’ll feel unnatural and weird. I dunno what it’d be like to adapt to that rhythm; YMMV.

Tenting

Look, you should be tenting your keyboard (tilting it outward to reduce wrist strain) — it takes some getting used to but is infinitely more comfortable, because more natural. But the Moonlander uses the thumb cluster as a leg, meaning you can’t tent the keyboard without increasing the distance from the cluster to the main board. That’s a bummer.

I find the Moonlander comfortable even when laying flat, but for daily use I actually put my mousepad on a book and use the book to tent the keyboard. And there are 3D-printable solutions available on Thingiverse etc. Once you’ve gotten comfortable with the layout — give it a few weeks or a month — figure out a tenting solution.

Irreal Life Top 10: Musk/Twitter edition.

  1. Twitter was already owned and operated by a coalition of fantastically rich dilettantes. Now there will just be one. There’s no evidence at all that the unusually vicious Musk has anything resembling a moral outlook or even a spine, but within his world of autistic trust-fund babies he’s fairly normal. Jack Dorsey, former Twitter CEO, is a similar sort of fool, but he at least gives the impression of having a social life, i.e. a network of interpersonal connections (theoretically) capable of expanding his sense of self. Musk gives no such impression. This is worrisome, but if it surprises you then that’s worrisome too.
  2. Tesla has done enormous good for the world, thus far, by rapidly forcing electric cars into the mainstream. (Diminishing returns have obviously kicked in; Tesla’s ‘software/battery company that also makes cars’ approach is increasingly dangerous. But its existence mattered enormously.) No such revolutionary transformation is possible from Twitter — it’s an advertising platform populated by lunatics, imbeciles, sociopaths, corporate predators, and hundreds of millions of increasingly deranged status-seekers and increasingly vegetative followers. Twitter, like Facebook, is incapable of doing anything net-good for the world at this point.
  3. Musk is borrowing much of the money for this purchase.
  4. One (unintentionally) interesting thing about Musk is that he embodies many of the repugnant things about his rich, cruel, insulated, disconnected tech-industry cohort: he and his silly ex-girlfriend Grimes named their children ‘X’ and ‘Exa’; he owns no home (despite supposedly having ‘joint custody’ of five kids plus the two he conceived with Grimes) and ‘literally couch-surfs’ at friends’ houses; he has no aesthetic sense of any kind; he postures in ‘fuck your feelings’ fashion about the ‘woke mind-virus’ and has teams of private investigators destroy the lives of his critics; uses technical jargon to obfuscate his 101-level grasp of topics his lifestyle insulates him from having to actually understand (e.g. ‘tunnels’); he’s evidently convinced that he can figure out complex problems from first principles and is entitled to be paid to do so; he engages in ordinary college-boy sophistry to justify his unvaryingly self-serving hypocrisies; he opines grandly about war and politics despite having left his home country to avoid military service, etc., etc. These are all perfectly ordinary tech-bourgeois behaviours, amplified by social isolation and deranging levels of wealth (including a massive inheritance). The most pernicious myth about Elon Musk is that he is in any way unique.
  5. The Elon cult/fandom is of no interest to me.
  6. At present I’m convinced that Twitter, like Facebook, is a net liability for the human species, albeit for different reasons. Twitter amplifies dangerous and costly species-tendencies and -traits while mostly suppressing what’s good about interpersonal communication. One of its core use cases is ‘using a telephone to read short self-promoting messages from celebrities, corporate spokesmen, and status-seeking media professionals.’ The one thing that Twitter users agree on, universally, is that everything about the Twitter experience is terrible. It’s long been known that the only sane way to use Twitter is to employ lists as something like broadcast media — a worse version of the previous decade’s RSS feeds which incentivizes bad thinking, hollow writing, and lazy reading. It is universally agreed upon, moreover, that Twitter has monotonically worsened for years now.
  7. The key problem with Twitter isn’t ‘free speech’ or impingements thereon, it’s that Twitter is an intrinsically stupefying and debilitating medium. This is tied to its revenue model — Twitter’s money comes from (1) advertising and (2) selling your private information — but the fundamental problem is that Twitter consists of unthreaded pseudonymous 280-character messages and images, broken up by ads and sorted by the worst possible polarizing algorithmic filters. Twitter benefits from zombification and outrage; its users don’t…
  8. …which doesn’t matter to the company, because the users aren’t its customers, they’re (we’re) the product. Twitter’s customers are advertisers and data-harvesters.
  9. The solution to Twitter’s problems isn’t ‘name verification’ — that’s solely a data-harvesting move, as it was for Facebook. Pseuodonymity is quite healthy at a small scale with sane high-effort moderation and useful barriers to entry, i.e. medium- to high-trust pseudonymity works, and requires thoughtful investment. The poisonous nature of Twitter discourse results from early design choices essential to the platform, and its lunatic devotion to growth and reliance on advertising. The ability to downvote would mitigate some of its flaws, but hopefully you can see what’s problematic about that; if not, trying imagining every subreddit combined into one.
  10. Elon Musk has no idea whatsoever how to run a social network. The most successful Twitter user of all time is Donald Trump; do you think Trump should run Twitter, or own it? Of course not, he shouldn’t even be allowed to use it. (He used Twitter to incite violence, that’s obviously why.) Musk believes he can help Twitter succeed in the role of online public square, but he is incorrect about what that means and delusional about both his and Twitter’s ability to change the network’s role/nature/function.

Watch out for the neighbours’ dog as you round the corner.

I like to remember, sometimes, that the UI idiom for ‘Send’ in Apple programs — like Mail.app — is Cmd+Shift+D, for ‘Deliver.’ A lovely-to-me notion. Like asking a child on the street, Could you run and put this in the mailbox for me, there’s a good lad. A penny for your trouble.