A modal keyboard driven interface for mouse manipulation.
The usual array of X libraries:
- libxi
- libxinerama
- libxft
- libxfixes
- libxtst
- libx11
- libwayland-client
- cairo
- xkbcommon
Note: The wayland port has several limitations due to the nature of Wayland's architecture.
See the CAVEATS section of the man page for more details.
- The standard Xcode command line developer tools.
Make sure you have the appropriate dependencies for your system:
E.G
debian/ubuntu (X):
sudo apt-get install \
libxi-dev \
libxinerama-dev \
libxft-dev \
libxfixes-dev \
libxtst-dev \
libx11-dev
debian/ubuntu (Wayland):
sudo apt-get install \
libcairo2-dev \
libxkbcommon-dev \
libwayland-dev
macos:
xcode-select --install
Note: Some programs (e.g iTerm) have a 'secure input mode' that may need to be disabled in order for warpd to work properly.
Then simply do:
make && sudo make install
or (for wayland)
PLATFORM=wayland 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).
Note: Wayland does not permit clients to globally bind hotkeys. These must be bound within the compositor using warpd's oneshot flags.
E.G
On sway:
bindsym Mod4+Mod1+x exec warpd --hint
bindsym Mod4+Mod1+c exec warpd --normal
bindsym Mod4+Mod1+g exec warpd --grid
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.
-
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.
-
The hack used for pointer hiding on OSX doesn't work on some programs (e.g iTerm). The original cursor will consequently be visible in such cases, though functionality should be otherwise unaffected.
-
Wayland support has several limitations (see CAVEATS in the man page).
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.
- Drew Devault - For making the Wayland ecosystem inhabitable.