Tristan401 · 2022-11-13 19:17
Howdy! I originally posted [this question on r/linux](https://www.reddit.com/r/linux/comments/ytv51b/stumpwm_vs_exwm_pros_and_cons/), and it was suggested to post it here as well.
I'm installing Gentoo, and I'm looking at either StumpWM or EXWM as a WM, and I'm leaning toward EXWM simply because Emacs. However, I'm sure there's a lot I don't know about the comparison between them. I'm wondering if you nice folks might share your insights.
I use Emacs a lot, and plan on using it more and more as I get my config dialed in. I'm fully invested in Emacs, and consider it to be part of the OS, so I'll be using it either way. I think having more stuff in Emacs is nothing but handy.
I will be using this setup on several PCs, including a crappy laptop, a gaming laptop, and a few desktops. Gaming is the main thing I'm worried about. I just use KDE on the gaming laptop for now.
I'm also interested in programming, specifically in Lisp. I'm leaning more toward Common Lisp, which is what StumpWM is written in. Of course EXWM is Emacs Lisp, but that's kind of Emacs-specific and wouldn't be used for other software development. I've also considered learning scheme because I have a copy of SICP, but that's taters under the skillet.
Finally, I'm a few months away from getting going on managing a homelab. None of the servers will run this system, but all of the management will be done through it on my main PC. I will be doing a lot of multitasking, troubleshooting, remote-management, security stuff, note-taking, etc.
So, in a nutshell, I'm wondering:
- What can StumpWM do that EXWM can't do?
- What can EXWM do that StumpWM can't do?
- What are the major limitations of each, specifically when compared to one another?
- How will each compare when stacked against the things I want to use it for?
- How does the ecosystem for each one compare? I know the Emacs ecosystem decently well, but not StumpWM's. Are there many plugins / extensions? Are there many users communicating regularly with each other?
lenins_cats · 2022-11-13 20:37
Have never used stumpwm but I switched to EXWM a little while ago and besides some initial confusion with how it handled x windows I love it. I use its workspaces in conjunction with perspectives so things don’t get cluttered and hook x windows to go to certain perspectives. For games I just wrote some hacky elisp to run randr commands to mirror the screen and full screen and it has worked for my purposes (mainly emulation and rogue likes so maybe not the best sample case)
lenins_cats · 2022-11-13 20:44
As far as extensions go there’s a couple handy packages that help EXWM get along with other packages or simply provide convenience. I use perspective-exwm and exwm-modeline (I don’t use any other bar as I find this is all I really need). I would say the main limiting point of EXWM is freezes from the hard working single emacs thread and some confusing behaviour on floating windows (which doesn’t happen often but is definitely not it’s strongest point, you can toggle floating on and off). Sorry I can’t help on the Stump front and sorry if this isn’t helpful but I think I needed to ramble about EXWM A bit! Good luck!
ftrx · 2022-11-13 20:59
- What can StumpWM do that EXWM can't do? :: if Emacs freeze the WM do not so you can easily restart Emacs...
- What can EXWM do that StumpWM can't do? :: being fully integrated in Emacs, allowing X11 apps to be almost-on-par with Emacs windows, a VERY pleasant interactive usage once you learn and practice it a bit, something you can't go back once tried.
- What are the major limitations of each, specifically when compared to one another? :: my knowledge of StumpWM is very limited, I've just tested it briefly a bit of time ago, at that time (so I do not know if that's changed today) was a very raw/limited WM, using it with some floating windows apps from GIMP and beyond was/is a pain. EXWM suffer some floating windows and java SWIG bugs but most are easy to circumvent even if some are annoying...
- How will each compare when stacked against the things I want to use it for? :: EXWM offer IMO a superior windows interaction paradigm ONCE you practice it. Just simple things like being able to run a handful of screen layout with X11 apps with a simple elisp function bound to a keystroke OR execute the same from an org-mode buffer clicking on a link during a live presentation... It's REALLY game-changing in comfort terms. You should IMO bind few functions to single keys like `mode-line-other-buffer`, `delete-other-windows`, `split-window-right`, `split-window-below`, `other-window` to be really quick, perhaps using fusioned modeline/echo-areas like awesome-try to reduce wasted space etc.
- How does the ecosystem for each one compare? :: can't really answer for StumpWM but I suspect it have a very limited community, so perhaps you might get quick responses but not much goodies. Emacs on contrary is named "an editor" but in the classic sense of human-computer interface, witch means IMO an "operating environment" or a single application to do anything where nothing is compartmentalized and any function might be integrated or changed anywhere. It's the same for StumpWM being CL *but* StumpWM is a WM, a single application with a specific target usage. Emacs is a mail client, a feed reader, an nntp client, a reddit client, an HN reader, a file manager, ..... so Emacs can be your desktop environment, opening the way for instance to manage personal data, all files, in org-mode, accessing them via org-roam in a search & narrow way, querying them with org-ql etc. Doing more with StumpWM is equally possible, but means you have to write tons of code.
donio · 2022-11-13 21:22
I've used StumpWM for 10 years before switching to EXWM 5 years ago. Both work fine, each with its own quirks and both are great if you want to fully customize things to your liking.
To me the decision comes down to this: Does treating X11 windows as Emacs buffers seem like a good idea to you? Are you comfortable enough with your favorite buffer switching/management system so that you will want to use it for everything else?
Tristan401 · 2022-11-13 21:52
I'm more or less a beginner when it comes to Emacs. I've got >500 LOC in my config if that's even a useful measurement.
That said, I'm 100% sold on the way it works, and doing more stuff in Emacs sounds great. The main draw to StumpWM for me is the opportunity to work on something written in CL, but there are other projects.
J-ky · 2022-11-14 14:02
What can StumpWM do that EXWM can't do?
In case Emacs freezes, which happens kind of often, the whole WM has to be restarted. Or if you tweak some Emacs config and need to restart Emacs several times to see what happen, restarting the whole WM is a bit tedious.
What can EXWM do that StumpWM can't do?
Any X window is a buffer. Everything is controlled by the same set of keybindings. If you want similar experience in stumpwm, you have to dig very deep into slime and write a lot of boiler plates in common lisp.
The major limitation of EXWM for me is gaming. It works fine with most of the steam games. However, if you want to play some Windows-exclusive game with wine. The floating window of EXWM drives me crazy. I ended up opening another tty to use another wm to play game if I want to.
I do not have extensive knowledge of how wm works under the hood. But if I want to do something in EXWM, I could always figure out by myself thanks for the C-h function.