descriptionA little application to let you control your mouse with your keyboard
ownerJoshua Wise
last changeFri, 20 Jun 2008 19:16:39 +0000 (15:16 -0400)


xvmouse is a useful utility to allow you to control your mouse cursor using your keyboard. Combined with a window manager like ion3, it can allow for an environment that's usable without a physical mouse attached to your computer.


Launch xvmouse from the command line, and background it. It should say something like "grabbing keyboard" if things are going well, and then nothing from then on. To activate xvmouse, hold down Alt and ` (backtick), and optionally release Alt. While ` is held down, xvmouse will still have control over your keyboard; release ` to give control back to your system.

While xvmouse is active, use the keys i, j, k, and l to move the cursor. Hold down ; and double-tap (or triple-tap, or quadruple-tap) any of the movement keys to move the cursor rapidly (I like to call this feature 'tapjumping'). The left, right, and middle buttons are respectively bound to u, o and p; pressing and releasing those keys is equivalent to pressing and releasing their respective buttons on the mouse.

Use case

Use it anywhere where you don't have a mouse easily accessible. On my laptop, I still find the touchpad faster; but at work, where I keep my keyboard in my lap, I use xvmouse exclusively to control my pointing device. (When used on a buckling-spring keyboard, the rapid tapping sounds a lot like playing a video game ...)

Bugs / issues

xvmouse is customized for my needs, so it might not work perfectly for you. In fact, it was designed such that the only customizability is really the source code (which is relatively short). If you can think of something that might make it better, let me know.

xvmouse polls the system for events every small number of milliseconds. This might be fine on a desktop machine, but on a laptop, this might prevent the CPU's power saving from kicking in.

Getting xvmouse

Choose a path from the URL field above; if you have a nyus account, you may wish to choose the git+ssh path, otherwise you will probably want to choose the http path. In a terminal, run git fetch yourpath, where yourpath is the fetch path you chose. Git will make some noise, and eventually produce a folder called xvmouse that contains a fresh checkout of the xvmouse tree.


Patches? Questions? Patches? Comments? Patches? Bug reports? Patches? Gripes? Patches? Send Joshua Wise an e-mail at <joshua at joshuawise dot com>.
2008-06-20 Joshua WiseAdd middle-click with 'p' master
2008-06-20 Joshua Wiseinitial import of xvmouse
8 years ago master
This page took 0.053633 seconds and 7 git commands to generate.