143 karma · joined October 18, 2018
right now, configuring workspacer is a very imperative, mutable process, because you just setup instances of objects, and call functions that setup some state. some care would need to be taken to design an API that could be "layered" in that it could be easily overridden by the user. this is a good idea!
fancy zones allows you to define a static layout, and then drag windows into the zones you create.
layouts in workspacer are defined in code, and are "always on", in that the window position/size is always handled by workspacer, instead of only when you ask for it.
On direction changes, I've gotten this request a few times. It should be pretty easy, but I haven't gotten around to it: https://github.com/rickbutton/workspacer/issues/43
On the fly layouts would be neat. Since layouts are just an instance of ILayoutEngine, you could probably just write a bunch of custom code to allow you to make splits however you want. I would be super interested in seeing what this looks like!
wlines is awesome! There is a feature in workspacer similar to dmenu called "menus", but there are a few bugs, mostly around it sometimes not showing up in focus, which is a pain. I have some config on my work machine that lets me press alt-shift-p and navigate to a bunch of work projects I maintain, only typing the first few characters of the project I'm looking for.
For the few cases where it doesn't work right now, I have ignore routes setup in my config file (so workspacer will just ignore any matching window). I should probably make a list of the few common apps that are weird.
I use xmonad on my linux machines, and wanted something similar for Window, so workspacer trys to replicate that style of window manager (configurable via writing C#, dynamic layouts, etc).
I've been using it every day for about a year, but its still pretty early, there are some applications for which it freaks out, but for the most part it works! What it really needs is a good set of docs and a bunch of examples, but I haven't had any time to flesh it out.
I was hoping to see some unique tricks in the source for Fancy Zones, but it looks like it more or less does the same thing as workspacer, managing the set of open windows and occasionally calling SetWindowPos.
Let's replace "laziness" with "carefully considered trade-offs" in this context.
i.e. "The fact that a lot of modern day compilers don't have built in assemblers etc. are probably more due to carefully considered trade-offs".
edit: I missed that chez scheme is already mentioned in the article.
However, I agree, "free()" is not garbage collection, but rather a form of memory management, of which garbage collection is a subset, and manual (free) is another.
^ videos of Trump encouraging violence
In another life I worked in a mostly linux environment, and developed on linux, where I used xmonad as a window manager. Switching to windows for a new job several years ago made that super painful. I use workspacer every day at work, and sometimes at home, and it mostly works! It crashes sometimes, and super DOES NOT LIKE IT if you reattach monitors (think laptop), but a restart of the application usually solves it.
The cool part: the configuration file is actually just C#, so you can configure it with a similar level of power that you would configure xmonad (or dwm) with (like implementing custom layouts, etc). I have not solidified the configuration API yet though, and have some plans to switch some major things up, so the road is a bit rocky for the time being.