3 ms·
I wanted to build something like this but for Linux, especially the vimium-like hints that would work in any app. I even made a prototype by abusing the AT-SPI2
by kqbx 3y ago
I wanted to build something like this but for Linux, especially the vimium-like hints that would work in any app. I even made a prototype by abusing the AT-SPI2 accessibility API. Unfortunately, querying AT-SPI2 for all buttons takes too long in complex apps. And even if it was fast, many apps (especially non-GTK ones) implement accessibility poorly or don't implement it at all, so I abandoned the project.
I guess it would be possible to make a framework specific implementation, for example by replacing the GTK shared library with a modified version, but that's too much effort and I lost interest in the whole 'mouseless' thing anyway.
- ossusermivami 3y agoat least for the terminal, I use kitty which has a "hint" mode https://sw.kovidgoyal.net/kitty/kittens/hints/ https://sw.kovidgoyal.net/kitty/kittens/hints/ I use this with emacs and avy + firefox and vimium and don't need it anywhere else (works across OS too)
- phil294 3y agoI have built this here https://github.com/phil294/vimium-everywhere https://github.com/phil294/vimium-everywhere, and it works okay-ish performance-wise. For example, generating the click hints on this thread on Firefox takes (including FF's UI elements) takes one second, perhaps less on a fast machine. I use it on a daily basis. It needed a lot of optimizations to get to that point though. There are also a few alternatives listed. And almost all applications support at-spi once you set some env vars! Including electron apps etc., see the readme
- broscillator 3y agoThe thing about linux is that ime you can just implement this individually across all (most) the apps I use. I have vim-like binds for mpv, my pdf reader, terminal emulator/terminal file manager, image viewer, and of course my window manager. The ones where I don't are the ones where it would be too complex to be taken care of by an external app. A DAW would need its own core implementation of modes for example, same with something like Krita and in that case it would probably not even be advisable.