Warning
Under development. Not ready for use.
Transform your game controller into a PC remote control. JoyCTRL lets you create custom button mappings and automate everything on your computer using any compatible gamepad.
- Wide Compatibility: Support for most standard game controllers
- Visual Interface: Interactive controller diagrams with real-time feedback
- Auto-Detection: Automatic recognition and configuration of connected controllers
- 🖱️ Mouse Control: Precise cursor movement both in absolute or relative mode and clicking (left, middle, right buttons)
- ⌨️ Keyboard Control: Record and replay complex key combinations
- 📜 Scrolling: Directional scrolling with stick or button control
- 🎯 Precision Control: Dynamic mouse sensitivity adjustment
- 🎵 Media Controls: Playback controls (play/pause, stop, previous/next track)
- 🚀 System Actions: Open files, launch websites, Volume control (mute, up, down)
- ⏸️ App Control: Pause/resume JoyCTRL mappings, update settings
- Probably more to come...
- Button Combinations: Create actions that trigger only when specific button combinations are held
- Boolean Logic: Support for AND/OR conditions between button states
- Button Press: Instant actions triggered by button presses
- Axis Triggers: Actions based on trigger pressure thresholds
- Stick Controls: Analog stick movements mapped to mouse movement
- Frontend: React 19 + TypeScript + Tailwind CSS
- Backend: Rust with Tauri 2.0
- Real-time Updates: RxJS for reactive state management
- Build Tool: Vite for fast development and building
- Node.js 22.16.0 or later (Highly recommended to use Volta to synchronize your node version with the project)
- Rust toolchain
- Compatible game controller (Xbox, DualShock, DualSense, etc.)
# Clone the repository
git clone https://github.com/your-username/JoyCTRL.git
cd JoyCTRL
# Install dependencies
npm install
# Start the project
npm start
# Generate TypeScript bindings (should only be needed if you've made changes to the backend)
npm run build-ts
# Bundle the project
npm run tauri build
# The built application will be available in the `src-tauri/target/release/bundle/` folder
This project is under active development. Contributions, bug reports, and feature requests are welcome!
- Default mappings on first start
- Triggers mapping
- Sticks mapping
- Gyroscope mapping
- Virtual keyboard window
- Translations