this post was submitted on 09 Nov 2024
37 points (95.1% liked)

Linux

48446 readers
625 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

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?

all 5 comments
sorted by: hot top controversial new old
[–] [email protected] 5 points 3 weeks ago

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 press Alt + 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...

[–] [email protected] 3 points 3 weeks ago* (last edited 3 weeks ago) (1 children)

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.

[–] markstos 2 points 3 weeks ago

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.

[–] CsXGF8uzUAOh6fqV 2 points 3 weeks ago* (last edited 3 weeks ago)

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.