Skip to content
This repository has been archived by the owner on May 19, 2018. It is now read-only.

robrix/Haxcessibility

Repository files navigation

Haxcessibility

Haxcessibility is, above all, a horrible pun on Mac OS X’s Accessibility framework and its AX prefix. I am shameless.

Second to that, Haxcessibility is a use case–driven remote control for Mac apps by Mac apps. It enables hacks like moving and resizing another app’s windows, and there’s loads more that the AX APIs make possible that Haxcessibility could make convenient with a method or two.

Use it

Resize the focused app’s focused window to fullscreen on a 27" iMac:

[HAXSystem system].focusedApplication.focusedWindow.size = NSMakeRect(0, 0, 2560, 1440);

Close all windows in the focused app:

[[HAXSystem system].focusedApplication.windows makeObjectsPerformSelector:@selector(close)];

Improve it

Don’t see the feature you want? Fortunately, it’s pretty easy to add your own convenience methods. Fork Haxcessibility and send me a pull request with your code.

You’ll want to pay special attention to the HAXElement+Protected.h private header. HAXElement is the root of most functionality in Haxcessibility, and this header declares the conveniences defined for wrapping more of the Accessibility APIs’ functionality.

Thanks to

This framework would not be what it is without the help of:

  • Decimus Software for DTerm, which showed us what you can do with the Accessibility APIs

  • DEVONtechnologies, LLC for their patronage of Grid, the original raison d’être of this framework

  • Scott Perry for his industrious work on Haxcessibility, which modernized it and increased its functionality greatly; and also for his project Switch, a window-based context switcher that motivated a lot of this effort

About

Hackery via the AX (Accessibility) APIs

Resources

License

Stars

Watchers

Forks

Packages

No packages published