/controller-for-windows

An experimental program that helps you navigate your computer with a controller, it can also be binded with keyboard shortcuts for easier navigation and use. You can also type using an on-screen keyboard.

Primary LanguagePythonMIT LicenseMIT

Controller for windows

An experimental program that helps you navigate your computer with a controller, it can also be binded with keyboard shortcuts for easier navigation and use. You can also type using an on-screen keyboard.

How to install and run

Download this repository and create a virtual environment using Pipfile or requirements.txt. You must also have python installed with a version of at least 3.10. To run this project, simply open app.py and you will be greeted with a widget that says: 'Controller for windows'

How to use

app.py has already been preconfigured and the controls mapped to run properly. If you're not satisified or prefer different settings, you can change them. Here are the settings and their meanings:

Controllers tab:

  • Enable/Disable Controller: Self-explanatory
  • Cursor Speed: The speed of the cursor when moving in the screen
  • Scroll Speed: The speed of the controller's scroll.
  • Repeat Button Events: Disabling this, you will have to keep tapping to do specific actions
  • Delay per Movement: An initial delay that happens everytime a continous serie of events happen (Useless when Repeat Button events are off)
  • Repeat speed: A continous delay that happens everytim a continous serie of events happen (also useless when Repeat Button events are off)
  • Launch Keyboard Widget: Launches an on-screen keyboard that you can type with your controller

Mapping tab:

  • Selected Preset: There are 3 presets. The first one is the default and cannot be mapped except for Preset 2 and 3. To map a key to a button, select the control and then its new keybind, and then press "Set Keybind" to save the new bind. To use a preset, just click "Use Preset" and the controller mapping will be set to the new preset.

Licensing

This project is available under the MIT License. See the license file for more info.

Disclaimers

It might not work on all controllers, I tested this on a blue plastic PS controller from an unknown vendor, it had 14 buttons in total. This is also untested on multiple controllers, so usage with multiples is not guranteed. As of now (7/30/23) only PS controllers are being tested. Nintendo and Xbox Controllers might receive support very soon. But don't be too eager yet.