Six months ago I activated the Emacs Vim Emulation Layer, EVIL, and tried to go back to the vim keybindings I used years ago, before Org-mode dragged me into Emacs like it does so many. I found that it didn’t suit me: the Emacs keybindings turned out to be more deeply wired into my fingers, and I was no longer convinced by the idea of the Vim zen cult (no hard feelings guys, you’re cool). One thing that I found when configuring EVIL was that although my configuration for the Vim emulation was complicated, I could strip out a lot of other stuff from my Emacs configuration that I was using to work around Emacs not being that great at editing text. I learnt something from this despite deactivating EVIL again, a lesson I’ve applied again this week.

Some dotfile configuration hacks are better than others. Some hacks are very low maintenance tweaks to make things more comfortable for you. Other hacks are big workarounds for behaviour you don’t like where that behaviour is fairly fundamental to the program you’re configuring. If making a big change like activating EVIL let’s you delete a lot of the latter kind of hack, it’s a nice little predictor for how well the big change is going to suit you. This week, in a new xmonad branch of my dotfiles repository, I started playing around with frames-only-mode.el together with Xmonad. The author (who is cool: I’ve been exchanging e-mails with him) writes

My main reason for disliking the built in windows manager is that it assumes everything you want to work with is inside Emacs. There’s no support for tiling a chromium window or a terminal along with a few Emacs windows. This probably worked quite well when people did everything in a single terminal session but not so much anymore.

Secondly if your main windows manager is also tiling then the two will conflict with each other in annoying ways. For example opening a new terminal emulator will completely wreck your nicely laid out Emacs windows.

Finally it means you need two separate sets of keys to do almost the same thing inside or outside of Emacs. Pretty nasty and pointless!

Configuring Xmonad and installing frames-only-mode has meant that I can disable a lot of the stuff I was using to make the Emacs window manager more useful.

When I first started using Emacs I drank a little bit too much of the Kool-Aid and started trying to get everything into Emacs: e-mail, web browsing, image viewing etc. What I realised this week is that although that Kool-Aid wore off (I’ve been doing my e-mail in either mutt or alpine for about two years) I was still trying from time to time to put things into Emacs just in order that I could have everything in one window manager, rather than the inconsistency of having some windows controlled with one set of bindings and another set of windows controlled with another. frames-only-mode has set me free. Now I can make a choice about whether something should be in Emacs based on whether Emacs does that thing better or not, rather than always feeling like I had to choose Emacs even if its version was subpar.

It feels great to be back to a dwm-style tiling window manager. I’m using Xmonad just because I like to use Haskell to configure things; it’s the dwm-inspired (AFAIK) key bindings and default tiling layout that are the real reason I chose it. What happened to my attempts to wean myself off continual dotfiles editing, and my attempt to have my window management key bindings the same on Windows and GNU/Linux? Well, my day job where I have to use Microsoft Windows all day is ending next Friday, and I’m still using Xfce: all I’ve done is replace the window manager Xfwm4 with Xmonad. I’ve realised that comfort is actually really important to getting stuff done, and I didn’t have that when I felt trapped by the Emacs windows manager, which just doesn’t suit me.