A small X program which provides a modal keyboard driven interface for cursor manipulation. The program was originally inspired by the mousekeys feature of Kaleidoscope, the firmware for the Keyboardio.
The usual array of X libraries:
- libxi
- libxinerama
- libxft
- libxfixes
- libxtst
- libx11
- The standard Xcode command line developer tools.
Make sure you have the appropriate dependencies for your system:
E.G
debian/ubuntu:
sudo apt-get install \
libxi-dev \
libxinerama-dev \
libxft-dev \
libxfixes-dev \
libxtst-dev \
libx11-dev
macos:
xcode-select --install
Then simply do:
make && sudo make install
- Run
warpd
- Press
A-M-x
(alt+meta+x
) to generate a list of hints - Enter the key sequence associated with the desired target to warp the pointer to that location and enter normal mode.
- Use the normal mode movement keys to select the final desination (see Normal Mode).
- Press
A-M-g
(meta is the command key) to activate the warping process. - Use
u
,i
,j
,k
to repeatedly navigate to different quadrants. - Press
m
to left click,,
to middle click or.
to right click. - See Normal Mode
- Press
A-M-c
to activate normal mode. - Use the normal movement keys (default
hjkl
) to adjust the cursor. - Press
m
to left click,,
to middle click or.
to right click. - Press
escape
to quit.
A drag movement can be simulated from any of the above modes by focusing on the
source and then pressing the drag_key
(default v
) which will cause normal
mode to be activated for selection of the drag target.
A more comprehensive description can be found in the man page (along with a list of options).
warpd
is currently available on the following distributions:
Available as an AUR package (maintained by Matheus Fillipe).
If you are interesting in adding warpd to your distribution's repository please contact me.
-
No multi monitor support (it may still work by treating the entire display as one giant screen, I haven't tried this). If you use this program and desire this feature feel free to harass me via email or file an issue.
-
Programs which use Xinput and or Xtest for keyboard may not work correctly (e.g synergy). If a specific program which you feel should be working does not please file an issue.
-
This was a small one off c file that ballooned into a small project, I did not originally plan to publish it. Consequently the code is ugly/will eat your face. You have been warned.
A special thanks to
- Pete Fein - For encouragement and early adoption.
- Matheus Fillipe - For the original border radius patch as well as numerous bug reports and feature requests.
- The Kaleidoscope/Vimperator projects - For inspiration.