A Chrome extension that allows you to navigate web pages and Chromium-based browsers using a game controller.
Gamepad Navigator Extension
The Gamepad Navigator is a Chrome extension that allows a user to control Chromium-based browsers (Chrome, Edge, Brave, et cetera) using a game controller. Any controller supported by the HTML5 Gamepad API can be used with this extension.
This extension listens for gamepad inputs, and waits until an configured input is pressed. It then launches the associated \"action\". Most of these \"actions\" are focused around navigation, such as moving focus between clickable onscreen elements, clicking an element, or scrolling the page up or down.
Although it should work with any controller, it is particularly intended to be usable with solutions such as:
- The Xbox Adaptive controller
- The Logitech Adaptive Gaming Kit, which provides accessible inputs
for the Xbox Adaptive Controller
- The Playstation Access Controller
- The Logitech Adaptive Gaming Kit for Access Controller
- The HORI Flex controller for Nintendo Switch
- Various modified controllers such as one-handed controllers
This extension was written in collaboration with members of the Fluid Community, an \"open, collaborative project to improve the user experience and inclusiveness of open source software\". Most of this extension is written using Infusion, a framework created and supported by that community.
Read more
This extension listens for gamepad inputs, and waits until an configured input is pressed. It then launches the associated \"action\". Most of these \"actions\" are focused around navigation, such as moving focus between clickable onscreen elements, clicking an element, or scrolling the page up or down.
Although it should work with any controller, it is particularly intended to be usable with solutions such as:
- The Xbox Adaptive controller
- The Logitech Adaptive Gaming Kit, which provides accessible inputs
for the Xbox Adaptive Controller
- The Playstation Access Controller
- The Logitech Adaptive Gaming Kit for Access Controller
- The HORI Flex controller for Nintendo Switch
- Various modified controllers such as one-handed controllers
This extension was written in collaboration with members of the Fluid Community, an \"open, collaborative project to improve the user experience and inclusiveness of open source software\". Most of this extension is written using Infusion, a framework created and supported by that community.
Source Manifest.json
{"update_url": "https://clients2.google.com/service/update2/crx", "name": "Gamepad Navigator", "version": "1.0.0", "description": "A Chrome extension that allows you to navigate web pages and Chromium-based browsers using a game controller.", "author": "The Gamepad Navigator Authors", "manifest_version": 3, "permissions": [ "storage", "tabs", "sessions", "search" ], "content_scripts": [ { "matches": [ "" ], "css": [ "css/focus-fix.css", "css/iframe-wrapper.css" ], "js": [ "js/lib/infusion/infusion-all.js", "js/lib/ally/ally.min.js", "js/lib/fluid-osk/templateRenderer.js", "js/lib/fluid-osk/keydefs.js", "js/lib/fluid-osk/key.js", "js/lib/fluid-osk/row.js", "js/lib/fluid-osk/keyboard.js", "js/lib/fluid-osk/keyboards.js", "js/lib/fluid-osk/inputs.js", "js/shared/prefs.js", "js/shared/utils.js", "js/shared/settings.js", "js/content_scripts/gamepad-navigator.js", "js/content_scripts/actions.js", "js/content_scripts/bindings.js", "js/content_scripts/styles.js", "js/content_scripts/svgs.js", "js/content_scripts/templateRenderer.js", "js/content_scripts/modal.js", "js/content_scripts/list-selector.js", "js/content_scripts/action-launcher.js", "js/content_scripts/keyboards.js", "js/content_scripts/onscreen-keyboard.js", "js/content_scripts/search-keyboard.js", "js/content_scripts/onscreen-numpad.js", "js/content_scripts/select-operator.js", "js/content_scripts/shadow-holder.js", "js/content_scripts/modalManager.js", "js/content_scripts/focus-overlay.js", "js/content_scripts/input-mapper-content-utils.js", "js/content_scripts/input-mapper-background-utils.js", "js/content_scripts/input-mapper-base.js", "js/content_scripts/input-mapper.js" ] } ], "background": { "service_worker": "js/background.js" }, "icons": { "16": "images/gamepad-icon-16px.png", "32": "images/gamepad-icon-32px.png", "48": "images/gamepad-icon-48px.png", "128": "images/gamepad-icon-128px.png" }, "action": { "default_icon": { "16": "images/gamepad-icon-16px.png", "32": "images/gamepad-icon-32px.png", "48": "images/gamepad-icon-48px.png", "128": "images/gamepad-icon-128px.png" }, "default_title": "Open Gamepad Navigator settings." }, "options_ui": { "open_in_tab": true, "page": "html/settings.html" }}
Read more