Live data from Hacker News

StumpWM: A complete window manager in Lisp

github.com

31–40 of 47 posts

Re: StumpWM: A complete window manager in Lisp

#31

Does anyone have experience with both StumpWM and i3? How do they compare? I'm happy with i3, but am curious about other similar window managers.

I would say stick with i3 unless you are really a fan of lisp. I used StumpWM for years until I discovered i3, however a few months ago I switched back to StumpWM.

The floating layer in stump is quite frankly terrible. Pop up dialogs often act oddly. Yesterday I was updating ebooks in Calibre menus were appearing full screen and the progress dialog would grab focus and pop to the front on every tick. These are the types of issues that caused me to stop using it 4 or 5 years ago so unless you are willing to fix them yourself I wouldn't count on things improving.

That being said I much prefer the StumpWM tiling over i3. The tree structure that i3 uses is a bit odd. Stump is much more straightforward you have frames and windows. Windows are displayed inside frames and you can split and resize frames however you like. I never have to focus parent in order to split a frame vertically instead of horizontally as you might in i3.

Re: StumpWM: A complete window manager in Lisp

#32
post #28

There is also another project written in Common Lisp, The Deep Space Window Manager : https://github.com/dss-project/dswm Does someone have some experience with it ? The README has the following statement : "DSWM is a fork of StumpWM, so have most of all features, which have StumpWM, but it designed for better usability and better integration with emacs."

Tried it a few month ago, haven't noticed any actual superiority compared to StumpWM, besides StumpWM have active community and dswm seems to be developed mostly by 1 person.

Re: StumpWM: A complete window manager in Lisp

#33
post #13

If you'd prefer to use Scheme over Common Lisp and would like to get your hands dirty, consider hacking on guile-wm. I try it out from time to time and make small patches to improve it. You can modify guile-wm at runtime by connecting to the REPL server using telnet or the geiser Emacs extension. I recall StumpWM not having something as convenient. I wish guile-wm was under more active development, so maybe a few mor…

You are mistaken. One could always modify StumpWM at runtime, via SLIME, which is far superior to geiser. Common Lisp is also superior to Scheme (as a language) and SBCL/CCL are miles better than Guile in particular, Guile being one of the worst Scheme implementations out there.

Yes, I was mistaken about the SLIME integration. I only used a primitive REPL. The rest of your response is total garbage. Guile is a really good Scheme implementation, imo.

Re: StumpWM: A complete window manager in Lisp

#34
post #22
post #14

Earlier quoted context omitted.

Those are a lot of claims to throw out there in one sentence. Can you elaborate a bit (although I'll give you SLIME over Geiser)?

The incompatibilities between Schemes is one for starters.

The core Scheme language seems pretty small compared to CL so compatibility might not be the best argument to make. The best you can say about CL is that it was designed with the expectation of incompatibility.

For libraries, CL has the same problems as Scheme so it's a wash. I hit this keenly when interacting with the OS (POSIX calls, mostly).

Re: StumpWM: A complete window manager in Lisp

#35
post #32
post #28

There is also another project written in Common Lisp, The Deep Space Window Manager : https://github.com/dss-project/dswm Does someone have some experience with it ? The README has the following statement : "DSWM is a fork of StumpWM, so have most of all features, which have StumpWM, but it designed for better usability and better integration with emacs."

Tried it a few month ago, haven't noticed any actual superiority compared to StumpWM, besides StumpWM have active community and dswm seems to be developed mostly by 1 person.

Thank you for you feedback.

Re: StumpWM: A complete window manager in Lisp

#36
post #34
post #22

Earlier quoted context omitted.

The incompatibilities between Schemes is one for starters.

The core Scheme language seems pretty small compared to CL so compatibility might not be the best argument to make. The best you can say about CL is that it was designed with the expectation of incompatibility. For libraries, CL has the same problems as Scheme so it's a wash. I hit this keenly when interacting with the OS (POSIX calls, mostly).

I do find even outside-the-standard CL libraries somewhat more portable than Scheme libraries. Varies by library, but CL library authors seem to make more of an effort to test on multiple implementations, using conditional compilation where necessary. It's semi-standard to use a compatibility layer for extensions, e.g. use Bordeaux-Threads rather than directly using sb-thread. Whereas Scheme programming style (at least in the Chicken and Racket ecosystems, the two I've used) seems to make more direct use of implementation-specific functions and comes with less expectation that any nontrivial program will run on another implementation without porting.

