What is JoyToKey?

JoyToKey (or Joy2Key) enables PC game controllers to emulate the keyboard and mouse input, so that windows applications and web games can be controlled with your favorite joysticks! Whenever buttons and sticks are pressed on the controllers, JoyToKey converts them into keyboard strokes and/or mouse movements so that the target application will work as if a real keyboard and a mouse were used.

joy2key: gamepad to keyboard
Joystick to Keyboard input

JoyToKey is a shareware, but you can download the latest version for free. Try it on your PC to play games which don't have native controller support with your favorite joysticks and/or use it for general applications to improve efficiency by registering frequently used key shortcuts as joystick input. If you find JoyToKey useful, you can purchase a license key at any time from JoyToKey application menu.


Location of user configuration data (profiles)

When JoyToKey is installed from the installer (JoyToKeySetup_en.exe), user configuration data will be by default stored in "JoyToKey" folder in user's "Documents" folder.

In case you can no longer find your configurations after upgrading JoyToKey, please manually copy the configuration files (JoyToKey.ini and *.cfg files) from the old "JoyToKey" folder into your "Documents/JoyToKey" folder so that your old configuration data can be accessed. For more details, please refer to this page.

JoyToKey Version 7.0.0 Released

Version 7.0.0 is a major update, which included the following changes:

  • Support for the dark mode
  • Support for high DPI display
  • Button display template

    For each joystick device (or tab), you can configure the button display names from the right-click menu (or from the device configuration menu) like "A", "B, "X", "Y", ... , instead of "Button 1", "Button 2", ...

  • On the joystick tabs, device names will be displayed by default.

    Besides, users can also edit the device name for their convenience. (Right-click on the tab, and select "Edit the display name for this device")

  • In the device configuration window, added the functionality to delete an old (not connected) device configuration
  • Various minor improvements

Other notable changes included in the recent releases:

  • You can now define a button to trigger the assignments defined on other buttons.
    For example, it is possible to configure the followings.
    • When Button1 is pressed for a short duration, rotate the input across Input1 -> Input2 -> Input3 -> …
    • When Button1 is pressed for a long duration, enable SHIFT function
    For more details, please refer to this blog page
  • Various enhancements to "Keyboard(Multi)" functionality
    • Switch rotation - Added an ability to reset the counter when a button isn't pressed for a certain duration. That means, when the button is pressed next time, it will go back to Input1.
    • Switch depending on how long the button is pressed - It is now possible to assign an additional key "Input3" when the long-press is released.
  • Feature to trigger the custom vibration pattern when the active profile is switched (under the Options tab).

    NOTE: At this moment, it's limited to the first XInput device. If there is a demand to notify on other devices, please let us know.

  • Enhanced "Configure diagonal input as separate buttons" feature such that it can be configured separately for left and right sticks.

    (Under "Options" tab -> Show/Hide Buttons)

  • Updated the application icon - special thanks to Peter (Silent_ip)!
  • Enhanced the automated association of profiles based on the target application as follows:
    • if both path and title are specified, profile will switch only when both are matched
    • if only path is specified, profile will switch if path is matched
    • if only title is specified, profile will switch if title is matched
  • Feature to paste a pre-defined text to the target application
  • Supported repeat and toggle click in mouse absolute movement mode
  • Enhanced ButtonAlias function - Now support 3 button combination
  • Support up to max 50 joysticks (previously 32 joysticks)
  • Support up to max 128 buttons (previously 32 buttons)
  • Enhanced an execution of an external program to be able to
    • pass command parameters
    • specify the starting working directory
  • Single click a task tray icon to refresh joystick connections
    When you connect a new joystick to the PC, you can just click the task tray icon to get it recognized (either left click or right click).
  • Supported multiple screens for the absolute movement of a mouse cursor.
  • Supported additional key-code emulations such as the volume control (up / down / mute), media control (prev / next / play / stop), and SCROLL_LOCK key.
  • Changed the default key emulation code for arrow keys, R-Alt and R-Ctrl, to fix some compatibility issue with recent Windows 10. In case it causes a problem for certain old games and you want to use the old key code, in the button assignment window, please select an equivalent key (from right-click menu) which is labeled as "for DirectInput".
Complete version history can be founded here, and the latest version can be downloaded from here.

WARNING: Be careful with unofficial download sites

JoyToKey seems to be distributed in various unofficial websites, and some of them seem to be distributing a tweaked software (or "download manager") to install extra applications on your PC.

They are not official distributions, and the author of JoyToKey is not involved in any of those activities. Unless you have a good reason to trust those unofficial websites, you should download JoyToKey from the official download page in order to avoid unnecessary troubles.

(There does exist some useful 3rd party websites though, for example, a site for people with disabilities where JoyToKey is packaged with pre-defined configurations for PC accessibility)


May 3, 2024
JoyToKey 7.0.0 Release
Jan 23, 2024
JoyToKey 6.9.3 Release
Sep 9, 2023
JoyToKey 6.9.2 Release
Aug 30, 2022
JoyToKey 6.9.1 Release
Aug 14, 2022
JoyToKey 6.9 Release
Jan 29, 2022
JoyToKey 6.8 Release
Aug 28, 2021
JoyToKey 6.7 Release
Mar 14, 2021
JoyToKey 6.6 Release
Aug 16, 2020
JoyToKey 6.5 Release
Jun 3, 2020
JoyToKey 6.4.3 Release (bug fix)
Apr 19, 2020
JoyToKey 6.4.2 Release
Jul 21, 2019
JoyToKey 6.3 Release
Feb 2, 2019
JoyToKey 6.2 Release
Sep 23, 2018
JoyToKey 6.1.1 Release
Sep 16, 2018
JoyToKey 6.1 Release
Sep 9, 2018
JoyToKey 6.0 Release

Return To Top