🕹️ Flexible gamepad input mapping for keyboard and mouse, built to be quick to set up, easy to use and highly customizable.
.ini and edit assignments, modifiers and variables.[Toggle],[Turbo],[TurboToggle],[Execute],[Combo],[Sequence] and others) and more.[MACRO] modifier.Joynix requires an Xinput controller (native or emulated via tools like DS4Windows, DualSenseX, x360ce, etc.).[Toggle], [Turbo], [TurboToggle][Combo]: send multiple keys at once[Execute]: run programs (e.g. notepad, calc.exe, c:\yourfolder\yourprogram.exe)[ComboAsync]: send multiple keys with a delay between each key (defined with ComboKeysDelay)[ToggleCombo], [TurboCombo], [TurboToggleCombo][Sequence]: send keys in sequence. Similar to [ComboAsync], but ComboAsync sends and holds the keys, [Sequence] sends simple presses.[Text]: send up to 200 characters (e.g. [TEXT]this is a string). Not intended for games.[Hold]: perform different actions depending on how long the button is held. Short press sends the 1st key, medium press sends the 2nd key, long press sends the 3rd key. (e.g. [Hold] a, b, c)[FastPress]: repeatedly press the button to cycle through the keys to send (define the keys after the modifier, e.g. [FastPress] a, b, c).[Shift]: add a set of keys (up to 5, e.g. [Shift] a, b, c, d, e) and switch between them using the ShiftMode modifiers:
[ShiftMode]: press and hold to change the active Shift key (define the target key number after the modifier, e.g. [ShiftMode] 3).[ShiftModeToggle]: same as above, but the button acts as a toggle.[ShiftModeCycle-], [ShiftModeCyle+] or [ShiftModeCyle]: cycle through the available Shift keys. These modifiers do not require a value (e.g. LT = [ShiftModeCyle+]).AnalogToMouse = 1 (enabled by default) to move the mouse with the analog stick defined in Stick (default: Stick = RS ).ConfigToLoad in Joynix.config, via command line, or by drag and drop.Shift+Ctrl+5 by default) to instantly reload the current .ini, without restarting the application.GamepadToKeyboard.config.Values you can assign to the buttons:
A..Z, 0..9, F1..F12Enter, Space, Esc, Lalt, Lshift, Lctrl, LwinLBmouse, RBmouse, MBmouse, WheelUp, WheelDown
A = [Turbo]c).,. Extra spaces are ignored (e.g A = [COMBO] c,S, L,Lbmouse).[Turbo], [TURBO] and [turbo] are equivalent).[Turbo]k and [Turbo] k are both valid).[Sequence] supports up to 15. Any additional keys are ignored.Example syntax:
| Button | Assignment | Button | Assignment | | Button | Assignment | | |
|---|---|---|---|---|---|---|---|---|
A |
Enter | Back |
F1 | LSup |
Up | |||
B |
[Turbo] Space | Start |
Esc | LSdown |
Down | |||
X |
[ComboAsync] S, Space,r | LS |
[Toggle]LShift | LSleft |
Left | |||
Y |
[COMBO]A,x,F,LBmouse | RS |
[execute] calc.exe | LSright |
Right | |||
LB |
RBmouse | Dup |
Up | RSup |
||||
RB |
LBmouse | Ddown |
Down | RSdown |
||||
LT |
Wheelup | Dleft |
Left | RSleft |
||||
RT |
WheelDown | Dright |
Right | RSright |
||||
Home |
Lwin |
| Section | Option | Values / Description |
|---|---|---|
| Mouse | AnalogToMouse | 1/0 : Turn On/Off the mouse movement via analog sticks. |
| Stick | RS/LS : Analog to use. Button assignments ignored. |
|
| Deadzoneshape | 1/2/3 : Square/Rectangular,Circular,Circular (with rescale). |
|
| DeadzoneType | 1/2/4 : Both axis/ per axis/ per direction. |
|
| (Stick)AxisInverted | 1/0 : Turn On/off axis inversion. 4 options available. |
|
| Sensitivity | Value : Mouse movement speed. |
|
| Analogs | DeadzoneType | 1/2/4/8: Both sticks/ per stick/ per axis/ per direction. |
| (Stick)AxisInverted | 1/0 : Turn On/off axis inversion. 4 options available. |
|
| Other | SendKeysTypes | 1: Game mode; 2: Desktop (with windows-style keypress delay + repeat) |
The program supports several configurable hotkeys. They can be set in Joynix.config and disabled if needed.
Shift + Ctrl + 5 (already described above).Shift + Ctrl + 6 (default)ShiftModeToggle, ShiftModeCycle-, ShiftModeCycle+, disabled by default.Joynix.config:
e.g. KeyboardShiftEnabled = False[Turbo][Combo] NOT supported).[Turbo] and other Turbo-based modifiers to Wheel, since it has dedicated repetition variables.[Shift] assignments are used together with ShiftModeCycle modifiers, it is recommended to use the same number of keys in each assignment. Different lengths are supported (e.g. LT = [Shift] a,b,c,d,e and RT = [Shift] j,k,l), but may produce less predictable results.[ComboAsync] and [Sequence]: configurable delays through ComboAsyncTime and SequenceTime (ms).[FastPress]: configurable time window through FastPressTime.[Hold]: configurable hold duration thresholds through HoldTime.CTRLDOWN, ALTDOWN, SHIFTDOWN, LWINDOWN, RWINDOWN in the assignments. These special keys are handled through LAlt, LCtrl, RAlt, RCtrl, LWin, and RWin.Joynix.exe (or any associated flagged file) to your AV vendor asking for a false positive review request.If you enjoy Joynix, you can buy me a coffee. It will be very appreciated ;)
SPACE, ENTER, ALT, BACKSPACE, BS, DELETE, DEL, UP, DOWN, LEFT, RIGHT, HOME, END, ESCAPE, ESC, INSERT, INS, PGUP, PGDN, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TAB, PRINTSCREEN, LWIN, RWIN, NUMLOCK on, CAPSLOCK off, SCROLLLOCK toggle, BREAK, PAUSE, NUMPAD0, NUMPAD1, NUMPAD2, NUMPAD3, NUMPAD4, NUMPAD5, NUMPAD6, NUMPAD7, NUMPAD8, NUMPAD9, NUMPADMULT, NUMPADADD, NUMPADSUB, NUMPADDIV, NUMPADDOT, NUMPADENTER, APPSKEY, LALT, RALT, LCTRL, RCTRL, LSHIFT, RSHIFT, SLEEP, ASC nnnn, BROWSER_BACK, BROWSER_FORWARD, BROWSER_REFRESH, BROWSER_STOP, BROWSER_SEARCH, BROWSER_FAVORITES, BROWSER_HOME, VOLUME_MUTE, VOLUME_DOWN, VOLUME_UP, MEDIA_NEXT, MEDIA_PREV, MEDIA_STOP, MEDIA_PLAY_PAUSE, LAUNCH_MAIL, LAUNCH_MEDIA, LAUNCH_APP1, LAUNCH_APP2, OEM_102
This gamepad script was written in AutoIt.
The program makes use of a remodified version of the XInput UDF by Oxin8 (xoninx@gmail.com) to read Xinput states.