Skip to content

Keyboard handling: make both panels focusable and keep last used panel focus properly #4636

@etosan

Description

@etosan

Summary

As two major workflow starting points, one can focus either Groups Panel or Accounts Panel.
Once panel is focused, keyboard can be used to work with items on the panel efficiently (even in Groups panel, by using MENU key).

Unfortunately it is impossible to focus any of these panels straight from keyboard :(. One has to always click. What's worse focus dances around randomly.

Examples

I suggest adding following things to the program to make it more bearable:

  • Add shortcut to focus Groups panel explicitly (for example F2 or CTRL +G)
  • Add shortcut to focus Accounts panel explicitly (for example F3 or CTRL + A)

This would allow user to refocus to given panel if anything goes wrong, and these shortcuts should be window global.

Then, if there is the will to implement this I suggest panel focusing //specialcase//, for handling focus when in-panel. If Groups or Accounts panel is focused, make TAB switch to other one.

KeepassXC GUI can be essentially seen as special case of OFM (Orthodox File Manager) where left panel is permanently Groups panel and right panel is permanently Accounts panel. In such software TAB key allows to quickly transition from left panel to right and back. I need to stress out that this special case should apply only to focused Groups or Accounts panel. For other UIs TAB key should behave like it normally does.

If //specialcasing// TAB (in described conditions) is a problem, ALT+LEFT/RIGHT key combinations could be used to switch panels instead (when in-panel of course).

Context

I use tiling window manager and keyboard extensively. CLI tools are more suited for such environment, but lot of GUI programs are plenty usable as well. I know there are CLI alternatives for this task, but many times keyboard driven GUI is most efficient worktool, especially in ad-hoc cases.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions