🕹️ Emulate mouse and keyboard input with your gamepad in a quick, easy and highly customizable manner.
.ini and edit assignments, modifiers and variables.[Toggle],[Turbo],[TurboToggle],[Execute],[Combo],[Sequence] and others) and more.[MACRO] and [TEXT] modifiers.GamepadToKeyboard 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 (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.AnalogToMouse = 1 (enabled by default) to move the mouse with the analog stick defined in Stick (default: Stick = RS )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) |
[Turbo] and other Turbo-based modifiers to Wheel, since it has dedicated repetition variables.[ComboAsync] and [Sequence] timing can be customized through their dedicated delay variables (expressed in ms).[Turbo][Combo] NOT supported).CTRLDOWN, ALTDOWN, SHIFTDOWN, LWINDOWN, RWINDOWN in the assignments. These special keys are handled through LAlt, LCtrl, RAlt, RCtrl, LWin, and RWin.GamepadTokeyboard.exe (or any associated flagged file) to your AV vendor asking for a false positive review request.If you enjoy GamepadToKeyboard, 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.