{"id":51131627,"url":"https://github.com/jasperdevs/skate-kbm","last_synced_at":"2026-06-25T13:01:22.243Z","repository":{"id":354816254,"uuid":"1225328598","full_name":"jasperdevs/skate-kbm","owner":"jasperdevs","description":"Keyboard and mouse to virtual Xbox controller mapper for skate.","archived":false,"fork":false,"pushed_at":"2026-04-30T08:53:09.000Z","size":64,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-30T09:22:40.827Z","etag":null,"topics":["bun","keyboard-mouse","opentui","skate","virtual-controller","windows","xbox-controller"],"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/jasperdevs.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-30T07:07:58.000Z","updated_at":"2026-04-30T08:53:14.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jasperdevs/skate-kbm","commit_stats":null,"previous_names":["jasperdevs/skate-kbm"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/jasperdevs/skate-kbm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasperdevs%2Fskate-kbm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasperdevs%2Fskate-kbm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasperdevs%2Fskate-kbm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasperdevs%2Fskate-kbm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jasperdevs","download_url":"https://codeload.github.com/jasperdevs/skate-kbm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasperdevs%2Fskate-kbm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34775937,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-25T02:00:05.521Z","response_time":101,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["bun","keyboard-mouse","opentui","skate","virtual-controller","windows","xbox-controller"],"created_at":"2026-06-25T13:01:13.093Z","updated_at":"2026-06-25T13:01:22.145Z","avatar_url":"https://github.com/jasperdevs.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e🛹 skate-kbm\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003eKeyboard and mouse to virtual Xbox 360 controller mapper for Windows games.\u003c/p\u003e\n\nThis is a plain terminal CLI. It does not use a full-screen TUI or any non-Node JavaScript runtime.\n\n## Install\n\nInstall globally with npm:\n\n```powershell\nnpm install -g skate-kbm\nskate-kbm\n```\n\nInstall adds the `skate-kbm` command and the native mapper binary.\n\nRequirements:\n\n- Windows 10 or 11\n- [Node.js](https://nodejs.org/) 20 or newer\n- [ViGEmBus](https://github.com/nefarius/ViGEmBus/releases) driver\n\nWindows needs a signed virtual controller driver before games can see a fake Xbox controller. If the app says it cannot connect, install the driver from the source repo with `npm run driver`, or install ViGEmBus manually from its release page.\n\n## Use\n\n```powershell\nskate-kbm\n```\n\nKeep the terminal open, then launch your game. Press `Ctrl+Alt+M` to toggle cursor lock if the game needs it. Press `Ctrl+C` in the terminal or `Ctrl+Alt+Backspace` anywhere to stop the mapper.\n\nThe command prints normal terminal output only. It should not switch screens, clear your terminal, or close the terminal window.\n\nTo change mouse sensitivity:\n\n```powershell\nskate-kbm --mouse-sensitivity 300\n```\n\nBy default, the mapper uses Windows Raw Input for mouse movement and leaves the visible cursor alone. Cursor lock is an explicit toggle, not tied to mouse buttons.\n\nCursor lock modes:\n\n```powershell\nskate-kbm --cursor-lock toggle\nskate-kbm --cursor-lock always\nskate-kbm --cursor-lock off\n```\n\nIf raw input is unavailable, it falls back to cursor capture. To test without hiding or recentering the cursor:\n\n```powershell\nskate-kbm --no-mouse-capture\n```\n\nTo print live input diagnostics:\n\n```powershell\nskate-kbm --debug\n```\n\n## Build from source\n\n\u003cdetails\u003e\n\u003csummary\u003eDeveloper setup\u003c/summary\u003e\n\nDevelopers also need [Rust](https://www.rust-lang.org/tools/install) to rebuild the native Windows mapper.\n\n```powershell\nnpm install\nnpm run build\nnpm run driver\nnpm start\n```\n\n`npm run build` compiles the Rust mapper and copies it to `dist/app/mapper/skate-kbm-mapper.exe`, which is the binary shipped in the npm package.\n\n\u003c/details\u003e\n\n## Controls\n\n| Input | Controller output |\n| --- | --- |\n| `WASD` | Left stick |\n| Mouse | Right stick |\n| `Shift` or `Space` | `A` |\n| `C` | `B` |\n| `E` | `X` |\n| `R` | `Y` |\n| `Q` | Left bumper |\n| `F` | Right bumper |\n| `V` | Right stick click |\n| Left click | Right trigger |\n| Right click | Left trigger |\n| Arrow keys | D-pad |\n| `Tab` | Back |\n| `Enter` | Start |\n\n\u003cdetails\u003e\n\u003csummary\u003eNotes\u003c/summary\u003e\n\n- The npm package has no JavaScript runtime dependencies.\n- The app uses a plain Node.js CLI wrapper and a Rust Windows mapper process for keyboard, mouse, and virtual controller output.\n- The game still sees a controller, not native keyboard and mouse.\n- ViGEmBus is required because Windows needs a driver to expose the virtual Xbox controller.\n- ViGEmBus is archived, so it is treated as the current compatibility backend rather than a forever dependency.\n\n\u003c/details\u003e\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasperdevs%2Fskate-kbm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjasperdevs%2Fskate-kbm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasperdevs%2Fskate-kbm/lists"}