23 comments

[ 3.3 ms ] story [ 56.6 ms ] thread
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.
I think they did, it got 166 points when I submitted it. ;)

Definitely worth another round, though.

touché, I do think Slate deserves a better features overview though.
dude, that is cool. I don't know why nobody comment this. I guess, if people need handle sth. only by using keyboard, their will got to sh/zsh....

Anyway, I think Slate is very useful for me.

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"

Why use this instead of a tiling wm?

How does your WM work? I was under the impression that a true tiling WM was impossible on OS X, and that programs like Slate were the best compromise.

Edit: Details please.

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.

because it supports native osx apps, not x11 apps
My WM supports only native OSX apps. I have never tried it with any X11 applications.

Also, I noticed below you said someone should do this in MacRuby. My WM is written in MacRuby. Maybe I should release it.

You should. I'm still going to stick with Slate though because I use it as so much more than a window manager.
I'd be very interested to see/try it. The lack of a decent WM in OSX is one of the main things that keeps ArchLinux on my MBA.
Oh, I see, I misread your first comment. Yes, you should release it. I'll certainly use it and probably contribute to it.
Because there aren't many dynamic tiling WMs on OSX. The only one I know of is TylerWM and last I heard it didn't work very well.
Someone needs to do this, but with MacRuby.
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.

Does anyone use Spectacle? How does this compare?
I do. Spectacle is much simpler. Having recently switched from Vim to Emacs, Slate's configurability scares me.
"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 use Spectacle. It's not necessary to be that complicated.
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?