Proposal: Reserved keys for custom key bindings
|Proposal pages help us get from feature requests into actual plans. This page is a proposal to reserve a set of special keys/key combinations for a user's custom key bindings.|
Proposal pages are used on an ongoing basis by the Audacity development team and are open to edits from visitors to the wiki. They are a good way to get community feedback on a proposal.
- Note: Proposals for Google Summer of Code projects are significantly different in structure, are submitted via Google's web app and may or may not have a corresponding proposal page.
Audacity has a large number of pre-defined keyboard shortcuts. This makes it hard for users to find suitable free unassigned keys or key combinations to use for their custom key bindings.
The documentation (Manual and Wiki) only lists keys and key combinations that are already assigned - they do not offer any advice on, or listings of key combinations that are available, making it an arduous task to search out available keys or key combinations
Audacity cannot easily be used to ascertain sets of available unassigned keystrokes.
Furthermore, any currently unassigned key/key combination that a user chooses to use may subsequently become an Audacity assigned key binding, thus potentially invalidating the user's previous setting and forcing them to search for an alternative key binding. This is definitely sub-optimal as the user is likely to have used their custom binding many times and learnt it well.
Permanently reserve a set of special keys/key combinations for a user's custom key bindings. That would save us a lot of problems and provide users with some easy to find, always available key combinations.
Another advantage of having reserved bindings for user's use is that we can document these in the manual for readers.
- James (assumed from +1 on -devel)
- Gale (to CTRL + ALT +
or CTRL + ALT +
, not ALT + navigation arrow)
- One way to ascertain available bindings is to scan Keyboard Shortcut Reference. This is a far from easy and short task.
- Trial and error: an alternative is to just to attempt to bind keys or key combinations in Audacity Edit > Preferences > Keyboard but this is no easy task either and can also be time consuming.
A number of keystroke combinations between five and nine to be permanently set-aside for user's custom bindings. This number should be sufficient and is based on Miller's Law "The Magical Number Seven Plus or Minus Two" - see: this Wikipedia page.
The reserved custom bindings should be for keys that are common to all keyboards.
- Steve's original proposal differed, stating: "perhaps we should reserve special keys that vary on non uk/us keyboards for users"
The dialog in Edit > Preferences > Keyboard should identify which keys are reserved for a user's custom key bindings.
Ideally a mechanism should be provided within Audacity to lock such keys/key combinations so that future developers cannot assign them as default bindings.
Documentation to be updated on Keyboard Preferences listing the reserved available keys/key combinations.
Ctrl+Alt+letter as a combination has ten available combinations currently. On the top row a there is a string of 6: Q, W, E, R, T, Y, this set of six reserved keys would be very easy for user to remember.
Gale has pointed out on the talk page there are some available Clrt:Alt+letter key combinations that should be reserved for Audacity: A, S, F, G, B. This would leave as potentially available: O, P, L, Z, N but I think a set of six would be perfectly adequate.
Function keys F7 and F8 are also still available.
Alt+Up, Alt+Down, Alt+Right, Alt+Left.
A key advantage of this set is that they are standard keystrokes which don't vary with keyboard.
I have also recommended the availability of this group to several users on the forum - so I would vote strongly for reserving at least these four.
- Gale/David Bailes: A disadvantage is that the above four could be useful for future improved keyboard navigation, for example navigation between clips or alternative navigation between labels or label tracks.
Previous Feature Requests relating to this proposal