A cross-platform controller mapping tool designed to provide functionality similar to REWASD, but with support for MacOS, Windows, and (future) Linux. This project is currently a work in progress, and while it is actively tested on MacOS, I aim to expand support to other platforms based on user feedback and requests.
- Platform Support: MacOS (actively tested), with planned support for Windows and Linux.
- Customizable Profiles: Create and switch between multiple mapping profiles tailored to different applications.
- Button and Axis Mapping: Map controller buttons and axes to keyboard, mouse, or custom actions.
- Combos and Sequences: Define complex button combinations and sequences for streamlined workflows or advanced inputs.
- Human-Friendly Mappings: Export profiles in an easy-to-read format for review and sharing.
- Accessibility First: Focused on improving accessibility for workflows, gaming, and everyday tasks.
This project is under development and not yet fully functional. However, core features are in place, and I am actively working on modularity, usability improvements, and extended functionality.
If you need support for a specific platform (Windows or Linux), or require certain features, please submit an issue or contact me directly. I’ll prioritize requests based on demand.
- Verbose Configuration Options: Allow users to input arrays for multi-command actions.
- Combo Management: Add hash-map-based design patterns for handling input combinations.
- Improved Axis and Trigger Handling: Refine normalization and deadzone support for joysticks and triggers.
- Executable Version: Package the tool as a standalone executable for easy usage without requiring a development environment.
For a complete list of tasks and enhancements, check out the GitHub Issues.
- Python 3.7+
pip
package manager
- Clone the repository:
git clone https://github.com/WinkeeFace/Cross-Platform-Controller-Mapper.git cd Cross-Platform-Controller-Mapper
- Install dependencies:
pip install -r requirements.txt
- Run the tool:
python main.py
To start mapping your controller:
python main.py run
- List current mappings:
python main.py list
- Add a new button mapping:
python main.py add -b 1 -a "Key.space"
- Interactively map inputs:
python main.py map
The tool uses a JSON-based configuration file (config.json
) to store mappings and profiles. Here’s a sample:
{
"profiles": [
{
"name": "default",
"mappings": {
"buttons": {"1": "Key.space"},
"axes": {"0": "MouseMoveHorizontal"}
}
}
]
}
REWASD doesn’t support MacOS, which I rely on for work. This project began as a way to bridge that gap and improve my personal workflow. However, I’m passionate about accessibility and want to share this tool with others who might benefit.
If you’re looking for cross-platform controller mapping with MacOS support—or have specific features you’d like to see—please let me know.
Contributions are welcome! If you’d like to contribute:
- Fork the repository.
- Create a new branch:
git checkout -b feature-name
- Commit your changes and push them to your branch.
- Open a pull request.
Check the Issues tab or submit your own! I’d love to hear your feedback and ideas.
This project is licensed under the Apache 2.0 License.
If you have any questions, feedback, or requests, feel free to reach out via GitHub Issues or pull requests. Your input will help shape the future of this project!