Plugin: Adhoc Macros


(Christopher Auer) #1

Plugin name: AdhocMacros
Author: Christopher Auer
Source URL: https://github.com/christo-auer/Kaleidoscope-AdhocMacros

Description:

AdhocMacros lets you record a series of keystrokes and then replay them. A replay can be executed multiple times by prepending the number of repetitions.

AdhocMacros was inspired by Vim’s ingenious macro feature and makes it possible to apply this idea to any application.

Now that the formalities are out of the way: Hey, everyone! I’m Christopher, a very happy Model 01 user and an over 15-years heavy Vim user (currently NeoVim). One of the coolest features of Vim is adhoc recording and playing macros which I constantly use while programming. Sometimes, however, I miss such a feature in other editors or programs. For instance, I currently do a lot of work in Unity (game engine) and sometimes I find myself entering the some keystrokes again and again. So I sat down and tinkered around with Keyboardio. You can see the result on my github account.

A word of warning, though: The plugin is still a bit rough around the edges. For instance, you have to use macros to map your keys to recording and replaying. (If the Kaleidoscope gods are listening, then, maybe, I get assigned a range in the Kaleidoscope-ranges.h. :wink: ) Also, there are still some weired interferences with other plugins. If you find any problem, please submit an issue on github. For any general feedback, leave a message here!

Proud to contribute to the community!

Christopher


(Craig Disselkoen) #2

Awesome! You might also be interested in my plugin Kaleidoscope-MacrosOnTheFly (GitHub link). I haven’t had a chance to look at AdhocMacros in detail yet, but it seems like you have some cool stuff here - maybe it even makes sense to merge our codebases at some point to combine the best features of each!

And welcome to the community!


(Gergely Nagy) #3

Can you open a pull request adding your range? :slight_smile:


(Christopher Auer) #4

Yeah, that’s actually the way to go! :wink:


(Christopher Auer) #5

Nice! Thanks for the pointer! Ah, man, if I’ve seen that before, I would have probably used yours instead of developing my own. Anyway, I’ll give your plugin a thorough look to see how use solved some of the problems I’ve encountered. So, yes, maybe we can cross-merge somehow.

Christopher


(Christopher Auer) #6

Hey Craig!

I had a look at your plugin and it completely makes my plugin superfluous :wink: It was worth doing the project to get to know the API though. (sidenote: I’d wish there would be a list of non-core Kaleidoscope plugins anywhere. I’ve searched the forums and found some threads pointing out the issue but no actual list. Any pointers?)

Anyway, I haven’t found any possibiity with your plugin to automatically repeat the replay of a macro for a certain amount of time (like in Vim where you can do 20@a to repeat the macro recorded in register a 20 times) or ad infinitum until you abort the execution. Is this somehow possible? If not, I can have a look and contribute if you want.

Cheers!

Christopher


(Craig Disselkoen) #7

This conversation comes up pretty regularly; I think the idea was that the ‘Plugins’ category on this forum was to serve as the canonical list, one thread per plugin. Most of the 3rd-party plugins I’m aware of have threads in the ‘Plugins’ category (but probably not all - heck, I’ve written a few plugins that I haven’t made threads for, for various reasons).

That’s not currently a feature of MacrosOnTheFly, but pull requests are welcome!


(Noseglasses) #8

The plugins category was the conclusion of a discussion we had last November in the forum.

@Jennigma: Is there any information already available on the Wiki page about how to search for existing user plugins and how to publish new ones? I didn’t find any, but maybe I did not search thoroughly enough. This could be very useful information to reduce the likelihood of collisions.


(Christopher Auer) #9

I’ve seen the discussions, yes. I haven’t figured that I need to search the plugins category of the forum — that could have saved me from writing the plugin. But again: no harm done, it was a good exercise for me!