Skip to content

jasecara/gamepadmk

Repository files navigation

GamePadMK GamePadMK

Windows Keyboard Screenshot macOS Keyboard Screenshot

GitHub Latest Release License: GPLv3 Rust

GamePadMK is a gamepad-controlled on-screen keyboard and mouse for Windows, macOS, and Linux. It can be used to easily control PCs connected to a TV or streamed remotely with Sunshine. You can use it to navigate around applications and press hot keys like Ctrl+Alt+Del or Alt+Tab.

How to Use

GamePad / Controller Support

GamePadMK is compatible with most dual-stick gamepads/controllers, whether connected via wired or wireless. The following controllers have been tested and confirmed to work:

  • Microsoft Xbox Wireless Controller (Bluetooth)
  • 8Bitdo Ultimate Bluetooth Controller (Bluetooth)

Installation

You can download the latest version of GamePadMK from the Releases page. Simply run the installer for your platform (.msi or .exe for Windows, .dmg for Mac) to get started.

You can also build the project yourself from source. See the Building Locally section for instructions.

Default Controls

Button Result
Back Button + Start Button Back + Start Turn Control Mode On / Off
Joystick Right Right Joystick Move Around Keyboard
Joystick Right Press Right Joystick Click Show or Hide Keyboard
Right Trigger Press Right Trigger Press or Release Key
Right Button Press Right Button Toggle Long Press or Release Key
Left Trigger Press Left Trigger Press or Release Shift Key
D-Pad Up D-Pad Up Press Up Arrow Key
D-Pad Down D-Pad Down Press Down Arrow Key
D-Pad Left D-Pad Left Press Left Arrow Key
D-Pad Right D-Pad Right Press Right Arrow Key
A Button A Button Left Click Mouse
B Button B Button Right Click Mouse
Joystick Left Left Joystick Move Mouse Pointer
Joystick Left Click Left Joystick Click Change Mouse Speed

Settings

You can access the settings by clicking the GamePadMK icon in the taskbar or system tray.

  • Auto Start: Enable or disable automatic startup with Windows.
  • Dark Mode: Enable or disable dark mode for keyboard and settings window.
  • Show Notifications: Enable or disable notification when the keyboard is shown or hidden.
  • Mode Change Buttons: Choose the buttons used to toggle control mode on and off.
  • Show On-Screen Keyboard: Show or hide the on-screen keyboard when control mode is active.
  • Key Size: Adjust the size of the on-screen keyboard keys.

Roadmap

Planned Features

  • Keyboard Layout Import/Export: Add functionality to import and export custom keyboard layouts.
  • Keyboard Layout Editor: Create an editor for designing and modifying keyboard layouts.
  • Custom Themes: Enable users to customize keyboard themes, including colors and styles.
  • Linux Support: Add support for Linux keyboard layouts, testing, and provide binary releases.
  • Test Coverage: Increase test coverage for the project to ensure reliability and stability for future features.
  • AutoSuggest: Implement a feature to suggest words as the user types, enabling quick selection for autocomplete functionality.

Building Locally

This project is built using Tauri and React. It also leverages sdl2 bindings to handle input from connected gamepads. You can ensure sdl2 is installed and available for Rust using cargo-vcpkg:

cd src-tauri
cargo vcpkg build
cd ..

Next, install the required npm dependencies and start the Tauri development server:

npm install
npm run tauri dev

Recommended Development Environment

Feature Requests

Feature requests and contributions are always welcome! If you have ideas for new features or improvements, please open an issue or pull request on GitHub. When suggesting a specific feature, include as much detail as possible about its functionality and use case to help guide the discussion. If you find GamePadMK useful, consider starring it on GitHub to show your support and/or sponsoring the project!

License

GamePadMK is an open-source and free software licensed under the GPL-3.0. (GNU General Public License v3.0).

Acknowledgements

  • Tauri for its lightweight framework enabling seamless native app development.
  • Vite for its blazing-fast build and development tools.
  • Radix UI for its accessible and customizable UI components.
  • Rust for its unmatched performance and reliability.
  • rust-analyzer for enhancing the development experience.
  • SDL2 for robust gamepad input handling.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages