{"id":15047030,"url":"https://github.com/developermindset-com/tauri-plugin-gamepad","last_synced_at":"2025-10-29T22:31:20.117Z","repository":{"id":212347917,"uuid":"731281040","full_name":"DeveloperMindset-com/tauri-plugin-gamepad","owner":"DeveloperMindset-com","description":"A plugin for Tauri that provides a polyfill for Gamepad Web API that works on most common platforms.","archived":false,"fork":false,"pushed_at":"2024-08-20T18:16:34.000Z","size":1086,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-21T09:15:29.620Z","etag":null,"topics":["api","gamepad","gilrs","joystick","polyfill","rust","tauri"],"latest_commit_sha":null,"homepage":"https://developermindset.com/tauri-plugin-gamepad/","language":"JavaScript","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/DeveloperMindset-com.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}},"created_at":"2023-12-13T18:20:31.000Z","updated_at":"2024-08-20T18:16:36.000Z","dependencies_parsed_at":"2024-01-01T10:33:52.651Z","dependency_job_id":"81a47fa4-4821-4752-ae9d-5d8c38bbda75","html_url":"https://github.com/DeveloperMindset-com/tauri-plugin-gamepad","commit_stats":{"total_commits":26,"total_committers":2,"mean_commits":13.0,"dds":"0.038461538461538436","last_synced_commit":"791ceae7935039c86f54135a513654a2ebf15f80"},"previous_names":["eugenehp/tauri-plugin-gamepad","developermindset-com/tauri-plugin-gamepad"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeveloperMindset-com%2Ftauri-plugin-gamepad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeveloperMindset-com%2Ftauri-plugin-gamepad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeveloperMindset-com%2Ftauri-plugin-gamepad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeveloperMindset-com%2Ftauri-plugin-gamepad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DeveloperMindset-com","download_url":"https://codeload.github.com/DeveloperMindset-com/tauri-plugin-gamepad/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238909320,"owners_count":19550837,"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":["api","gamepad","gilrs","joystick","polyfill","rust","tauri"],"created_at":"2024-09-24T20:53:53.589Z","updated_at":"2025-10-29T22:31:19.718Z","avatar_url":"https://github.com/DeveloperMindset-com.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tauri Plugin Gamepad\n\nA plugin for [Tauri](https://github.com/tauri-apps/tauri) that provides a polyfill for [Gamepad Web API](https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API/Using_the_Gamepad_API) that works on most common platforms.\n\n![demo](https://github.com/eugenehp/tauri-plugin-gamepad/raw/master/docs/demo.png)\n\nIt's built on top of [gilrs](https://crates.io/crates/gilrs) library.\n\n## Tauri versions support\n\n| Tauri version |  git  |\n|---------------|-------|\n| 1.x           | [0.0.2](https://github.com/DeveloperMindset-com/tauri-plugin-gamepad/tree/v1)    |\n| 2.0.0-beta    | [0.0.3](https://github.com/DeveloperMindset-com/tauri-plugin-gamepad/releases/tag/0.0.3) |\n| 2.0.0-rc      | [0.0.4](https://github.com/DeveloperMindset-com/tauri-plugin-gamepad/releases/tag/0.0.4) |\n| 2.0.x         | [0.0.5](https://github.com/DeveloperMindset-com/tauri-plugin-gamepad/releases/tag/0.0.5) |\n\n## Why\n\nBy default WebKit does not support all the joysticks and gamepads, especially on Safari (macOS and iOS). It does support a bit more in Chrome's version of WebKit, but that's not the one used by Tauri.\n\nTherefore this plugin was created to bridge this gap and provide same access via homogenous Gamepad API that's already available in most browsers.\n\n## Tutorial\n\n[YouTube](https://www.youtube.com/embed/EuGDSnfuGjU?si=0LLJXYvER_acBOWg)\n[![youtube tutorial](https://img.youtube.com/vi/EuGDSnfuGjU/maxresdefault.jpg)](https://www.youtube.com/embed/EuGDSnfuGjU?si=0LLJXYvER_acBOWg)\n\n\n## Usage\n\nOn the javascript side, simply call `import 'tauri-plugin-gamepad-api'`.\n\nOn the rust side, add `.plugin(tauri_plugin_gamepad::init())` to your main's Tauri builder call.\n\nSee [example](./examples/tauri-app/) for more.\n\n## Known issues\n\n- Haptic funcionality is not available (because `gilrs` doesn't support it, though `sdl2` does).\n- You'll get double `ongamepadconnected` for some of the devices (one from native implementation, and one from this plugin).\n\n## Packages\n\n- `tauri-plugin-gamepad` on [crates](https://crates.io/crates/tauri-plugin-gamepad)\n- `tauri-plugin-gamepad-api` on [npm](https://www.npmjs.com/package/tauri-plugin-gamepad-api)\n\n## Supported platforms (from `gilrs`)\n\n|                  | Input | Hotplugging | Force feedback |\n|------------------|:-----:|:-----------:|:--------------:|\n| Linux/BSD (evdev)|   ✓   |      ✓      |        ✓       |\n| Windows (XInput) |   ✓   |      ✓      |        ✓       |\n| macOS            |   ✓   |      ✓      |        ✕       |\n| iOS              |   ✓   |      ✓      |        ✕       |\n| Android          |   ✕   |      ✕      |        ✕       |\n\n## Development\n\nRun `npm run watch` to transpile TypeScript API layer.\n\nRun example demo using these commands:\n```shell\ncd examples/tauri-app\nnpm run tauri dev\n```\n\n## Permissions\n\nMake sure to include proper permissions to enable the plugin to share events with the webpage.\n\n```json\n{\n  \"$schema\": \"../gen/schemas/desktop-schema.json\",\n  \"identifier\": \"default\",\n  \"description\": \"Capability for the main window\",\n  \"windows\": [\"main\"],\n  \"permissions\": [\n    \"core:app:default\",\n    \"core:event:allow-listen\",\n    \"gamepad:default\"\n  ]\n}\n```\n\n## Contributing\nWhen contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.\n\n## License\n[MIT](./LICENSE)\n\nCopyright (c) 2023-2024 Eugene Hauptmann\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevelopermindset-com%2Ftauri-plugin-gamepad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevelopermindset-com%2Ftauri-plugin-gamepad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevelopermindset-com%2Ftauri-plugin-gamepad/lists"}