Wow, I have been using divvy for quit ea long time, and actually passed on Slate the first time I saw it because I figured I had my use casses covered. This post makes me really regret that. Loving it so far, thanks for posting.
I found slate through HN as well, I wrote this post because I didn't think people truly understood its awesomeness. The readme is a very good technical manual but doesn't explain Slate's potential very well.
This is great, I've wanted a hackable window tiling manager for OSX since I tried XMONAD back in the day. I never got used to using Divvy properly. I'm going to give Slate a try.
I have a simple tiling window manager I wrote for OSX. Does this project support tiling? I am guessing no: "Slate is a keyboard-driven window management program for Mac OSX"
By using the Accessibility APIs. I imagine the core is implemented pretty similarly to Slate as I think there are only a couple ways to implement window management features.
It is pretty hacky in parts. For example, some windows have an absolute minimum size that they can't be resized beyond, so I have some logic that figures that out and deals with it. The hiding/showing of windows is also not as robust as I would like, but it works.
There are a lot of other examples where I have added things based on observation, rather than documentation.
it's not impossible the problem is that the real wm is just a stub and the main windowmanager is written into one of the core libraries.
Last I remember you could compile code and link it to an existing library, or increase one of the sections and add loader code for your own binary, but I don't however know if this is still possible with code signing in the newer osx's.
The main problem is that you'd have to disassemble everything since it's completely undocumented terrain. Although on the otherhand if it's objc assembly you might just be lucky, since that reads pretty much like a text book.
Someone else commented that they had written one in macruby.
I looked into implementing macruby for configuration but unfortunately the embedding api is not very good. I am possibly going to implement lua configuration though.
"With great power comes great responsibility". I run a very simple slate configuration that is essentially spectacle with some minor mods. It's very short and while I will admit it took me a couple of tries to get perfect it does exactly what I want.
I currently use the free Window Keys application for resizing windows. I use it over other solutions as it provides resistance when you hit the edge of the screen. Does Slate provide this resistance on resizes?
23 comments
[ 3.3 ms ] story [ 56.6 ms ] threadDefinitely worth another round, though.
Anyway, I think Slate is very useful for me.
Why use this instead of a tiling wm?
Edit: Details please.
It is pretty hacky in parts. For example, some windows have an absolute minimum size that they can't be resized beyond, so I have some logic that figures that out and deals with it. The hiding/showing of windows is also not as robust as I would like, but it works.
There are a lot of other examples where I have added things based on observation, rather than documentation.
Last I remember you could compile code and link it to an existing library, or increase one of the sections and add loader code for your own binary, but I don't however know if this is still possible with code signing in the newer osx's.
The main problem is that you'd have to disassemble everything since it's completely undocumented terrain. Although on the otherhand if it's objc assembly you might just be lucky, since that reads pretty much like a text book.
Also, I noticed below you said someone should do this in MacRuby. My WM is written in MacRuby. Maybe I should release it.
I looked into implementing macruby for configuration but unfortunately the embedding api is not very good. I am possibly going to implement lua configuration though.