Scripting: API for listing & invoking actions (key bindings)

It’d be nice to have a scripting functionality to run an action via the scripting LUA API.
When I’m saying “action”, I mean what is mappable from the “Preferences > Keys”.

There are 2 attempts for implementing a command palette:

Which are trying to implement something like a “command palette” but both are limited because of the API.

What I also find counter intuitive, is that renoise.tool():has_keybinding("Pattern Editor:Navigation:Move to Next Row") will return false, even though the actions exists & the down arrow executes this command. It seems that the scope of the API methods of renoise.tool() is only about custom script actions?

Proposal:
A way to iterate and invoke actions: renoise.tool().actions() (or key_bindings following the current naming schema) to return an array of actions.
Each entry could have the fields name, invoke, and key. The name and invoke share the same meaning with the renoise.tool():add_keybinding. The key is the bound key that invokes this function, as seen also in the KeyBindings.xml

3 Likes