114f109a — Brian Cole 4 years ago
fix test line
0909ec4a — Brian Cole 4 years ago
add debian_stable build target
fde2d008 — Brian Cole 4 years ago
trivial test: does the keynav binary execute?


browse  log 



You can also use your local clone with git send-email.


Control the mouse with the keyboard.

Please see http://www.semicomplete.com/projects/keynav


You may need some extra libraries to compile keynav. See the table in the next section for known dependencies.

Next you simply run make:


This will produce an executable ./keynav which may be run directly (or copied somewhere in your path). You can also install (by default directly to /usr) via make install.

On FreeBSD (and, I expect, other non-GNU platforms), you will want to use gmake.


OS Dependencies Notes
Alpine Linux cairo-dev libxinerama-dev xdotool-dev libxrandr-dev musl-dev
Debian, Ubuntu libcairo2-dev libxinerama-dev libxdo-dev libxrandr-dev
NetBSD xdotool Use gmake
openSUSE Leap/Tumbleweed cairo-devel libXinerama-devel xdotool-devel libXrandr-devel glib2-devel
RHEL/CentOS 7 cairo-devel libXinerama-devel libxdo-devel libXrandr-devel glib2-devel Requires EPEL

Listed dependencies are in addition to GNU make and a C compiler.


Q: What platforms are supported?
A: keynav should work on nearly any Unix-like that runs X11. It has been confirmed to work on extremely varied GNU/Linux systems (incuding RPM-based, Debian derivatives, musl-based systems, and Arch), and FreeBSD. If you get it to run elsewhere, please let me know so I can add it to the list. If you try to run it on another Unix-like and have trouble, please get in touch and I'll try to help. If attempting to run elsewhere, note that we currently have a dependency on GNU Make (gmake), and it hasn't been tested with many compilers yet.

Q: Does it work on Android/Windows/Wayland/iOS/...?
A: Sadly, no; keynav is totally dependent on X11, and porting it to any other graphical system would really be a clone/rewrite. Although I am aware of no exact analogues on other systems, I suggest looking into Tasker (Android), AutoHotKey (Windows), and AppleScript (macOS). If you find something that works, let me know and I'll consider adding it to this list.

Q: Can I use keynav to scroll?
A: Yes! X11 represents mouse scrolling as key presses, so you just add the relevant stanza to your keynavrc. Mouse buttons are 1=left, 2=middle, 3=right, 4=scroll-up, 5=scroll-down, 6=scroll-left, 7=scroll-right. So for example to scroll up with i and down with e:

i click 4,end
e click 5,end

or to keep scrolling without having to re-invoke keynav, remove the end command from the bindings, like this:

i click 4