{
"info": {
"author": "Christopher Rosell",
"author_email": "chrippa@tanuki.se",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"Environment :: Console",
"License :: OSI Approved :: MIT License",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3.3",
"Topic :: Games/Entertainment"
],
"description": "======\nds4drv\n======\n\nds4drv is a Sony DualShock 4 userspace driver for Linux.\n\n* Discussions: https://groups.google.com/forum/#!forum/ds4drv\n* GitHub: https://github.com/chrippa/ds4drv\n* PyPI: https://pypi.python.org/pypi/ds4drv\n\nFeatures\n--------\n\n- Option to emulate the Xbox 360 controller for compatibility with Steam games\n- Setting the LED color\n- Reminding you about low battery by flashing the LED\n- Using the trackpad as a mouse\n- Custom mappings, map buttons and sticks to whatever mouse, key or joystick\n action you want\n- Settings profiles that can be cycled through with a button binding\n\n\nInstalling\n----------\n\nDependencies\n^^^^^^^^^^^^\n\n- `Python `_ 2.7 or 3.3+ (for Debian/Ubuntu you need to\n install the *python2.7-dev* or *python3.3-dev* package)\n- `python-setuptools `_\n- hcitool (usually available in the *bluez-utils* or equivalent package)\n\nThese packages will normally be installed automatically by the setup script,\nbut you may want to use your distro's packages if available:\n\n- `pyudev `_ 0.16 or higher\n- `python-evdev `_ 0.3.0 or higher\n\n\nStable release\n^^^^^^^^^^^^^^\n\nInstalling the latest release is simple by using `pip `_:\n\n.. code-block:: bash\n\n $ sudo pip install ds4drv\n\nDevelopment version\n^^^^^^^^^^^^^^^^^^^\n\nIf you want to try out latest development code check out the source from\nGithub and install it with:\n\n.. code-block:: bash\n\n $ git clone https://github.com/chrippa/ds4drv.git\n $ cd ds4drv\n $ sudo python setup.py install\n\n\nUsing\n-----\n\nds4drv has two different modes to find DS4 devices, decide which one to use\ndepending on your use case. \n\nRaw bluetooth mode\n^^^^^^^^^^^^^^^^^^\n\nSupported protocols: **Bluetooth**\n\nUnless your system is using BlueZ 5.14 (which was released recently) or higher\nit is not possible to pair with the DS4. Therefore this workaround exists,\nwhich connects directly to the DS4 when it has been started in pairing mode\n(by holding **Share + the PS button** until the LED starts blinking rapidly).\n\nThis is the default mode when running without any options:\n\n.. code-block:: bash\n\n $ ds4drv\n\n\nHidraw mode\n^^^^^^^^^^^\n\nSupported protocols: **Bluetooth** and **USB**\n\nThis mode uses the Linux kernel feature *hidraw* to talk to already existing\ndevices on the system.\n\n.. code-block:: bash\n\n $ ds4drv --hidraw\n\n\nTo use the DS4 via bluetooth in this mode you must pair it first. This requires\n**BlueZ 5.14+** as there was a bug preventing pairing in earlier verions. How you\nactually pair the DS4 with your computer depends on how your system is setup,\nsuggested googling: * bluetooth pairing*\n\nTo use the DS4 via USB in this mode, simply connect your DS4 to your computer via\na micro USB cable.\n\n**Note:** Unfortunately due to a kernel bug it is currently not possible to use\nany LED functionality when using bluetooth devices in this mode.\n\n\nPermissions\n^^^^^^^^^^^\n\nIf you want to use ds4drv as a normal user, you need to make sure ds4drv has\npermissions to use certain features on your system.\n\nds4drv uses the kernel module *uinput* to create input devices in user land and\nthe module *hidraw* to communicate with DualShock 4 controllers (when using\n``--hidraw``), but this usually requires root permissions. You can change the\npermissions by copying the `udev rules file `_ to\n``/etc/udev/rules.d/``.\n\nYou may have to reload your udev rules after this with:\n\n.. code-block:: bash\n\n $ sudo udevadm control --reload-rules\n $ sudo udevadm trigger\n\n\nConfiguring\n-----------\n\nConfiguration file\n^^^^^^^^^^^^^^^^^^\n\nThe preferred way of configuring ds4drv is via a config file.\nTake a look at `ds4drv.conf `_ for example usage.\n\nds4drv will look for the config file in the following paths:\n\n- ``~/.config/ds4drv.conf``\n- ``/etc/ds4drv.conf``\n\n... or you can specify your own location with ``--config``.\n\n\nCommand line options\n^^^^^^^^^^^^^^^^^^^^\nYou can also configure using command line options, this will set the LED\nto a bright red:\n\n.. code-block:: bash\n\n $ ds4drv --led ff0000\n\nSee ``ds4drv --help`` for a list of all the options.\n\n\nMultiple controllers\n^^^^^^^^^^^^^^^^^^^^\n\nds4drv does in theory support multiple controllers (I only have one\ncontroller myself, so this is untested). You can give each controller\ndifferent options like this:\n\n.. code-block:: bash\n\n $ ds4drv --led ff0000 --next-controller --led 00ff00\n\nThis will set the LED color to red on the first controller connected and\ngreen on the second.\n\n\nKnown issues/limitations\n------------------------\n\n- `Bluetooth 2.0 dongles are known to have issues, 2.1+ is recommended. `_\n- The controller will never be shut off, you need to do this manually by\n holding the PS button until the controller shuts off\n- No rumble support\n\n\nReferences\n----------\n\nThe DualShock 4 report format is not open and had to be reverse engineered.\nThese resources have been very helpful when creating ds4drv:\n\n- http://www.psdevwiki.com/ps4/DualShock_4\n- http://eleccelerator.com/wiki/index.php?title=DualShock_4\n- https://gist.github.com/johndrinkwater/7708901\n- https://github.com/ehd/node-ds4\n- http://forums.pcsx2.net/Thread-DS4-To-XInput-Wrapper\n\n\n----\n\n.. |dogecoin| image:: http://targetmoon.com/img/dogecoin.png\n :alt: Dogecoin\n :target: http://dogecoin.com/\n\n|dogecoin| DCbQgDa4aEbm9QNm4ix6zYV9vMirUDQLNj\n\n\n\n\nRelease history\n---------------\n\n0.5.1 (2016-04-30)\n^^^^^^^^^^^^^^^^^^\n\n- Fixed compatibility with python-evdev 0.6.0 (#70)\n- Fixed spurious input from unconnected devices (#59)\n\n\n0.5.0 (2014-03-07)\n^^^^^^^^^^^^^^^^^^\n\n- Added a ``--ignored-buttons`` option.\n- Added signal strength warnings to the log output.\n- Changed deadzone to 5 (down from 15).\n- Switched to event loop based report reading and timers.\n- Mouse movement should now be smoother since it is now based on a timer\n instead of relying on reports arriving at a constant rate.\n- Fixed issue where keys and buttons where not released on disconnect.\n- Fixed crash when hcitool returns non-ascii data.\n\n\n0.4.3 (2014-02-21)\n^^^^^^^^^^^^^^^^^^\n\n- A few performance improvements.\n- Fixed prev-profile action.\n\n\n0.4.2 (2014-02-15)\n^^^^^^^^^^^^^^^^^^\n\n- Fixed regressions in controller options handling causing issues\n with device creation and using joystick layouts in profiles.\n\n\n0.4.1 (2014-02-14)\n^^^^^^^^^^^^^^^^^^\n\n- Daemon mode was accidentally left on by default in ds4drv.conf.\n\n\n0.4.0 (2014-02-14)\n^^^^^^^^^^^^^^^^^^\n\n- Added ``--dump-reports`` option, patch by Lauri Niskanen.\n- Added support for binding buttons combos to special actions.\n- Fixed crash when multiple controllers where used.\n- Fixed python-evdev version requirement.\n- Fixed pyudev version requirement.\n- Fixed duplicate devices when connecting a USB cable to a already\n connected Bluetooth device in hidraw mode.\n- Improved mouse movement and configuration, patch by Lauri Niskanen.\n- Changed button combo behaviour slightly. Now triggers when the\n last button of a combo is released instead of waiting for the\n whole combo to be released.\n\n\n0.3.0 (2014-02-08)\n^^^^^^^^^^^^^^^^^^\n\n- Added hidraw mode, patch by Lauri Niskanen.\n- Added config file support.\n- Added custom button mapping.\n- Added profiles.\n\n- Fixed crash when using Python <2.7.4\n\n\n0.2.1 (2014-01-26)\n^^^^^^^^^^^^^^^^^^\n\n- Updated ds4drv.service to read a config file, patch by George Gibbs.\n- ``--led`` now accepts colors in the \"#ffffff\" format aswell.\n- Added status updates in the log, patch by Lauri Niskanen.\n\n\n0.2.0 (2014-01-24)\n^^^^^^^^^^^^^^^^^^\n\n- Added systemd service file, patch by George Gibbs.\n- Added options: ``--emulate-xboxdrv`` and ``--emulate-xpad-wireless``.\n- Fixed ``--emulate-xpad`` issues.\n\n\n0.1.1 (2014-01-12)\n^^^^^^^^^^^^^^^^^^\n\n- Fixed incorrect dpad parsing.\n- Handle uinput errors instead of printing exception.\n\n\n0.1.0 (2014-01-07)\n^^^^^^^^^^^^^^^^^^\n\n- First release.",
"description_content_type": null,
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/chrippa/ds4drv",
"keywords": "",
"license": "MIT",
"maintainer": "",
"maintainer_email": "",
"name": "ds4drv",
"package_url": "https://pypi.org/project/ds4drv/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/ds4drv/",
"project_urls": {
"Homepage": "https://github.com/chrippa/ds4drv"
},
"release_url": "https://pypi.org/project/ds4drv/0.5.1/",
"requires_dist": [
"evdev (>=0.3.0)",
"pyudev (>=0.16)"
],
"requires_python": "",
"summary": "A Sony DualShock 4 userspace driver for Linux",
"version": "0.5.1"
},
"last_serial": 2281530,
"releases": {
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "ee6fe7917eec642270ba29483e61cd57",
"sha256": "aa31a576bd5d3f0f76b8554fb86416e315bb3bec85ce839c007caefce3713acf"
},
"downloads": -1,
"filename": "ds4drv-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "ee6fe7917eec642270ba29483e61cd57",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7866,
"upload_time": "2014-01-07T20:59:13",
"url": "https://files.pythonhosted.org/packages/4b/39/3ab5cf7e53ffa3ace741ce97aed5150c18bfc08747366655253e3a1c3ac0/ds4drv-0.1.0.tar.gz"
}
],
"0.1.1": [
{
"comment_text": "",
"digests": {
"md5": "a3e21aeaea79b1faed0616d1ca015eed",
"sha256": "dfdc17c1a78e6ffa1a9823d4b117b46dca72e14d07ce594532f35b84984e6823"
},
"downloads": -1,
"filename": "ds4drv-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "a3e21aeaea79b1faed0616d1ca015eed",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 11711,
"upload_time": "2014-01-12T13:41:23",
"url": "https://files.pythonhosted.org/packages/f5/04/f4f246ac374d59cf5d03a631854b67140de0dd6b3a77cc02f8b8c4886589/ds4drv-0.1.1.tar.gz"
}
],
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "dab54e414e4a96ad7814e1555e97e52a",
"sha256": "79d2b27a146205a1bbe9f01626847e8d2f763d3b04962a6feafe430772e37525"
},
"downloads": -1,
"filename": "ds4drv-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "dab54e414e4a96ad7814e1555e97e52a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13419,
"upload_time": "2014-01-23T23:21:21",
"url": "https://files.pythonhosted.org/packages/0e/1f/07152d3d48d8941d737308ade4e2b4bd682dda8c50a05aa92b0e8e3aa36c/ds4drv-0.2.0.tar.gz"
}
],
"0.2.1": [
{
"comment_text": "",
"digests": {
"md5": "361483cddfbbc7ed259ea31250ddf061",
"sha256": "3d001ebec3c75a31b9a67e9ff60073c49052ef439059b6beb93dace7d3c3c1fb"
},
"downloads": -1,
"filename": "ds4drv-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "361483cddfbbc7ed259ea31250ddf061",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14690,
"upload_time": "2014-01-26T13:33:17",
"url": "https://files.pythonhosted.org/packages/57/b2/1cd3c405dbbeda634666b3ebda5568f931cc054d8497b3b14a86100d8050/ds4drv-0.2.1.tar.gz"
}
],
"0.3.0": [
{
"comment_text": "",
"digests": {
"md5": "5e79c90a38646fbe9f29430927639665",
"sha256": "b9559305533ac75149ca7f63396c551ad67d6bff172180159cd0a0f77b5a7bbe"
},
"downloads": -1,
"filename": "ds4drv-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "5e79c90a38646fbe9f29430927639665",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18060,
"upload_time": "2014-02-08T01:08:41",
"url": "https://files.pythonhosted.org/packages/44/33/2317e945fb55923694a3c27b49c57e36f407e3e58e0da159f833b1bb7d3b/ds4drv-0.3.0.tar.gz"
}
],
"0.4.0": [
{
"comment_text": "",
"digests": {
"md5": "a0f1f1c6ba2d9214c7a133439e3777ab",
"sha256": "c5650bb19ab04ee6ef99fb17f84a70487d83006f31d487669973c06db588b976"
},
"downloads": -1,
"filename": "ds4drv-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "a0f1f1c6ba2d9214c7a133439e3777ab",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 21007,
"upload_time": "2014-02-14T21:25:54",
"url": "https://files.pythonhosted.org/packages/d4/48/7bb6d283b9b8390dc095d135d9ff84fa359d0e7dbd62d1fa85361713bb47/ds4drv-0.4.0.tar.gz"
}
],
"0.4.1": [
{
"comment_text": "",
"digests": {
"md5": "29b4fe5a390a9ee06d32d5a0c657822c",
"sha256": "a662969fdf0717f5452721fa3ec41843ab733f0a9efe18cad8a8b8e40b58d769"
},
"downloads": -1,
"filename": "ds4drv-0.4.1.tar.gz",
"has_sig": false,
"md5_digest": "29b4fe5a390a9ee06d32d5a0c657822c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 21080,
"upload_time": "2014-02-14T21:37:10",
"url": "https://files.pythonhosted.org/packages/7e/5a/3c6b6d2470e3bf4026de01c8d9eda4ea3e743e9245402e1effd55ffc5791/ds4drv-0.4.1.tar.gz"
}
],
"0.4.2": [
{
"comment_text": "",
"digests": {
"md5": "8c2d210023f27872ba28e04f1ecb5cc4",
"sha256": "15f87731ea7559d5e236505b98e007f987274891d6f37bbcd4dfb51c37723d6a"
},
"downloads": -1,
"filename": "ds4drv-0.4.2.tar.gz",
"has_sig": false,
"md5_digest": "8c2d210023f27872ba28e04f1ecb5cc4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 21183,
"upload_time": "2014-02-15T16:22:33",
"url": "https://files.pythonhosted.org/packages/cf/98/47f1a94e72b4d391be75db5280f451897ee4b2f3de1009f0229ee22a6bee/ds4drv-0.4.2.tar.gz"
}
],
"0.4.3": [
{
"comment_text": "",
"digests": {
"md5": "3be7a154d94372613f6daa46a3bfccb8",
"sha256": "b0caf422e8b5a1dff232bc065ab2b7fa79e8b1531a40437a763d55ecf4bde9ef"
},
"downloads": -1,
"filename": "ds4drv-0.4.3.tar.gz",
"has_sig": false,
"md5_digest": "3be7a154d94372613f6daa46a3bfccb8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 21351,
"upload_time": "2014-02-20T23:34:21",
"url": "https://files.pythonhosted.org/packages/10/45/fe8bc3c030249325e4c408618563f7b689eba3be0d34dd1499c755118502/ds4drv-0.4.3.tar.gz"
}
],
"0.5.0": [
{
"comment_text": "",
"digests": {
"md5": "705d48f45634f9dbd3f40c8876fb2c96",
"sha256": "6bf09a2710ae47fae48248ebd97ce43289af14e69ba43d6c36aaff047ef80237"
},
"downloads": -1,
"filename": "ds4drv-0.5.0.tar.gz",
"has_sig": false,
"md5_digest": "705d48f45634f9dbd3f40c8876fb2c96",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 25807,
"upload_time": "2014-03-07T00:59:33",
"url": "https://files.pythonhosted.org/packages/f3/91/5811c4f9d1ece2b74c28cc1f702be76cc2bac1c2b5e5de8465de438ada26/ds4drv-0.5.0.tar.gz"
}
],
"0.5.1": [
{
"comment_text": "",
"digests": {
"md5": "8153c6776573d7b78cb2a2ee2ee7a28f",
"sha256": "b3815cac4c31bc078173165d97a3f0bbca60fa34d69bbbf1da9d8b344452e9c9"
},
"downloads": -1,
"filename": "ds4drv-0.5.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "8153c6776573d7b78cb2a2ee2ee7a28f",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 36443,
"upload_time": "2016-08-15T05:51:03",
"url": "https://files.pythonhosted.org/packages/80/dc/1984b76e163fba5639a8650a00616d59db707f8396b713b93d4c2445bdd5/ds4drv-0.5.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "1a06074a168bc3633c74814a03053d3a",
"sha256": "ad541231fc511349cb43a2da7d5c5e0357a4fbc94b21cd812baca7282d5812ed"
},
"downloads": -1,
"filename": "ds4drv-0.5.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1a06074a168bc3633c74814a03053d3a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 36437,
"upload_time": "2016-04-30T11:15:51",
"url": "https://files.pythonhosted.org/packages/05/62/68d78b88dfec8917e678ae7d516a603af169e83d58b4572006cc084ea0ce/ds4drv-0.5.1-py3-none-any.whl"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "8153c6776573d7b78cb2a2ee2ee7a28f",
"sha256": "b3815cac4c31bc078173165d97a3f0bbca60fa34d69bbbf1da9d8b344452e9c9"
},
"downloads": -1,
"filename": "ds4drv-0.5.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "8153c6776573d7b78cb2a2ee2ee7a28f",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 36443,
"upload_time": "2016-08-15T05:51:03",
"url": "https://files.pythonhosted.org/packages/80/dc/1984b76e163fba5639a8650a00616d59db707f8396b713b93d4c2445bdd5/ds4drv-0.5.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "1a06074a168bc3633c74814a03053d3a",
"sha256": "ad541231fc511349cb43a2da7d5c5e0357a4fbc94b21cd812baca7282d5812ed"
},
"downloads": -1,
"filename": "ds4drv-0.5.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1a06074a168bc3633c74814a03053d3a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 36437,
"upload_time": "2016-04-30T11:15:51",
"url": "https://files.pythonhosted.org/packages/05/62/68d78b88dfec8917e678ae7d516a603af169e83d58b4572006cc084ea0ce/ds4drv-0.5.1-py3-none-any.whl"
}
]
}