{"id":20788915,"url":"https://github.com/tildearrow/input-modifier","last_synced_at":"2025-05-05T18:44:51.203Z","repository":{"id":45623257,"uuid":"155904522","full_name":"tildearrow/input-modifier","owner":"tildearrow","description":"uinput based key bindings and macros tool for Linux","archived":false,"fork":false,"pushed_at":"2021-12-04T06:35:20.000Z","size":289,"stargazers_count":20,"open_issues_count":4,"forks_count":6,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-30T22:51:13.227Z","etag":null,"topics":["keyboard","linux","uinput"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tildearrow.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}},"created_at":"2018-11-02T18:08:50.000Z","updated_at":"2024-03-28T22:52:46.000Z","dependencies_parsed_at":"2022-08-12T12:00:13.236Z","dependency_job_id":null,"html_url":"https://github.com/tildearrow/input-modifier","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tildearrow%2Finput-modifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tildearrow%2Finput-modifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tildearrow%2Finput-modifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tildearrow%2Finput-modifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tildearrow","download_url":"https://codeload.github.com/tildearrow/input-modifier/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252555605,"owners_count":21767195,"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":["keyboard","linux","uinput"],"created_at":"2024-11-17T15:18:10.358Z","updated_at":"2025-05-05T18:44:51.185Z","avatar_url":"https://github.com/tildearrow.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# input-modifier\n\nuinput based key bindings and macros tool for Linux.\n\nThe purpose of this project is to allow the user to assign actions to keys, which can come in handy if you want to do repetitive actions easily (e.g. tap a key repeatedly by simply holding it or launch a sequence of keys with a single keypress), launch applications using keys, disabling keys you don't want to be pressed by accident, mapping gaming keypads, etc.\n\n**Comparison with Xdotool**\n\nThe advantages over [Xdotool](https://github.com/jordansissel/xdotool) are:\n\n- Interacts with the evdev input layer, which is lower-level than X.\n- Works outside X, e.g. VT or Wayland.\n\nThe disadvantages are:\n\n- You can't directly map a key to closing a window, or something that has to do with X (however, you can execute xdotool from input-modifier).\n\n**Comparison with AutoKey**\n\nThe advantages over [AutoKey](https://github.com/autokey/autokey) are: (although I've never used it)\n\n- Is written in C++, which means less overhead than Python.\n- Allows for doing things like remapping keys (besides executing applications and running macros) without resorting to complex hacks.\n\nThe disadvantages are:\n\n- No GUI yet.\n- Does not allow for DE-specific actions or X11-specific ones (but I am pretty sure it may be possible to use both programs in tandem).\n\n\n# installation\n\n## Arch Linux\n\n[AUR](https://aur.archlinux.org/packages/input-modifier/).\n\n## universal installer\n\ndownload the installer from [here](https://github.com/tildearrow/input-modifier/releases) (select the first element from \"Assets\").\n\nextract release:\n\n```\ntar -xvf \u003cRELEASE\u003e.tar.gz\n```\n\nrun the installer:\n\n```\ncd input-modifier\nsudo ./install\n```\n\nadd yourself to the `input` group if not done previously:\n\n```\nsudo usermod -a -G input $USER\n```\n\nand then re-login.\n\n# running\n\nrun imodd:\n\n```\nimodd\n```\n\n# usage\n\ndocumentation can be found [here](doc/README.md).\n\n# to-do\n\n- X11 integration (per-application profile bind, warping cursor and the like).\n\n- bug fixes.\n\n- proper packages.\n\n- passing environment variables to execute.\n\n- changing the weird devices setting.\n  - I will talk about this later\n\n- ignoring non-input devices such as the Firefly or Polaris.\n\n- fix pressing non-bit-set keys.\n\n- implement binds for relative and switch events.\n\n- add feature here.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftildearrow%2Finput-modifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftildearrow%2Finput-modifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftildearrow%2Finput-modifier/lists"}