Thanks :)

The crux of it is that you can bind global hotkeys to your own JavaScript
(or CoffeeScript) functions, and from your JS (or CS) config file, you have
access to an API[1] that lets you control and inspect all open windows and
apps.

On the wiki I have some examples of how you can use this to make something
kind of like a tiling window manager. One of them[2] mimics the
closed-source app AppGrid[3] that I wrote the other week (which actually
turned out to be a spectacular commercial failure because I don't know how
to market).

Technically the API is ObjC, so it could do anything you can otherwise do
in an app, it's not just limited to letting you move/resize windows. For
example, last night I added the functions `open` and `shell`, and today I
added a binding to my own config[4] that opens Dictionary.app.

[1] https://github.com/sdegutis/windowsapp#api
[2] https://github.com/sdegutis/windowsapp/wiki/AppGrid-config
[3] http://giantrobotsoftware.com/appgrid
[4] https://github.com/sdegutis/home/blob/master/.windowsapp.coffee#L13

-Steven


On Thu, Apr 18, 2013 at 7:21 PM, Graham Cox <graham....@bigpond.com> wrote:

> Fantastic! What does it do?
>
> --Graham
>
>
> On 18/04/2013, at 2:44 AM, Steven Degutis <sbdegu...@gmail.com> wrote:
>
> > Called Windows.app. Source is on github:
> > https://github.com/sdegutis/windowsapp
> >
> > What's particularly neat about it is how you configure it. It looks for a
> > dotfile in your home dir, which can either be JavaScript or CoffeeScript.
> > In this config file you, bind your hot keys as you want, using a very
> > simple API that the app exposes in JS-land.
> >
> > I managed to get JavaScript scripting working via JSCocoa, and
> CoffeeScript
> > via coffeescript.js and Coffeescript.compile(). Technically I hide the
> ObjJ
> > syntax away, since most people are much more comfortable in pure JS than
> in
> > ObjJ. I was looking into adding ClojureScript support, but I'm not yet
> sure
> > how to avoid the start-up delay when running java. Waiting 5 seconds each
> > time you reload your config isn't ideal.
> >
> > My first choice for scripting was to use MacRuby, but it only works with
> GC
> > apps, and this one uses ARC. I hear they've got ARC in the works, so my
> > fingers are crossed for the future. Also, PyObjC is really hard to
> > integrate into an app. Ironically enough, when I was googling for how to
> do
> > it, I found an article I wrote about it 3 years ago when I was working at
> > BNR.
> >
> > Also, I created a technique for generating appcasts statically from the
> > command line, and hosting the appcast on github, that might be
> interesting
> > to other open source authors who don't want to have any other hosting but
> > github. The details are in this build.sh file:
> > https://github.com/sdegutis/windowsapp/blob/master/build.sh
> >
> > My apologies if new-app announcements are off-topic, but I think this one
> > is particularly suitable for cocoa-dev because of the technical details.
>
>
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to