LibInputSynth
Synthesize keyboard and mouse input on X11 and Wayland with various backends.
Requirements
Backends (all optional):
- xdotool
- libxi
Run the tests
Run all tests
$ ninja -C build test
Usage
- Include the main header
#include <inputsynth.h>
- Link to the main .so file
libinputsynth-0.8.so
This library contains a pkgconfig file for libinputsynth
.
See the examples for creating an instance and synthesizing input.
Usage in development
libinputsynth loads backend libraries with the system's library search method.
If the build directory of the library is in ./build,
running an example such that it loads a backend from the build directory
rather than e.g. /usr/lib/
, use LD_LIBRARY_PATH
like this
LD_LIBRAY_PATH=$PWD/build/src ./build/examples/inputsynth -b xdo
Input relative to the entire desktop:
// the chosen backend will be dynamically loaded
InputSynth *input = INPUT_SYNTH (input_synth_new (InputsynthBackend_XDO));
// the rest of the code is the same for all backends
input_synth_move_cursor (input, 100, 100);
/* Right click (button 3) press and release */
input_synth_click (input, 100, 100, 3, TRUE);
usleep (5000);
input_synth_click (input, 100, 100, 3, FALSE);
input_synth_char (input, 'h');
input_synth_char (input, 'i');
g_object_unref (input);
Install
sudo ninja -C build install
Running without installing
Set the environment variable LIBINPUTSYNTH_PLUGINDIR
to the path where
libinputsynth_*.so
was built, for example:
LIBINPUTSYNTH_PLUGINDIR=~/libinputsynth/build/src build/examples/inputsynth -b xdo
Code of Conduct
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
We follow the standard freedesktop.org code of conduct, available at https://www.freedesktop.org/wiki/CodeOfConduct/, which is based on the Contributor Covenant.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting:
- First-line project contacts:
- Lubosz Sarnecki lubosz.sarnecki@collabora.com
- Christoph Haag christoph.haag@collabora.com
- freedesktop.org contacts: see most recent list at https://www.freedesktop.org/wiki/CodeOfConduct/