Hacker News new | ask | show | jobs
by l_t 2339 days ago
It does seem like we've realized that GUIs are not really the most automation-friendly way to interact with programs. But there are a lot of nice macro tools out there still.

For Windows, there is a macro scripting language Autohotkey [0], which has powerful recording GUIs built on it [1]. Although it doesn't support application-specific hooks that I'm aware of, it does allow introspection into the rendered GUI of the application, so you can "click a button" instead of "click a pixel".

OS X has Keyboard Maestro [2], which I've heard is good.

Also, many keyboards have macro recording built in. My Ducky keyboard can record and save macros with no custom software/driver needed. (the macros can even include mouse clicks, but that's a little janky.)

As a final note, I think the place I've seen macro recording still used the most is in gaming. In most other areas of computing, it's seen as preferable to make a special-purpose utility to solve a problem instead of building layers of automation on top of a more general-purpose tool.

(btw, this is just based on my personal experience -- I love automation so I've never been far from the macro-space. I'm not trying to argue against your point.)

[0]: https://www.autohotkey.com/

[1]: https://www.macrocreator.com/

[2]: https://www.keyboardmaestro.com/main/

2 comments

> It does seem like we've realized that GUIs are not really the most automation-friendly way to interact with programs. But there are a lot of nice macro tools out there still.

Yeah, in general the opinion seems to be "you want to manually do stuff, use a GUI. If you want automation, use the API of either a server-side backend or CLI tool", but there is a huge segment of users that are between that. Imagine power users that don't know how to program. For them to be able to quickly record > playback some common thing they do, would save a lot of time and be valuable

For automation I like to have at least something like AutoHotKey or Sikuli, because there will always come up little temporary tasks that are time limited that you don't have the time to learn the apis needed to automate it before the whole task is supposed to be done, but the task itself is still so tedious and time consuming that it might run over time if not automated.