{"id":24092514,"url":"https://github.com/rennerdo30/remapper","last_synced_at":"2026-05-11T13:33:11.907Z","repository":{"id":196016117,"uuid":"279319162","full_name":"rennerdo30/remapper","owner":"rennerdo30","description":"tool to remap an evdev event to a different one","archived":false,"fork":false,"pushed_at":"2020-07-29T08:25:36.000Z","size":189,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-10T07:51:06.586Z","etag":null,"topics":["button","ds4drv","dualshock","dualshock4","evdev","gamepad","gaming","keyboard","linux","mapping","mouse","python","remapping","sc-controller","steam","xbox"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rennerdo30.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-07-13T14:03:28.000Z","updated_at":"2023-11-11T12:31:21.000Z","dependencies_parsed_at":"2023-09-21T02:25:36.209Z","dependency_job_id":null,"html_url":"https://github.com/rennerdo30/remapper","commit_stats":null,"previous_names":["rennerdo30/remapper"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rennerdo30%2Fremapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rennerdo30%2Fremapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rennerdo30%2Fremapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rennerdo30%2Fremapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rennerdo30","download_url":"https://codeload.github.com/rennerdo30/remapper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240993951,"owners_count":19890419,"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":["button","ds4drv","dualshock","dualshock4","evdev","gamepad","gaming","keyboard","linux","mapping","mouse","python","remapping","sc-controller","steam","xbox"],"created_at":"2025-01-10T07:45:16.361Z","updated_at":"2026-05-11T13:33:11.900Z","avatar_url":"https://github.com/rennerdo30.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Remapper\n\n[![CI](https://github.com/rennerdo30/remapper/actions/workflows/main.yml/badge.svg)](https://github.com/rennerdo30/remapper/actions/workflows/main.yml)\n[![License: GPL-3.0](https://img.shields.io/badge/License-GPLv3-blue.svg)](LICENSE)\n\nCross-platform input remapping tool written in Rust.\n\nRemapper lets you map input events from physical devices (keyboard, mouse, gamepad) to virtual output devices, with support for simple remaps, macros, combos, and tap/hold behavior.\n\n## Features\n\n- Simple 1:1 remapping\n- Macro sequences\n- Tap/hold conditional mappings\n- Combo/chord mappings\n- CLI workflow for creating and running profiles\n- GUI built with `iced`\n- JSON configuration with migration support\n\n## Installation\n\n### Build from source\n\n```bash\ngit clone https://github.com/rennerdo30/remapper.git\ncd remapper\ncargo build --release\n```\n\nThe binary will be at `target/release/remapper`.\n\n### Linux runtime requirements\n\n- `libudev`\n- access to `/dev/input/*`\n- access to `/dev/uinput`\n\nOptional udev rules are provided in `udev/99-remapper.rules`.\n\n## Quick Start\n\n```bash\n# List available devices\nremapper list devices\n\n# Create a profile interactively\nremapper create\n\n# Run all enabled profiles\nremapper run\n\n# Launch GUI\nremapper gui\n```\n\nSee all commands:\n\n```bash\nremapper --help\n```\n\n## Configuration\n\nUser configuration is stored in:\n\n- `~/.config/remapper/config.json`\n\nExample fixtures are available in `tests/fixtures/`.\n\n## Development\n\n```bash\n# Typecheck and compile\ncargo check\n\n# Run tests\ncargo test\n```\n\nGitHub Actions runs CI on pushes and pull requests.\n\n## Project Docs\n\n- Contributing guide: [CONTRIBUTING.md](CONTRIBUTING.md)\n- Code of conduct: [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)\n- Security policy: [SECURITY.md](SECURITY.md)\n- Support: [SUPPORT.md](SUPPORT.md)\n- Changelog: [CHANGELOG.md](CHANGELOG.md)\n- Architecture: [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)\n- Releasing: [docs/RELEASING.md](docs/RELEASING.md)\n\n## License\n\nLicensed under GPL-3.0. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frennerdo30%2Fremapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frennerdo30%2Fremapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frennerdo30%2Fremapper/lists"}