I use dwm
in my laptop, but previously used i3wm
for a few years. I’m curious about:
- How well
EXWM
performs nowadays? - Is it resource heavy compared to other tiling window managers?
- Is it still an issue
EXWM
not being multi-threaded?
My daily tasks involves just opening chrome, telegram and/or slack, watching movies and coding of course. Would it be a good fit for my needs?
I’d love to know your thoughts if you use or have some previous experience with EXWM
. Thank you in advance!
I loved it. If I don’t need to be on a MS Windows machine, I would use EXWM as my daily driver. On Linux it was without problems. Yes, make keybindings and functions for sound, brightness and applications I want to start was a little bit of work. A little bit work with the configuration of X, like the mouse pointer, etc…
Also curious, does it still hangs with ‘M-x gnus’ or any other time consuming command?
Does anyone here know about the possibility of an Emacs Wayland compositor? I saw this a while ago, but I haven’t heard anything since.
It is a great WM, the only really downside is the single threaded bit, which you can fix by opening another instance of emacs and passing keycaps directly, so that you run any processes that you know will block you in any time, in the created instance, this with emacs server is all you need.
Would I recommend EXWM as a daily driver? Not really. I say that as someone who has chosen to use exwm exclusively for years 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?
- 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.
But 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 processes 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.
- Universal buffer-paradigm even for all my browser tabs.