Hacker News new | past | comments | ask | show | jobs | submit login

Let me try to explain what so awesome about this project and why I have chosen it instead of other, more popular WMs. The function of a window manager like managing windows to me is kind of secondary - more important is to have a complete keyboard-driven workflow.

What this exactly means to me is the ability to manage as much possible with keeping fingers on the "home row", ideally without having to touch mouse or arrow keys at all. Is that achievable? Without having to introduce plethora of different keybindings?

Yes, that's possible with modality. So for example: I want to be able to control my music volume by pressing `j` and `k`. And move windows up and down also by using `j` and `k`. And resize windows vertically, again, by `j` and `k`. And move windows across multiple monitors, and resize font in my browser, scroll up and down in my pdf viewer, etc. etc. Sounds crazy? Well, maybe. But I promise you, once you get used to it - you wouldn't want to go back to your ordinary, boring and complicated old way.

My main work machine is a Mac and fortunately for OSX there's an automation tool called Hammerspoon. One day I wrote a nice config inspired by Spacemacs, so for the lack of better ideas I called it Spacehammer. You can find it here: https://github.com/agzam/spacehammer.

To my surprise sadly there's nothing similar to Hammerspoon exists for Linux. Initially I simply wanted something trivial: "how do I rebind `Ctrl+Tab`/`Shift+Ctrl+Tab` to `Win+J`/`Win+K` so I can switch between tabs in my browser more efficiently?". See? `j` and `k` again. Even something simple like that turned out to be difficult to achieve. And AFAIK none of the popular WMs let you do that sort of stuff. With the exception of StumpWM (formerly known as RatPoison).

I wanted to try StumpWM but honestly I didn't give a heartfelt attempt to actually use it. I am still skeptical and the main reason is - CommonLisp. It is an amazing language but its popularity has declined drastically and at this point it's pretty much "Latin" of PLs. Yes, it's cool to know it but practicality of that knowledge might be a bit questionable. Learning whole new language for the sake of configuring a window manager doesn't feel very enticing to me. But at some point maybe I will give it a try.

Then I found EXWM. And almost immediately regretted not trying it out sooner. It took a few days to configure it and next thing I know I wrote a plugin for it: https://github.com/agzam/exwm-edit. Yes, the project is still young and from time to time you stumble upon some rare quirks. Multimonitor setup is a pain. It doesn't support "gaps" so praised in other WMs - I personally don't care about aesthetics of my WM though.

With EXWM everything simply becomes just a buffer in Emacs - your browser, Slack, pdf-viewer, music player - you name it. Because everything goes through Emacs you can create complex keybindings and "simulate" keypresses, for example: you can make `Win+W` to act like `Ctrl+W` in your browser or any other app (no context switching between Mac and Linux).

It is indeed an awesome project and if you are an avid Emacsen and seasoned Linux user - I really encourage you to give it a try.

Your next to last paragraph might just have sold me on EXWM.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact