New Tool: Keybindings Speed Bar

Hello all,

Based on a suggested feature to implement a speed bar I’ve slapped together just such a thing to make key bindings quickly searchable using fuzzy text search.

Screenshots:
speedbar-01
speedbar-02

I’ve tried to build it to get immediately out of the way when you press a key combination. It will read all alphanumeric input and backspace as input to the search. Escape will clear the search; hit it again to close the dialog. Any other key combination entered will immediately close the dialog and pass directly to Renoise.

Some notes:

  • This tool will read your KeyBindings.xml file, which is outside of the Tools folder. Some people might argue that it’s bad design to leave the sandbox, but it’s the only way this tool will work, since there’s no other way I know to interrogate bindings via the API. Check out the source code to see that it’s only read, never written.
  • You can bind your own shortcut to open the speed bar. I’m on a mac, and I’ve bound it to Option + spacebar - super easy, and super fast
  • A future version might only show shortcuts relevant to the context of your Renoise session (i.e. if you’re in the Pattern editor you’d only see Global and Pattern Editor shortcuts), but for now you get everything.

Enjoy!

com.dlt.SpeedBar.xrnx (15.3 KB)

14 Likes

Ah, what the hell.

Here’s v1.1 with optional filtering based on current working/window context:
com.dlt.SpeedBar.v1.1.xrnx (16.1 KB)

4 Likes

This is awesome, thank you! Just what I always wanted! I’ll put it through the paces and give whatever feedback I can – thanks again!

Nice idea. Too bad you cant execute them in this list. I first thought it’s something like Emacs “M-x” or similar Command bars.

There’s just no way to do that via the API. Plus, any tools you have implement their actions in their own ways, and there’s no way to fire them all. I looked at creating a table of things that are possible via the API and firing those actions when you select the matching item in a list, but that just seemed awful. Only a few things would work that way, and the rest of the things wouldn’t.

Anyway, it works for me because I tend to remember the shortcuts, and hitting a shortcut after you find it fires it right back into Renoise and does the thing you want it to anyway. For me, I’d rather hit a single keyboard chord (abc keyboard) than have to hit the down arrow six times to get to the action I want to fire. But that’s me.

Plus, the things I find myself searching for I end up learning by muscle memory, without having to check the keybindings, so win-win.

Thanks for checking it out, anyway!

Sweet, any feedback would be appreciated. That gif made my day!

1 Like

How do we scroll the results window? I type “line” and for example see 222 results, but only a handful in the window.

awesome ! thank you!

i started this on macOS and got this:

'/Users/esaruoho/Library/Preferences/Renoise/V3.4.3/Scripts/Tools/com.dlt.SpeedBar.xrnx/' failed to load.

Please remove this tool or contact the author (dltfm | dave.tichy@gmail.com) for assistance...

./xml2lua.lua:140: /Users/esaruoho/Library/Preferences/Renoise/V3.4.3/Scripts/Tools/com.dlt.SpeedBar.xrnx/../../../KeyBindings.xml: No such file or directory
stack traceback:
  [C]: in function 'error'
  ./xml2lua.lua:140: in function 'loadFile'
  main.lua:177: in function 'populate_speedbar'
  main.lua:220: in main chunk

can we fix it somehow @dltfm

Awesome!

Reminds me of the Reaper actions window, which I use all the time.

1 Like