Hacker News new | ask | show | jobs
by armitron 2731 days ago
Some more macOS window managers, all free and opensource:

Spectacle, Slate, Phoenix (similar to Slate)

And by far my personal favorite:

Mjolnir which is extensible in Lua! Also, Hammerspoon its continuation.

[1] https://github.com/eczarny/spectacle

[2] https://github.com/jigish/slate

[3] https://github.com/sdegutis/Phoenix

[4] https://github.com/sdegutis/mjolnir/

[5] https://github.com/Hammerspoon/hammerspoon

3 comments

That is a great list! Autumn's API was inspired by a lot of these, so you may find some similarities, although I redesigned Autumn's API from the ground-up to be intuitive, simple and predictable, and so that it would lend a lot more easily to the built-in documentation viewer. Searching through online documentation was always one of my most sore points when using other programmable window managers, so that was one of my biggest focuses in Autumn, and one of the aspects of it I'm most happy with how it turned out. That, the developer console, and the integrated IDE (Monaco editor), are some ways that I felt I could take the next step up from earlier window managers.
> Searching through online documentation was always one of my most sore points when using other programmable window managers

For me that is always one of the most sore points of almost every single desktop application, or at least those released this side of the millennium (older stuff tend to have actual offline documentation with them).

I don't use macOS these days (i dislike how Apple doesn't care about backwards compatibility and every time i upgrade macOS i have apps i bought break left and right - at this point almost nothing works on my oldest iMac), but thumbs up for providing your users documentation with the software they bought instead of sticking it to some wiki in a web server somewhere and hoping for the best (of course having the docs available on the web is fine and for some welcome, since they can check out what the app can do before even buying it, just not as a replacement for local docs you can pull up at any moment regardless of your internet connectivity - or even version of the software).

Here are some other interesting things related to scriptable window management and accessibility to check out:

aQuery -- Like jQuery for Accessibility

https://donhopkins.com/mediawiki/index.php/AQuery

It would also be great to flesh out the accessibility and speech recognition APIs, and make it possible to write all kinds of intelligent application automation and integration scripts, bots, with nice HTML user interfaces in JavaScript. Take a look at what Dragon Naturally Speaking has done with Python:

https://github.com/t4ngo/dragonfly

Morgan Dixon's work with Prefab is brilliant.

I would like to discuss how we could integrate Prefab with a Javascriptable, extensible API like aQuery, so you could write "selectors" that used prefab's pattern recognition techniques, bind those to JavaScript event handlers, and write high level widgets on top of that in JavaScript, and implement the graphical overlays and gui enhancements in HTML/Canvas/etc like I've done with Slate and the WebView overlay.

Web Site: Morgan Dixon's Home Page. http://morgandixon.net/

Web Site: Prefab: The Pixel-Based Reverse Engineering Toolkit. https://web.archive.org/web/20130104165553/http://homes.cs.w...

Video: Prefab: What if We Could Modify Any Interface? Target aware pointing techniques, bubble cursor, sticky icons, adding advanced behaviors to existing interfaces, independent of the tools used to implement those interfaces, platform agnostic enhancements, same Prefab code works on Windows and Mac, and across remote desktops, widget state awareness, widget transition tracking, side views, parameter preview spectrums for multi-parameter space exploration, prefab implements parameter spectrum preview interfaces for both unmodified Gimp and Photoshop: http://www.youtube.com/watch?v=lju6IIteg9Q

PDF: A General-Purpose Target-Aware Pointing Enhancement Using Pixel-Level Analysis of Graphical Interfaces. Morgan Dixon, James Fogarty, and Jacob O. Wobbrock. (2012). Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. CHI '12. ACM, New York, NY, 3167-3176. 23%. https://web.archive.org/web/20150714010941/http://homes.cs.w...

Video: Content and Hierarchy in Prefab: What if anybody could modify any interface? Reverse engineering guis from their pixels, addresses hierarchy and content, identifying hierarchical tree structure, recognizing text, stencil based tutorials, adaptive gui visualization, ephemeral adaptation technique for arbitrary desktop interfaces, dynamic interface language translation, UI customization, re-rendering widgets, Skype favorite widgets tab: http://www.youtube.com/watch?v=w4S5ZtnaUKE

PDF: Content and Hierarchy in Pixel-Based Methods for Reverse-Engineering Interface Structure. Morgan Dixon, Daniel Leventhal, and James Fogarty. (2011). Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. CHI '11. ACM, New York, NY, 969-978. 26%. https://web.archive.org/web/20150714010931/http://homes.cs.w...

Video: Sliding Widgets, States, and Styles in Prefab. Adapting desktop interfaces for touch screen use, with sliding widgets, slow fine tuned pointing with magnification, simulating rollover to reveal tooltips: https://www.youtube.com/watch?v=8LMSYI4i7wk

Video: A General-Purpose Bubble Cursor. A general purpose target aware pointing enhancement, target editor: http://www.youtube.com/watch?v=46EopD_2K_4

PDF: Prefab: Implementing Advanced Behaviors Using Pixel-Based Reverse Engineering of Interface Structure. Morgan Dixon and James Fogarty. (2010). Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. CHI '10. ACM, New York, NY, 1525-1534. 22% https://web.archive.org/web/20150714010936/http://homes.cs.w...

PDF: Prefab: What if Every GUI Were Open-Source? Morgan Dixon and James Fogarty. (2010). Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. CHI '10. ACM, New York, NY, 851-854. https://web.archive.org/web/20141024012013/http://homes.cs.w...

Morgan Dixon's Research Statement: http://morgandixon.net/morgan-dixon-research-statement.pdf

Community-Driven Interface Tools

Today, most interfaces are designed by teams of people who are collocated and highly skilled. Moreover, any changes to an interface are implemented by the original developers and designers who own the source code. In contrast, I envision a future where distributed online communities rapidly construct and improve interfaces. Similar to the Wikipedia editing process, I hope to explore new interface design tools that fully democratize the design of interfaces. Wikipedia provides static content, and so people can collectively author articles using a very basic Wiki editor. However, community-driven interface tools will require a combination of sophisticated programming-by-demonstration techniques, crowdsourcing and social systems, interaction design, software engineering strategies, and interactive machine learning.

chunkwm is another great option - https://github.com/koekeishiya/chunkwm