macOS has a variety of apps like Homerow, Shortcat, and KindaVim (watch the videos in those links if u can) that allow for navigation of apps using just the keyboard. Homerow allows for pressing a hotkey and then showing letters over UI elements which can be entered to move the mouse to said element, similar to the Vim easymotion plugin. KindaVim attempts to implement vim modal navigation inside GUI apps, so you can enter normal or visual mode and use j and k to move up or down. They all work using macOS’ accessibility API which exposes UI elements for programmatic interaction.
I did a bunch of searches for Linux equivalent of such apps and Mac’s accessibility API, and didn’t find anything as comprehensive. Can you navigate a wide variety of Linux apps using mostly or only the keyboard (apps made with GTK, Electron, etc.)? Is it currently possible to develop an equivalent of the apps listed above?
I mean, when you hold down the
Alt
key, it’s convention that GUI toolkits underline a letter in the text of UI elements, and when you then pressAlt
+ that letter, it’ll activate that UI element.
That way, you can navigate most apps in a keyboard-driven fashion, although it is certainly not the most comfortable to use…Answering this very question using Tridactyl for Firefox.
It’s not OS-wide but I spend so much time switching from browser to terminal, it might as well be.
https://tridactyl.xyz/build/static/docs/modules/_src_excmds_.html
Also for the keyboard itself I use a Corne-ish Zen, which allows me to use ZMK and thus have my own keymap https://github.com/Utopiah/zmk-config-zen-2/blob/main/config/corneish_zen.keymap
I use KDE which with Super+T brings up tiling options.
Regarding the “API” aspect, a trick I used few times to be able to remote control a desktop in VR is
xdotool
but it’s honestly quite tedious. Without some accessibility solution implemented in apps themselves, I doubt it’s reliable.deleted by creator
I don’t know of any. I do like keyboard based workflows so I have VimiumC in firefox which does what you want. A tiling window manager is the solution for the desktop environment part. The tricky part is navigating existing GUI apps.
They all work using macOS’ accessibility API which exposes UI elements for programmatic interaction.
Because linux doesn’t have a unified framework because of our freedom, things like this are very tricky if not practically infeasible (at least as far as I know).
edit: There was also a thing where you divide up the screen recursively with keyboard shortcuts and when the intersection hovered over whatever you want to click you could hit a key and it would generate a mouseclick there. I forgot the name, never tried it either. But a plus is that it doesn’t need applications to implement a certain API to work so it would work system wide.
I think you may be looking for a programmable keyboard.
With one, you can have arrow keys on the home row like vim, and make other universally recognized keys easy to reach including Home, End, PgUp, PgDn, App (right click), and all the modifiers. Some also build pointing devices into the keyboard as well.
I primarily use the Unicorne by Boardsource.