https://github.com/diego-plan9/lillinput
Connect libinput gestures to i3 and others
https://github.com/diego-plan9/lillinput
gestures i3 libinput rust x11
Last synced: 5 months ago
JSON representation
Connect libinput gestures to i3 and others
- Host: GitHub
- URL: https://github.com/diego-plan9/lillinput
- Owner: diego-plan9
- License: bsd-3-clause
- Created: 2021-07-17T19:16:46.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-08-31T16:49:55.000Z (over 2 years ago)
- Last Synced: 2025-09-18T11:28:20.947Z (6 months ago)
- Topics: gestures, i3, libinput, rust, x11
- Language: Rust
- Homepage:
- Size: 217 KB
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# `lillinput`
[![license]](LICENSE)
[![build status]](https://github.com/diego-plan9/lillinput/actions/workflows/default.yml)
## About

`lillinput` is a small utility written in Rust for connecting [`libinput`]
gestures into:
* commands for the [`i3`] tiling window manager `IPC` interface
* shell commands
Since version `0.3.0`, the project is split into two crates:
### Command-line application
[![crates.io cli]](https://crates.io/crates/lillinput-cli)
> `lillinput-cli`: the command line application.
#### Example usage
```bash
$ lillinput -e i3 -e command --three-finger-swipe-up "i3:workspace next" --three-finger-swipe-down "command:touch /tmp/myfile"
```
For the documentation related to the command-line application, please check the
[README.md for the `lillinput-cli` crate].
### Library
[![crates.io lib]](https://crates.io/crates/lillinput)
[![docs.rs lib]](https://docs.rs/lillinput)
> `lillinput`: the library providing the building blocks.
For the documentation related to the library, please check the
[README.md for the `lillinput` crate].
## Project status
Please be aware that this project is in beta, and was started for scratching
a specific itch - allowing three-finger swipe for changing between workspaces
in `i3` under a custom setup. It aims to stay small (hence the project [name]
and its "three-fingers-captured-by-fierce-tiny-island-inhabitants" [logo], a
homage to [Gulliver's Travels]) and biased towards custom needs (and a bit of a
personal Rust playground).
## Compiling
### Dependencies
The following system-level libraries are required by this crate dependencies:
```
sudo aptitude install libudev-dev libinput-dev
```
## Related projects
This crate relies heavily on the wonderful work on the [`input`] and [`i3ipc`]
crates (among others) - kudos to their maintainers for making them available.
Outside rust, the following projects provide a more complete solution for using
`libinput` gestures:
* [`libinput-gestures`]
* [`fusuma`]
* [`geebar-libinput`]
## Contributing
Any contribution is welcome, please issue or PR away! Please refer to the
[CONTRIBUTING.md] document for more details.
## License
This project is licensed under [BSD-3-Clause].
[BSD-3-Clause]: LICENSE
[`i3`]: https://i3wm.org/
[`libinput`]: https://www.freedesktop.org/wiki/Software/libinput/
[README.md for the `lillinput-cli` crate]: crates/lillinput-cli
[README.md for the `lillinput` crate]: crates/lillinput
[CONTRIBUTING.md]: CONTRIBUTING.md
[`i3ipc`]: https://github.com/tmerr/i3ipc-rs
[`input`]: https://github.com/Smithay/input.rs
[Gulliver's Travels]: https://en.wikipedia.org/wiki/Gulliver%27s_Travels
[name]: https://en.wikipedia.org/wiki/Lilliput_and_Blefuscu
[logo]: doc/assets/logo.svg
[`libinput-gestures`]: https://github.com/bulletmark/libinput-gestures
[`fusuma`]: https://github.com/iberianpig/fusuma
[`geebar-libinput`]: https://github.com/Coffee2CodeNL/gebaar-libinput
[crates.io cli]: https://img.shields.io/crates/v/lillinput-cli
[crates.io lib]: https://img.shields.io/crates/v/lillinput
[license]: https://img.shields.io/crates/l/lillinput
[build status]: https://github.com/diego-plan9/lillinput/actions/workflows/default.yml/badge.svg
[docs.rs lib]: https://img.shields.io/docsrs/lillinput