-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Mojo Input Manager (MIM) is a controller setup and management desktop app for Windows, built with Electron (JavaScript, React).
Sim racing and flight sim players often end up juggling several USB devices (HOTAS, HOSAS, pedals, shifters, tablets) and three separate, unrelated tools just to make them behave: one to create virtual controllers, one to remap physical inputs onto them, and one to control which game sees which device. MIM unifies all three into a single app.
-
Virtual Devices (vJoy) Create and remove vJoy virtual controllers with a couple of clicks. Creation and deletion are elevated automatically (UAC prompt) since they change the driver's persistent configuration.
-
Mapping Detect connected physical controllers live via the Gamepad API and forward their input onto a vJoy virtual device. Combine multiple physical devices onto a single vJoy target, or run several mappings at once (a HOTAS's throttle and stick, or two HOSAS sticks, each with its own target), with a quick swap to flip which target a mapping feeds. Tune each axis with invert, deadzone, and a response curve. Save a whole setup as a named game profile to switch games with one click, and individual combinations are remembered and restored automatically next time.
-
Device Filtering (HidHide) Control exactly which physical devices are visible to which applications. Save named profiles (a game plus which devices it should see) and apply the right combination with one click.
-
Settings Switch the app's accent color between neon green and electric cyan, and check the app version and update status.
-
Runs in the background Minimizes to the system tray instead of closing, with an option to launch at Windows startup, and updates itself in place when a new version is released.
- Platform: Windows desktop
- Framework: Electron, React, Tailwind CSS, Framer Motion
- Native integration: koffi (FFI) for vJoyInterface.dll, spawned CLI wrappers for vJoyConfig.exe and HidHideCLI.exe
- Package manager: npm
- Go to the Releases page.
- Download the latest
Mojo Input Manager Setup x.x.x.exe. - Run the installer and follow the on-screen steps.
If you are running from source, see Developer Setup.
MIM needs two more drivers to work: vJoy (virtual joystick driver) and HidHide (Nefarius, device visibility filtering). You don't need to visit either link yourself: launch MIM, and if either driver isn't detected, a banner at the top of the window shows an Install button that downloads that driver's latest installer directly from its official source above and runs it for you. See Getting Started for a full walkthrough.
- Virtual Devices: create your first vJoy virtual controller.
- Mapping: plug in a physical controller, select it (or several to combine), pick the vJoy device you just created as the target, and click Start Mapping.
- Device Filtering: hide the physical device(s) from other apps, allow your game through, turn Cloaking on, and save the combination as a profile for next time.
| Tab | What it does |
|---|---|
| Dashboard | Landing page with quick links into the setup steps below |
| Virtual Devices | Create and remove vJoy virtual controllers |
| Mapping | Detect physical controllers and forward their input to a vJoy device, single or combined |
| Device Filtering | Hide/show physical devices per app using HidHide, with save-and-apply profiles |
| Settings | Accent color, app version, and update status |
mojo-input-manager/
├── assets/ Icons, logos, social preview
├── src/
│ ├── main/
│ │ ├── main.js Electron main process, window, tray, IPC, auto-updater
│ │ ├── vjoy.js vJoyConfig.exe wrapper (create/delete, elevated)
│ │ ├── vjoyInterface.js vJoyInterface.dll wrapper via koffi (live feed)
│ │ ├── hidhide.js HidHideCLI.exe wrapper (devices, cloak, apps)
│ │ ├── profiles.js Per-game device filtering profiles
│ │ └── mappingProfiles.js Remembered physical-device-to-vJoy mappings
│ └── renderer/
│ ├── components/ Shared UI: Card, Button, Badge, Toggle, Select, Sidebar...
│ ├── theme.js Accent theme (green/cyan) persistence
│ └── views/ Dashboard, VirtualDevices, Mapping, DeviceFiltering, Settings
└── package.json
- Getting Started: installing the drivers and your first full setup
- Virtual Devices: creating and managing vJoy controllers
- Mapping: single, multi-device, and concurrent multi-mapping, target swapping, remembered combinations
- Device Filtering: HidHide, cloaking, and profiles
- Settings: theme, version info, updates, and background behavior
- FAQ / Troubleshooting: common questions and issues
- Developer Setup: run from source