Keyboard UX improvements

So far, Anki does not have a great UX when using mostly keyboard (it’s not terrible, far from that, but most of other tools I use everyday have a better keyboard integration). Thereby I’m making this discussion thread, where ideas to improve the keyboard UX can be made.
Keep in mind that most of these improvements could be added as toggle options, instead of the default behavior, so what is important is “can it help some users”, not “does it fit most users”.

These are some, to start with.

  1. Hiding the mouse when typing, or during studying.
    Most of the time, you don’t need the mouse when studying, since there are shortcuts for the most used buttons. However, it is pretty hard to reach a deck button without mouse (see 2.), which means most of the time you end up with the mouse in the middle of the screen for the whole studying session, unless you take the time to move it aside. It would be better if it behaved like with fullscreen videos, meaning that unless you move it, it is hidden.
  2. Navigating through the menus without the mouse.
    This is possible in some menus, but not in the most important one: the deck menus. It’s literaly the menu you see every time you want to start studying, and you can’t avoid using the mouse except by pressing [tab] a thousand times.
  3. Offering tool-like shortcuts.
    There are some programs that really shine for their keyboard UX, and once you have worked with them you start feeling every other program is painful to work with. Some examples are, of course, vim and emacs. Not every user will like their approach, but nonetheless I feel it would be absolutely great to have emacs-like or vim-like shortcuts everywhere in Anki (especially since Anki has several mini-editors integrated, it would be nice to have a single shortcut collection to rule them all).
    You might wonder what does it mean to have, for example, emacs-like shortcuts, since most of the default emacs shortcuts are known to be badly chosen. First, it means that a shortcut is no longer a key stroke, but a key chord, ie. a single shortcut could be [Ctrl-l Alt-m p]. This is a fantastic idea, since it allows putting the rarely used shortcuts on long but mnemonic keychords (ie. you spell the initials of what you want to do, for example), and using the shortest one for the commonly used shortcuts, so that you start remembering the shortcuts but barely use (you don’t have to search them through the doc every time) and you fasten the others. However, I would like to point out this is already the case, for the [Ctrl-m m] shortcut for example, so it’s not really an improvement since it’s already Anki’s behavior. An other major change would be how selection work. In emacs, you toggle selection by pressing [Ctrl-space], then you can move freely without having to hold [shift].
    I could imagine something like, in the options, several choices for keyboard shortcuts “behavior” (ie. default, vim-like, emacs-like, …), which would affect every time you have to edit text. Then, you could also have some kind of Editor class in python (or something like that) that takes care of shortcuts and everything, and every input field would subclass that class. This would allow add-ons to quickly create an editor that already has all the shortcuts the user is used to without complications. Overall, this would be the greatest UX improvement, IMO (which is why it’s ten times longer than others).
1 Like

You can jump to a specific deck with the ‘/’ key.

1 Like

Thanks for the tip, I didn’t know. Is there a list to all the shortcuts that are not written when you hover the button?

Also, it’s quite tedious to open a menu to be able to navigate through the same menu. IMHO, something like this would be more practical:

You have the menu

Deck                            New         Due
 Some strange deck              24          44
 An other deck                  0           0
 A third deck                   14          1303

You press [/] (or whatever), and you see something like

Deck                            New         Due
(a) Some strange deck           24          44
(b) An other deck               0           0
(c) A third deck                14          1303

where the letters could be of an other color instead of being within parentheses. Then you press [b], and it opens the menu of An other deck.

This could be applied to many other menus (instead of having a selectable list of items, where you press [Up] or [Down] the right number of times), for example in the browser.

Also, an other suggestion would be to underline the letter in the label of a button that triggers this button, like in the menu bar. For instance, for the “Sync” button, underline the “y” so you don’t have to use the mouse and hover it to know what’s the shortcut.

Ideally, Anki would be usable without ever touching the mouse (at least, that’s the spirit when designing the keyboard UX IMO).

The action and its associated shortcut is in the Tools menu, and it doesn’t augment the decks list because it can be used from the study screen as well.

Hiding the mouse cursor while studying would be a greatly appreciated feature for me, I find the mouse cursor totally disturbing and because of that constantly move it to the right side until it’s no longer visible.

It could work like so, when a study key (Space, 1, 2, 3, 4) is pressed, the mouse cursor hides until a mouse move happens, or the study window loses focus.