Transform joystick input into keyboard and mouse events (OSX)
Objective-C Other
Switch branches/tags
Nothing to show
Clone or download
fyhuang Merge pull request #23 from citelao/fix-joysticks
Fix analog joystick control
Latest commit a796048 May 14, 2015
Permalink
Failed to load latest commit information.
English.lproj Set up Enjoy2 auto-updating Dec 1, 2014
Enjoy2.xcodeproj Set up Enjoy2 auto-updating Dec 1, 2014
JSONKit Renames, added JSONKit Mar 31, 2013
JoystickImages Set up Enjoy2 auto-updating Dec 1, 2014
Sparkle.framework Set up Enjoy2 auto-updating Dec 1, 2014
Updates Set up Enjoy2 auto-updating Dec 1, 2014
.gitignore Initial commit Jul 27, 2012
ApplicationController.h #7 Fix an issue where mouse movement stops being detected Nov 24, 2014
ApplicationController.m #7 Fix an issue where mouse movement stops being detected Nov 24, 2014
Config.h Working JSON save/load Apr 27, 2013
Config.m Working JSON save/load Apr 27, 2013
ConfigsController.h Working JSON save/load Apr 27, 2013
ConfigsController.m Working JSON save/load Apr 27, 2013
Credits.rtf Scrolling, mouse scope, icon Jul 30, 2012
Enjoy2_Prefix.pch Renames, added JSONKit Mar 31, 2013
Info.plist Set up Enjoy2 auto-updating Dec 1, 2014
JSAction.h Forked Enjoy, mouse movement Jul 27, 2012
JSAction.m Forked Enjoy, mouse movement Jul 27, 2012
JSActionAnalog.h constants! May 14, 2015
JSActionAnalog.m constants! May 14, 2015
JSActionButton.h Forked Enjoy, mouse movement Jul 27, 2012
JSActionButton.m Forked Enjoy, mouse movement Jul 27, 2012
JSActionHat.h Forked Enjoy, mouse movement Jul 27, 2012
JSActionHat.m Forked Enjoy, mouse movement Jul 27, 2012
Joystick.h Forked Enjoy, mouse movement Jul 27, 2012
Joystick.m fixed `getRealValue` May 13, 2015
JoystickController.h Scrolling, mouse scope, icon Jul 30, 2012
JoystickController.m Fixed typecast (fixes warning in previous commit, no functional change) Jan 16, 2014
KeyInputTextView.h Forked Enjoy, mouse movement Jul 27, 2012
KeyInputTextView.m Forked Enjoy, mouse movement Jul 27, 2012
README.md Update README.md Jan 31, 2015
SubAction.h Forked Enjoy, mouse movement Jul 27, 2012
SubAction.m Forked Enjoy, mouse movement Jul 27, 2012
Target.h Working JSON save/load Apr 27, 2013
Target.m Working JSON save/load Apr 27, 2013
TargetConfig.h Forked Enjoy, mouse movement Jul 27, 2012
TargetConfig.m Forked Enjoy, mouse movement Jul 27, 2012
TargetController.h Scrolling, mouse scope, icon Jul 30, 2012
TargetController.m Scrolling, mouse scope, icon Jul 30, 2012
TargetKeyboard.h Forked Enjoy, mouse movement Jul 27, 2012
TargetKeyboard.m Scrolling, mouse scope, icon Jul 30, 2012
TargetMouseBtn.h Finished supporting mouse buttons Jul 27, 2012
TargetMouseBtn.m Scrolling, mouse scope, icon Jul 30, 2012
TargetMouseMove.h Forked Enjoy, mouse movement Jul 27, 2012
TargetMouseMove.m Scrolling, mouse scope, icon Jul 30, 2012
TargetMouseScroll.h Scrolling, mouse scope, icon Jul 30, 2012
TargetMouseScroll.m Scrolling, mouse scope, icon Jul 30, 2012
TargetToggleMouseScope.h Scrolling, mouse scope, icon Jul 30, 2012
TargetToggleMouseScope.m Scrolling, mouse scope, icon Jul 30, 2012
dsa_pub.pem Set up Enjoy2 auto-updating Dec 1, 2014
icon.icns Scrolling, mouse scope, icon Jul 30, 2012
license.txt Updated readme Jul 27, 2012
main.m Forked Enjoy, mouse movement Jul 27, 2012

README.md

Enjoy2

Enjoy2 is a simple program for OSX that allows you to transform joystick inputs into keyboard or mouse events.

If you've ever played a video game which only supports mouse and keyboard input, but you want to use a joystick or gamepad, then Enjoy2 is the program for you. Enjoy2 lets you map your joystick inputs to:

  • Key events
  • Mouse clicks
  • Mouse movement (for analog sticks)
  • Scrolling

Enjoy2 supports multiple configurations (for different games or programs) and you can even map joystick buttons to change configurations on-the-fly.

Enjoy2 is written by @nongraphical and is based on Enjoy by Sam McCall. Enjoy2 is MIT-licensed.

How to install

Download Enjoy2, extract the archive, and you're done!

How to use

At startup, and when Enjoy2 is paused, press any button or move any analog stick to jump to the configuration for that button or stick. From there, select one of the mapping options from the choices on the right.

To use an analog axis to move the mouse, select the "Analog" sub-item on the left.

Terminology

A mapping specifies which keys/mouse buttons/mouse movements happen when a joystick button is pressed or axis moved. A translation specifies which hardware joystick buttons and axes translate into which virtual buttons and axes.

Mapping modes

Enjoy2 offers two mouse mapping modes: global and single-window. Enjoy2 starts in global mode, but you can set any joystick button to the "toggle mouse scope" action, which will change the mode. If you are using Enjoy2 to play a video game, you may find that one or the other mode offers better compatibility with your game's specific requirements.

Translations (upcoming feature)

Translations allow you to specify a mapping (e.g. for playing a specific video game) once and apply it to a variety of similar controllers. For example, you could create a mapping and use it with PS3 controllers and Logitech PC gamepads.

TODO: upcoming feature.

Transferring configuration files

All the Enjoy2 configuration files (mappings and translations) are stored in the user's Application Support directory:

/Users/$USERNAME/Library/Application Support/Enjoy2/*

The files are JSON-encoded and should be portable across machines.

Requirements

  • Mac OS X 10.6 (Snow Leopard) or higher
  • USB gamepad/joystick/controller

Changelog

Version 1.2

  • JSON configuration files

Version 1.1

  • Forked from Enjoy
  • Mouse movement support
  • Mouse button support
  • Scrollwheel support
  • Support for two mouse movement modes

Acknowledgements