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.
-
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. -
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. -
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 ofEditor
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).