6 ms·
I really like exwm but I currently prefer using StumpWM: https://stumpwm.github.io/ https://stumpwm.github.io/. If there was no StumpWM I'd use Exwm. Both have
by nextos 8y ago
I really like exwm but I currently prefer using StumpWM: https://stumpwm.github.io/ https://stumpwm.github.io/. If there was no StumpWM I'd use Exwm.
Both have really similar designs, but for me StumpWM has a decisive advantage: it's implemented in Common Lisp and doesn't run inside of Emacs. Still, it has pretty good Emacs integration and many commands are Emacs-inspired. For example, there's a winner-mode equivalent.
Since Emacs is not multi-threaded, if something inside Emacs freezes your whole X session will become in blocked case you run Exwm. For the same reason, it is a bit more responsive.
After a decade using XMonad, I switched to StumpWM after carefully test-driving exwm and other options. I found I really prefer manual window tiling. StumpWM is really underappreciated. It's the successor of ratpoison, which kind of started the whole tiling window manager saga in Linux.
- josteink 8y agoWith StumpWM I found myself constantly wish it behaved like i3, and I never had enough time to write the CLisp code to make it do so. That said, it was neat running slime inside Emacs to connect to and reprogram the window manager Emacs was running inside, in real time. If StumpWM would get a “i3-mode” easily enabled OOB, I would probably give it another try.
- nextos 8y agoWhat behavior of i3 did you miss? I missed some aspects of XMonad and it was straightforward to set up.
- mbrock 8y agoI've been using Ratpoison and StumpWM for almost 15 years. They really hit the sweet spot for me. I don't even need to configure them, beyond changing the font and maybe adding one or two extra key bindings. I only rarely use the splitting function; mostly, I work with one window per monitor. I've worked for years on a laptop like this. Now I have two external displays and my laptop display. The main one in front of me usually shows Emacs; a vertical one on the side shows a terminal or two.
- nemoniac 8y agoOne thing that doesn't quite line up well between stumpwm and emacs is emacs buffers and stumpwm groups. I'd like to have a single emacs running with some buffers associated with one group and others with another. However it jumps from group to group when I change buffers. Is there a way around this?
- profsnuggles 8y agoI agree with you about preferring manual tiling, the worst thing about manual tiling managers is that there are so few choices. EXWM is my favorite with StumpWM a close second and i3 a distant 3rd. I've been using EXWM for a few years now and the fact that emacs isn't multi-threaded has caused me very little pain. It really isn't something to worry about. I've had way more issues with StumpWM than I have ever had with EXWM. I find it slightly amusing that you list Common Lisp as a plus for StumpWM. At the time the gigamonkeys lisp book was published I was using StumpWM and had some issues I wanted to fix (which still existed when I finally switched to EXWM). Trying to learn Common Lisp exposed me to a community that is, to this day, the absolutely most toxic I have ever experienced. For a decade lisp was anathema to me until I discovered Clojure and from there realized that the Scheme and other non Common Lisp communities are great.
- claudiawerner 8y agoAs someone who has no idea about the CL community, what kind of experiences did you have, or what did you see, to give you such a negative impression?
- AlexCoventry 8y agoA decade ago, you had to have pretty thick skin to tolerate some of the regulars.
- profsnuggles 8y agoI did a quick search and found the /. post that convinced me to buy Practical Common Lisp https://news.slashdot.org/story/05/04/28/1936206/lisperati.com https://news.slashdot.org/story/05/04/28/1936206/lisperati.c... which was nostalgic. So this happened a while ago I don't really remember most of the specifics. I believe at the time I gave up I was trying to get weather information into StumpWM by querying the NWS SOAP api over https. I vaguely remember that there was no http library that supported SSL? I was told to just use the SBCL FFI to wrap libcurl, that SSL was useless anyway and I was an idiot for even wanting to use it. Maybe the community is better now, but I see comments on Clojure articles from Common Lispers sometimes and I have my doubts.
- SkyMarshal 8y agoWhy did you switch away from XMonad? (Curious b/c it’s the only tiling we I’ve used)
- nextos 8y agoAutomatic tiling never worked as I expected. And since the tiling setups I typically use are quite simple, manual tiling makes a lot more sense to me.
- rambojazz 8y ago> StumpWM has a decisive advantage: it's implemented in Common Lisp Why is CL an advantage? How does it make the software better than if it weren't written in CL?
- mbrock 8y agoCompared to Emacs Lisp it’s nuanced but compared to most other non-Lisps it’s very clear: you can connect your Emacs to the Lisp runtime and hack on the program while it runs, which is great for an interactive environment like a window manager.
- barrkel 8y agoTiling is really in distant second place to cascade for window management IMO. Giving up overlaps and easy mouse window selection that you get from cascade seems a poor return vs forcing visible windows to be entirely visible.
- AlexCoventry 8y ago> if something inside Emacs freezes your whole X session will become in blocked case you run Exwm I just played around with exwm a bit, and that seems like it would be a major issue for me. I love the idea of exwm, though. BTW, I had to run exwm under emacs26 (the first blocker for emacs25 in my case was the function string-version-lessp). The wiki[0] says that it'll work with emacs24 and greater. I also had to install it with package-check-signatures set to nil, because my emacs couldn't verify the signature on elpa package exwm-0.22. It's possible that's a spacemacs configuration issue, or something to do with switching from emacs25 to 26. [0]https://github.com/ch11ng/exwm/wiki https://github.com/ch11ng/exwm/wiki
- profsnuggles 8y agoI mentioned in another post that I've found that in practice emacs blocking isn't an issue for me. What I didn't say is that I did need to do some configuration to make that happen. Mostly I just installed the async package and enabled all its features. I could have also sworn that I spent a lot of time configuring gnus so it wouldn't freeze my X session. Looking at my init.el though I don't see anything other than the standard gnus configuration. Maybe my tweaks got rolled into gnus as defaults at some point?