Navimgate is like vimium's hint mode, but for all apps supporting accessibility via AT-SPI, not just the web browser. This includes GTK, Electron and some QT apps.
Press Ctrl+Alt+H (this will likely change) to trigger hint mode. Then enter the sequence corresponding to the button you want to press. Pressing any other button will exit hint mode.
(TODO: make a proper python package)
Tested on Arch Linux. This needs the following packages from main repo:
gtk3
python-gobject
python-cairo
python-atspi
as well as the pynput
package (available on pypi and AUR).
In the future the pynput
dependency will be removed, but it is now used as a workaround (see Known Issues).
Not all apps expose the accessibility interface by default. If your app doesn't show any accessible buttons try the following command:
gsettings set org.gnome.desktop.interface toolkit-accessibility true
Set the environment variable ACCESSIBILITY_ENABLED=1
and run the app with --force-renderer-accessibility
.
- Querying all the buttons' positions is slow and the latency can be very annoying, making the program borderline unusable with complex interfaces. The python AT-SPI library is supposed to do caching, but apparently that is not enough.
- I'm not able to get the AT-SPI key listener to work in QT apps, so pynput is used as a workaround. (This should be possible because it somehow works in Orca)