Add key bindings for common stroom actions
The following is a list of key bindings and their actions in stroom. Comment on this issue with more suggestions or comment on the key binding used. Key bindings need to not clash with any standard browser bindings or common OS bindings. Ideally bindings would be user configurable for each action.
Existing key binds:
alt-w - Close
alt-shift-w - Close all
ctrl-s - Save
shift-ctrl-s - Save all
ctrl-space - Completion in editor
New key binds
ctrl-/ - Quick find (new feature in development)
shift-ctrl-f - Search inside content (planned new feature)
? - Refresh refreshable table/pane with focus
? - Run query (which one?)
? - Open properties screen
? - Open users screen
? - Open tasks tab
? - Open jobs tab
? - Switch stroom tab
? - Open a dialog showing all the key binds, ideally applicable to the current context.
One option is to borrow from github's key binds and have multi letter binds, e.g. gi for go to issues, but this would requires us to ignore these binds when focus is on a text field, editor or similar. These sorts of binds are potentially easier to remember. Github does however makes it very clear visually when a text input control has focus, which stroom would probably also need to implement.
I think sticking to a common initial sequence would be more intuitive, with some exceptions made for commonly-used combinations in other web apps. Ctrl+Alt seems to be generally unused in Chromium browsers, so would be a good choice.
Existing bindings
ctrl-alt-wClosectrl-alt-shift-wClose allctrl-alt-sSave (current keybinding doesn't always work, sometimes triggering the browser's Save As... window)ctrl-alt-shift-sSave allctrl-spaceAutocomplete (no change)
New bindings
ctrl-/No change (same as Github)ctrl-alt-fContent searchctrl-alt-rRefresh all panes in the active tab (that support refresh)ctrl-alt-(left arrow)andctrl-alt-(right arrow)activate tab to the left/rightenter/escTo perform the default dialog action - like clicking theClosebutton in a modal dialog.ctrl-alt-,andctrl-alt-.Seek backwards/forwards in stream steppingalt-#Activate tab by index
A dialog displaying available shortcut keys could be added to the help menu.
For UI elements invoked by a shortcut (like the refresh button), display that shortcut in a tooltip.
Tab navigation using switching left/right or via index can be a bit cumbersome with a lot of tabs open. Vivaldi (the browser) has a neat f2 shortcut for (open|show)ing anything https://help.vivaldi.com/desktop/shortcuts/quick-commands/. You type in some bit of the thing you are after and it will show all matching open tabs, closed tabs, history, bookmarks, commands that match. Applying this to stroom the quick finder could list/search open tabs, document entities, commands (e.g. Open properties tab).
Also the snag with some ctrl-alt-... shortcuts is that they conflict with the OS shortcuts, e.g. ctrl-alt-left/right is switch workspace in mint, I think. Very hard to pick shortcuts that don't conflict with something though.