Why are hotkeys and toolbar buttons linked?

Hello all,

I am wondering why hotkeys and toolbar buttons are linked.

For example, I removed the Delete button from my toolbar: I do not need it because I always just press DEL on my keyboard. After removing it, I can't use DEL to delete because it was set as a hotkey inside the toolbar button.

Why does it work this way? My suggestion would be to make all hotkeys "Lister hotkeys" which aren't bound to any buttons.

Best Hoppp

1 Like

Toolbar buttons can be set with hotkeys. When you delete a button, the bound hotkey will be deleted by default.
If you want to continue using the hotkey after deleting the button, you can check "Always enable the hotkey on this toolbar in the window" in the Customize dialog box.
Or you can create a new hotkey separately instead of binding it to the button.

You can find them in the Customize > Keys dialog, in their own Toolbars category. It also tells you which toolbar they're from.

The reason it works that way is that people used to edit or remove their toolbar buttons and then be surprised when the corresponding hotkey didn't change as well.

There are a few ways to deal with it. Which is easiest depends on how much you're changing the default toolbars.

Fewest steps

You could avoid everything below and, instead of deleting default buttons/menus, move them into a sub-menu somewhere out of the way.

Fewer steps, if you don't mind the items being somewhere.

Converting to standalone hotkeys

If you're only removing a few things from the default toolbars, and don't want to stash them in a sub-menu, then buttons/menus with hotkeys can be converted to a standalone hotkey:

  • Select the existing hotkey, in the Customize > Keys window. (Use the Toolbars category to find them quickly.)
  • Click Duplicate, above the list, and choose New Lister Hotkey.
  • Assign the desired hotkey(s) to it and click OK. (To assign more than one hotkey, or certain special keys, use the drop-down arrow on the right of the hotkey field.)
  • Then delete the original toolbar item.

Completely custom toolbars

Alternatively, if you're using almost or completely custom toolbars and don't want any (or much of) the default commands left in them, there's another option. You can ask for all the default toolbar hotkeys to be active even if the toolbars themselves are turned off.

This takes the most effort, and won't be what makes sense for most people.

  • Default hotkeys come from these toolbars, in the Standard Toolbars part of the list:

  • If you're using completely custom versions of those (and haven't just turned them off), create new copies. (Select or right-click each and click Duplicate.)

    Those will be the toolbars you use and modify going forward.

  • Reset anything under Standard Toolbars that you want back to factory defaults. (Select or right-click each, and use the factory-reset option.)

  • While there, select those toolbars and, on the right, make sure Always enable this toolbar's hotkeys in Listers is turned on.

  • Back in the main window, switch to your desired toolbars (i.e. the copies you just made) and use Settings > Toolbars > Set as Default Toolbar Set.

    New windows will now open those toolbars instead of the defaults.

  • Close any other Opus windows.

  • Back in Customize > Keys, check the Conflicts category in the list. If it's empty, you're done. But there may be similar commands on both the custom and default toolbars with the same hotkeys. You can turn them off in Keys list, or remove the hotkey (or button) from one toolbar or the other to resolve it.

1 Like

Hi Leo, thanks for the comprehensive answer. I'm sure it'll be useful to someone. However I was asking more out of curiosity rather than needing support.

What if buttons get changed to triggers for scripts? That way there could be multiple triggers to one script (eg. a button & a hotkey), or one button could actuvate two diffeent scripts for on/off. I think having code inside buttons makes the whole process wonky.

Again, thanks!

Then every single toolbar button is an indirection to something else. You'd have to open the button to see what it runs, then open something else to actually edit it...

If you wanted to make a new button, you couldn't just make one and put the command(s) into it. You'd have to make a script somewhere else, then make the button and point it at that script. For every button. That would not be fun at all.

Good point, didn't really consider that.

Couldn't the Script Editor be embeded after selecting the script?


User creates a new button, say Delete File.
It has the Delete File script enabled - a default script.

If a user wants to edit the delete file script in some way, either:

  • Go into the Script Selector and select New Script at the top (The same one for an Empty Button)
  • Or edit the script they currently have selected, it'll auto-select New Script

Then either:

  • Type in a name to the script instead of New Script
  • or just close the window and get prompted for a name.
    It could by defualt be the name of the Button. That'd mean almost no change to the flow at all.

I also think it would be more logical and lead to less surprises, but it's been this way "forever" so I doubt it will change,

It was actually the other way around in Opus 12, but that caused other problems for people, so we changed it in the new default toolbars for Opus 13.

Neither way around is perfect for everyone, unfortunately, but we think the way it is now makes the most sense, just in terms of reducing cases where the same command is defined in two different places.

To clarify, the way hotkeys and toolbar buttons work hasn't changed - all that's changed is that a few of the default hotkeys have been moved to their associated buttons. Just a default configuration change, not a change to how the system works.

1 Like

Thanks for that clarification.