I know there has been a lot of requests for features to be implemented or fixed in HashTWM. But the reality is, I'm barely using Windows anymore and so I don't have an urgent need for HashTWM.
Despite all the progress around other tiling window managers for Windows I still believe there is room for improvement though, so I am putting some effort into getting a rewrite off the ground. My idea is to get a solid foundation built up that (if anything) through the power of open source, someone will be able to take and hopefully build their dream TWM out of.
So far the rewrite has the following implemented:
- List structure (groups, with each group holding a list of windows, and a tiling method) and core list manipulation functions.
- A keyhook that is used for all interaction, which supports key-chaining! (this was top priority for the rewrite. No more non-working keys!)
- A small status window that can be used to display messages, or show the state of the keyhook input, with a look and feel similar to Ratpoison.
- Window open/close/focus hooks all set up and mostly connected to the list functions.
- A debug console that can be opened/closed on demand, for watching the window list and other internals.
Stuff that still needs to be done:
- Integration of a scripting language. I will probably go with Lua since I am familiar with embedding it and I haven't yet found a lisp that is tiny enough or easy to embed.
- The ability to actually tile windows. I've decided that 100% of the window tiling code will be written in Lua, so being able to write your own tiling functions will be a top priority.
- Other miscellaneous scripting hooks, because I want this to actually be useful.
So there you have it. I will be working on this a bit more on Monday, and I should have my current progress into a GitHub repository by Tuesday.