Love lost: when exwm falls short
Table of Contents
I find myself going back to regular WMs (my favorite from the past being KDE) because certain tasks are just deeply punishing in EXWM. When I’m doing my regular daily work I can usually make EXWM work for me. But here are the facts I experience with/without emacs as my window manager.
Life is worse without EXWM
- Winum. Looking at a screen and hitting the num to focus there; I miss it dearly and cringe when I need to reach for the mouse.
- Emacs shortcuts in text-editing.
C-f
,C-n
,C-b
,M-f
,C-w
… it wastes brain-space to have to remember the two sets of bindings. - Full-screen everywhere. In EXWM, there’s no need for tiling. Just full-screen emacs/browser/Telegram/GIMP everywhere, and no more wrestling to make half my screen a browser and half something else.
- No need for window bars with buttons like “full screen” and “minimize.”
- Emacs global bindings. Being able to go from my browser to my email to my agenda all with single keystrokes, and a universal switch-buffer is fantastic (see below).
- Ability to include the meta (the Windows) key in my shortcuts becase I don’t have to compete with another WM for it.
- Buffers being the paradigm of navigation, so even finding browser tabs is just a switch-buffer away.
The sometimes-show-stoppers with EXWM
EDIT The most grievous of these are all fixed by the emacs-in-emacs technique
Emacs freezeson certain operations and it shuts down my system. This is the big one, and happens alot on Tramp stuff.- SOLVED
Windows aren’t fully registered so trying to share a single non-browser screen from my in-browser video calls just fails. Tweaking emacs settingsthat require restarting emacs are costly when this essentially means restarting your whole system.- Awkward compatibility with demanding GUI applications such as Android Studio and its virtual devices (virtually impossible in exwm).
- Sometimes my external monitor fails to reconnect after resuming a session. I have to re-plug.
Conclusions: when to do without
The following tasks look to be sadly without EXWM. emacs-in-emacs solves these issues!
Video calls (Zoom or Google Meet, mostly) when I’ll need to share an emacs bufferRemote work using tramp
Resources
- The solution with emacs-in-emacs: https://tech.toryanderson.com/2020/10/19/emacs-in-emacs-a-triumph-for-exwm/
- Other windows not registered to the system: https://github.com/ch11ng/exwm/issues/785
- Sometimes the external monitor doesn’t re-connect https://github.com/ch11ng/exwm/issues/772