{"id":13546665,"url":"https://github.com/rvaiya/warpd","last_synced_at":"2025-05-14T22:08:28.059Z","repository":{"id":37411208,"uuid":"210099248","full_name":"rvaiya/warpd","owner":"rvaiya","description":"A modal keyboard-driven virtual pointer","archived":false,"fork":false,"pushed_at":"2024-07-12T05:06:33.000Z","size":11102,"stargazers_count":3166,"open_issues_count":87,"forks_count":149,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-04-11T10:16:59.820Z","etag":null,"topics":["c","keyboard","macos","mouse","pointer","vi","vim","x","x11","x11-cursor","xorg"],"latest_commit_sha":null,"homepage":"","language":"C","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/rvaiya.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2019-09-22T06:08:17.000Z","updated_at":"2025-04-11T07:15:27.000Z","dependencies_parsed_at":"2024-01-13T14:37:19.773Z","dependency_job_id":"9ba7aa78-7895-48e7-94b0-9295601a1953","html_url":"https://github.com/rvaiya/warpd","commit_stats":{"total_commits":265,"total_committers":16,"mean_commits":16.5625,"dds":0.07547169811320753,"last_synced_commit":"01650eabf70846deed057a77ada3c0bbb6d97d6e"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rvaiya%2Fwarpd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rvaiya%2Fwarpd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rvaiya%2Fwarpd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rvaiya%2Fwarpd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rvaiya","download_url":"https://codeload.github.com/rvaiya/warpd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254235698,"owners_count":22036963,"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":["c","keyboard","macos","mouse","pointer","vi","vim","x","x11","x11-cursor","xorg"],"created_at":"2024-08-01T12:00:42.375Z","updated_at":"2025-05-14T22:08:23.037Z","avatar_url":"https://github.com/rvaiya.png","language":"C","funding_links":[],"categories":["C","Keyboard","System-wide"],"sub_categories":[],"readme":"# What\n\nA modal keyboard driven interface for mouse manipulation.\n\n# Demo\n\n## Hint Mode `Alt-Meta-x`\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"demo/hints.gif\" height=\"400px\"/\u003e\n\u003c/p\u003e\n\n## Grid Mode `Alt-Meta-g`\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"demo/warp.gif\" height=\"400px\"/\u003e\n\u003c/p\u003e\n\n## Normal Mode `Alt-Meta-c`\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"demo/discrete.gif\" height=\"400px\"/\u003e\n\u003cimg src=\"demo/discrete2.gif\" height=\"400px\" width=\"711px\"/\u003e\n\u003c/p\u003e\n\n\n# Dependencies\n\n## X\n\nThe usual array of X libraries:\n\n - libxi\n - libxinerama\n - libxft\n - libxfixes\n - libxtst\n - libx11\n\n## Wayland (sway/wlroots only (**no gnome support**))\n\n - libwayland-client\n - cairo\n - xkbcommon\n\n*Note:* The wayland port has several limitations due\nto the nature of Wayland's architecture.\n\nSee the LIMITATIONS section of the man page for more details.\n\n## MacOS:\n\n - The standard Xcode command line developer tools.\n\n# Installation\n\nMake sure you have the appropriate dependencies for your system:\n\nE.g\n\n## debian/ubuntu:\n\n```\ngit clone https://github.com/rvaiya/warpd.git\ncd warpd\nsudo apt-get install \\\n\tlibxi-dev \\\n\tlibxinerama-dev \\\n\tlibxft-dev \\\n\tlibxfixes-dev \\\n\tlibxtst-dev \\\n\tlibx11-dev \\\n\tlibcairo2-dev \\\n\tlibxkbcommon-dev \\\n\tlibwayland-dev \u0026\u0026\nmake \u0026\u0026 sudo make install\n```\n\nBy default warpd will build a single binary for both X and wayland. An X or\nWayland only binary can be generated by setting either `DISABLE_WAYLAND` or\n`DISABLE_X` at compile time.\n\n## macos:\n\n```\ncurl -L https://github.com/rvaiya/warpd/releases/download/v1.3.5/warpd-1.3.5-osx.tar.gz |  sudo tar xzvfC - / \u0026\u0026 launchctl load /Library/LaunchAgents/com.warpd.warpd.plist\n```\n\nUninstallation:\n\n```\nsudo rm /usr/local/bin/warpd /usr/local/share/man/man1/warpd.1.gz /Library/LaunchAgents/com.warpd.warpd.plist\n```\n\nor (from source)\n\n```\n# Install the xcode command line tools if you\n# don't already have them.\nxcode-select --install\n\nmake \u0026\u0026 sudo make install \u0026\u0026 launchctl load /Library/LaunchAgents/com.warpd.warpd.plist\n```\n\nUninstallation:\n\n```\nsudo make uninstall\n```\n\n*Note:* On initialization you may be prompted to add the warpd binary to your\naccessibility settings. **If you are upgrading it may also be necessary to run\n`sudo tccutil reset Accessibility` (this will remove all applications\nfrom your accessibility settings)**. The service is now also managed by a\nlaunchd service (see below) and should not be explicitly started by the\nuser.\n\n*Note 2:* Some programs (e.g iTerm) have a 'secure input mode' that may need to be\ndisabled in order for warpd to work properly.\n\nThe service can be disabled with\n\n```\nlaunchctl unload /Library/LaunchAgents/com.warpd.warpd.plist\n```\n\n# Quickstart\n\n1. Run `warpd`\n\n## Hint Mode\n2. Press `A-M-x` (`alt+meta+x`) to generate a list of hints\n3. Enter the key sequence associated with the desired target to warp the pointer to that location and enter normal mode.\n4. Use the normal mode movement keys to select the final desination (see Normal Mode).\n\n## Grid Mode\n2. Press `A-M-g` (meta is the command key) to activate the warping process.\n3. Use `u`,`i`,`j`,`k` to repeatedly navigate to different quadrants.\n4. Press `m` to left click, `,` to middle click or `.` to right click.\n5. See Normal Mode\n\n## Normal Mode\n2. Press `A-M-c` to activate normal mode.\n3. Use the normal movement keys (default `hjkl`) to adjust the cursor.\n4. Press `m` to left click, `,` to middle click or `.` to right click.\n5. Press `escape` to quit.\n\nA drag movement can be simulated from any of the above modes by focusing on the\nsource and then pressing the `drag_key` (default `v`) which will cause normal\nmode to be activated for selection of the drag target.\n\nA more comprehensive description can be found in the [man page](warpd.1.md) (along with a list of options).\n\n## Wayland\n\n*Note:* Wayland does not permit clients to globally bind hotkeys. These must be\nbound within the compositor using warpd's oneshot flags.\n\nE.g\n\n**On sway**:\n\n```\n# warpd hotkeys\n\nbindsym Mod4+Mod1+x exec warpd --hint\nbindsym Mod4+Mod1+c exec warpd --normal\nbindsym Mod4+Mod1+g exec warpd --grid\n```\n\n**Using sxhkd**:\n\n```\n# warpd hotkeys\n\nAlt + super + x\n  exec warpd --hint\n\nAlt + super + c\n  warpd --normal\n\nAlt + super + g\n  warpd --grid\n```\n\n# Packages:\n\n`warpd` is currently available on the following distributions:\n\n## Arch\n\nAvailable in the [AUR](https://aur.archlinux.org/): [warpd](https://aur.archlinux.org/packages/warpd/), [warpd-wayland](https://aur.archlinux.org/packages/warpd-wayland), [warpd-git](https://aur.archlinux.org/packages/warpd-git) maintained by Matheus Fillipe.\n\nIf you are interesting in adding warpd to your distribution's repository please contact me.\n\n# Limitations/Bugs\n\n- Programs which use Xinput and or Xtest for keyboard may not work correctly\n  (e.g synergy). If a specific program which you feel should be working does\n  not please file an [issue](https://github.com/rvaiya/warpd/issues).\n\n- The hack used for pointer hiding on OSX doesn't work on some programs (e.g\n  iTerm). The original cursor will consequently be visible in such cases,\n  though functionality should be otherwise unaffected.\n\n- Wayland support has several limitations (see CAVEATS in the man page).\n\n# Contributions\n\nA special thanks to\n\n - Pete Fein - For encouragement and early adoption.\n - Matheus Fillipe - For the original border radius patch as well as numerous bug reports and feature requests.\n - The Kaleidoscope/Vimperator projects - For inspiration.\n - Drew Devault - For making the Wayland ecosystem inhabitable.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frvaiya%2Fwarpd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frvaiya%2Fwarpd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frvaiya%2Fwarpd/lists"}