At least that's the case in the newer "open" CL world; older CL code, especially commercial code, more often did target a specific implementation like Franz, which is more like the Scheme approach.

Re: StumpWM: A complete window manager in Lisp

#37
post #6

Earlier quoted context omitted.

Thank you for that file. I have thought about trying StumpWM. Your setup is going to be helpful.

Glad to be of help :) If you have any questions, ask away ... and be aware that the battery status support in there is an ungodly kludge.

Couldn't you simply parse the output of "acpi -b"?

Re: StumpWM: A complete window manager in Lisp

#38
post #4

I must admit to having wondered why there is not a greater use of Lisp in window managers. Lisp would seem the ideal language to use for tweaking a desktop. Xmonad (in Haskell) seems to have taken most of the attention of keyboard lovers and tweakers, but Lisp would seem to me to be a better fit.

Why not write the window manager itself in Haskell (e.g., xmonad [1]) to take advantage of Haskell's type system, and provide extension points to allow users to tweak the desktop environment in the language of their choice -- for example, Scheme [2] or Python [3]? [1]: http://xmonad.org/ [2]: https://hackage.haskell.org/package/husk-scheme [3]: https://github.com/bjpop/berp

Why not write the product in language X and then make it extensible via language Y?

Well... For one it wouldn't be the emacs of window managers.

If you want to go the full mile, you should go the full mile. Trying to do half a mile subset and hoping it is the right subset gets tiresome pretty quickly.

I deeply respect them for doing it this way.

Re: StumpWM: A complete window manager in Lisp

#39
post #19

I started using stumpwm but I have a small problem that's been annoying me. I'm used to emacs, where if I kill a buffer while split, the killed buffer will be replace by a hidden buffer, or the frame will unsplit. However, in stumpwm, sometimes I'll end a program while split, and I will be left with an ugly blank space where the program's window used to be. Then I have to manually unsplit and resplit to restore the l…

I think I know what you mean, but it's just a key away from removing that "blank" screen (which is called a frame IIRC). For me, (ctrl-t backspace) remove the current frame. I like the flexibility of Stumpwm where it differentiates between the space taken by an application and where it fits on the screen (Frame) vs the application. The scenario you are describing happens if you have 2 frames while only one app runnin…

Thanks for the tip!

Re: StumpWM: A complete window manager in Lisp

#40
post #13

Earlier quoted context omitted.

You are mistaken. One could always modify StumpWM at runtime, via SLIME, which is far superior to geiser. Common Lisp is also superior to Scheme (as a language) and SBCL/CCL are miles better than Guile in particular, Guile being one of the worst Scheme implementations out there.

Yes, I was mistaken about the SLIME integration. I only used a primitive REPL. The rest of your response is total garbage. Guile is a really good Scheme implementation, imo.

Depends what you mean by really good Scheme implementation.

Guile is a GNU project, which means that if you care about (say) Windows (gasp), you're shit out of luck.

The same used to be true about OSX 2-3 years ago, I haven't bothered to check again since then.

Coupled with the fact, that maybe 2-3? people are actively working on Guile (guess what platform they're focusing on), and that pretty much nobody is using Guile besides little toy projects, things are not looking good.

No, a really good Scheme implementation would be, Racket or Chicken. Hell, even Gambit is objectively better and more mature than Guile. I guess you're too blind to see that.

Post reply on HN