I like that the whole WM is implemented in two files, a .h for configuration and a .c. The code looks clean and has embedded ascii-art. This looks like a project made with love.
Really dislike software with configuration baked into the code, every key binding and experiment requires recompilation which prevents managing it sanely through a package manager.<p>I get the appeal of "minimal" in this case, but it just doesn't work for me.
I really love vim keybindings and I use them wherever I can (firefox with vimperator, the shell etc), however I'm not sure that modes make sense on a window manager. In my opininon it doesn't have that many operations, and they don't differ that much from each other, I think that having to think which mode you're on and which one you need to use would only introduce friction and slow you down (in this case the normal mode is not that normal, i switch windows as often or more than I create new ones or switch layouts).<p>Another thing is that the operators, motions, and objects each need its modifier keys; in my opinion that just misses the point of having modes and one of the strong points of the vim keybindings. Because of that it was really hard for me to understand how to use Howm:
the first time around I skipped the configuration part and went directly to the examples, and you don't mention anywhere there that q4c (for example) is really Alt_L+q, Alt_L+4, Alt_L+c. When I read the configuration part and the configuration file, to see each keybinding I got it, but still it took some googling to figure out that I needed to use xmodmap to know which keys are the MODXMASK.<p>EDIT: It seems you do mention that the operators, motions and objects need a modifier key, I missed it. Still, I think that it would be clearer if the keys to press were explicitly indicated (like Alt_L+q, Alt_L+4, Alt_L+c)
One of the reasons I continue development work predominantly in windows OS is its vast support for mouse-free operability. I love vim for the same reason. I tried ratpoison in linux but found it to interfere with application keyboard shortcuts. I also tried AwesomeWM but it wasnt as graceful as the windows key in windows.<p>If someone was to solve this issue elegantly it would compel me to reconsider moving my daily development activities back to linux
Harvey, your code looks very nice and expressive with appropriate comments. There is some space for improvements on this matter (well, there always is) but I found it very good to read and easy to follow!<p>Really well done, keep up the good work!