Would you recommend EXWM as daily driver

Table of Contents

EXWM is a Glass Cannon

Would I recommend EXWM as a daily driver?1 Not really. I say that as someone who has chosen to use exwm exclusively for years2 and tens of thousands of hours. I tried I3 for a while, and have used EXWM under OpenSuse several years and now under Guix, almost always with 3 monitors.

I find that exwm is a glass cannon. Like Linux and emacs, it has a learning curve and appeals to those who tolerate or enjoy that. Why do I get huge benefits from exwm?

Cannon

  • Universal buffer-paradigm even for all my browser tabs. C-x b and I can go to any buffer, any app. This is one of the biggest benefits for me, and is absolutely huge.
  • Universal orgmode modeline/shortcuts. From anywhere I can see what task I am currently logged in, switch to my agenda, and make captures.
  • Universal emacs commands. Start eww, swap to shell or calculator or Dired or Tramp, or execute an arbitrary shell command, etc.
  • Emacs interfaces become even better. I recently started using emm for audio, for example, and I can anywhere get to a command prompt and enter emm-pause etc. It’s not wrong to say that emacs is truly just a good text interface to things, and no where is that highlighted more than in making it your window manager.
  • Universal emacs-style editing. I don’t need to bother with the frequent question, “can I use emacs keys in my browser?” because EXWM takes care of that (with some minor caveats).
  • Maximizing screen real-estate and screen usage. This is true of other tiling window managers, too, but it is very emacs-philosophy to not worry about icons and homescreens and always be full-screen emacs. My setup with multiple monitors, winmove, and Telephone modeline work beautifully, too.
  • It doesn’t receive breaking updates. This could really be seen as a con, too, because exwm is technically unmaintained right now; but this also means that you never have to risk things changing, which is massively comforting to those who are already customizing and tweaking things deeply.

Glass

As for the “Glass” part of the “glass cannon”, there are several concerns that mean that EXWM is not good for general recommendation to, say, my colleagues, or my student developers.

  • Substantial learning curve. For some of us this is enjoyable, but not for everyone.

  • Customization needed. For some users (ie Linux users) this is a given, but those deep in Windows, Mac, and even Ubuntu may not have the taste for this.

  • Threading. Despite those who say otherwise, I have taken the habit of starting sub-emacs processes3 for the two emacs programs I run that can freeze the main thread. I have shortcuts for my Telega (= superb Telegram front-end) and Elfeed (which freezes on retrieval of some of my RSS feeds). In the past I’ve also needed to use sub-processes for TRAMP, but I’ve been able to stop this with 1) better internet connections 2) remembering to actually clean up all tramp connections when I finish using them, so they don’t sleep and freeze.

  • More likely catastrophes. I have lost times when a syntax error in my emacs init file causes things to fail to even boot, when I need to use command-line to debug my emacs init (often imbalanced parenthesis). An even tougher debug was necessary when I switched to GUIX and exwm kept silently failing to start for days. Eventually I found out that I was missing the image for one of my custom cursors (nothing emacs is normally concerned with) and this was causing exwm to fail without a helpful error message.

    So, Glass Cannon, and the Glass means I cannot recommend exwm generally, but the Cannon part is one I would hate to live without.

Footnotes

1 This is a reply to a reddit post at https://www.reddit.com/r/emacs/comments/17a6p45/would_you_recommend_exwm_as_daily_driver . The thread has other good responses, too.

2 See a catalogue of some of my years of learning, pain, and rejoicing about exwm at https://tech.toryanderson.com/tags/exwm/

3 I documented this handy process thoroughly with “Emacs in Emacs: A triumph for EXWM” https://tech.toryanderson.com/2020/10/19/emacs-in-emacs-a-triumph-for-exwm/

Tory Anderson avatar
Tory Anderson
Full-time Web App Engineer, Digital Humanist, Researcher, Computer Psychologist