{"id":19699246,"url":"https://github.com/riley-martin/gestures","last_synced_at":"2025-04-29T12:31:22.856Z","repository":{"id":63863865,"uuid":"569385889","full_name":"riley-martin/gestures","owner":"riley-martin","description":"Fast touchpad gesture tool","archived":false,"fork":false,"pushed_at":"2024-05-04T15:58:29.000Z","size":1573,"stargazers_count":14,"open_issues_count":0,"forks_count":7,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-08T17:28:57.566Z","etag":null,"topics":["linux","rust","touchpad","touchpad-gestures","touchpadgestures"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/riley-martin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-22T17:53:52.000Z","updated_at":"2024-09-13T20:14:55.000Z","dependencies_parsed_at":"2024-01-18T16:09:32.673Z","dependency_job_id":"cc2ff530-b83f-427b-8b96-4ae58fbdb6e2","html_url":"https://github.com/riley-martin/gestures","commit_stats":{"total_commits":72,"total_committers":2,"mean_commits":36.0,"dds":0.01388888888888884,"last_synced_commit":"f3311d26dc7fcc83c164448960515a8b194cec00"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riley-martin%2Fgestures","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riley-martin%2Fgestures/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riley-martin%2Fgestures/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riley-martin%2Fgestures/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/riley-martin","download_url":"https://codeload.github.com/riley-martin/gestures/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224036258,"owners_count":17245035,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linux","rust","touchpad","touchpad-gestures","touchpadgestures"],"created_at":"2024-11-11T20:01:59.865Z","updated_at":"2024-11-11T20:02:00.584Z","avatar_url":"https://github.com/riley-martin.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gestures\n[![crates.io](https://img.shields.io/crates/v/gestures.svg)](https://crates.io/crates/gestures)\n[![dependency status](https://deps.rs/repo/github/riley-martin/gestures/status.svg)](https://deps.rs/repo/github/riley-martin/gestures)\n## About\nThis is a program for intercepting touchpad gestures and executing commands based on them.\nUnlike some alternatives, it directly uses the libinput api rather than parsing the output\nof `libinput debug-events`.\n\n## Features\n`gestures` is able to handle libinput swipe events; not only vertical and horizontal but diagonal\nas well.\n- [x] Handle libinput events\n  - [x] Swipe events; vertical, horizontal and diagonal\n  - [x] Pinch events\n  - [x] Hold events\n  - [x] Rotate events\n  - [x] Continuous and one-shot events\n- [x] Config file\n\n## Configuration\nSee [config.md](./config.md) for configuration instructions.\n\n## Installation\n### Platforms\nLinux. The testing workflow runs on Ubuntu and I test it myself on ~~Artix Linux~~ Nixos, but it should work on any distro if it uses the\n`libinput` touchpad driver rather than the older `synaptics` driver.  \nNote: If your DE/WM has its own touchpad gestures system, it may need to be disabled to\nprevent conflicts.\n### Nix\nIf you are using flakes, simply add `gestures.url = \"github:riley-martin/gestures\";` to your flake inputs\nand add `inputs.gestures.packages.${system}.gestures` to your `home.packages` or `environment.systemPackages`. You can also create a service in\n`systemd.user.services`.\n\n### Dependencies\nYou may need to install `libudev` and `libinput`, or their equivalant for your distro, and possibly the `dev` versions as well.\n\n### With Cargo\nIf you have cargo installed, simply use `cargo install gestures`\n\n### Manual installation\n- Clone the repo\n  - `git clone https://github.com/riley-martin/gestures \u0026\u0026 cd gestures`\n\n- Build\n  - `cargo build --release`\n\n- Copy `./target/release/gestures` to a convenient place and execute it\n\n### Autostart\n#### Compositor/WM\nYou can start `gestures` in your `.xinitrc` or other startup files (like sway config file, for example)\n\n#### Systemd\nDrop [examples/gestures.service](./examples/gestures.service) into `~/.config/systemd/user/gestures.service`\nand modify it for your system (mainly the \"$HOME\" environment variable and the `ExecStart` will need changed).\nTo have it start automatically, run `systemctl --user enable --now gestures.service`.\n\n#### Other init systems\nI haven't used any other init systems, but the service is quite simple so it should be easy to modify\nfor other systems.\n\n## Alternatives\nHere are some alternatives with similar features.\n\n- [libinput-gestures](https://github.com/bulletmark/libinput-gestures)\nParses output of `libinput debug-events` rather than using libinput api.\n- [gebaar](https://github.com/Coffee2CodeNL/gebaar-libinput)\nOnly supports swipe gestures\n- [gebaar-libinput-fork](https://github.com/osleg/gebaar-libinput-fork)\nFork of gebaar which supports other gestures\n- [fusuma](https://github.com/iberianpig/fusuma)\nAlso parses `libinput debug-events` output\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friley-martin%2Fgestures","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Friley-martin%2Fgestures","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friley-martin%2Fgestures/lists"}