Name | controller-companion JSON |
Version |
0.7.6
JSON |
| download |
home_page | None |
Summary | Python app for assigning shortcut actions to game controllers. |
upload_time | 2025-01-10 21:35:15 |
maintainer | None |
docs_url | None |
author | Johannes Gundlach |
requires_python | <3.14,>=3.9 |
license | None |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
[![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://choosealicense.com/licenses/mit/)
[![PyPI version](https://badge.fury.io/py/controller-companion.svg)](https://pypi.org/project/controller-companion/)
# Controller Companion
Easily create controller shortcuts to perform actions on your computer, such as using the controller to quit a game (that does not have a quit option), control the volume, or toggle full screen.
The following actions are supported
- Terminate a task by its name.
- Execute a keyboard shortcut.
- Execute any console command.
## Features
- GUI and CLI options available
- Supports a wide range of controllers (those supported by [pygame](https://www.pygame.org))
- Runs on Windows, Linux and Mac
- Autostart app on system startup (Windows only for now)
- GUI app can be compiled as standalone executable (using [PyInstaller](https://pyinstaller.org))
## Screenshots
### Main Window
![demo](https://raw.githubusercontent.com/Johannes11833/controller-companion/master/demo/app.png)
### Create a new shortcut
![demo](https://raw.githubusercontent.com/Johannes11833/controller-companion/master/demo/add_new_shortcut.png)
## How to install
- Using pip:
```console
pip install controller-companion
```
- For the GUI version, executables are also available [here](https://github.com/Johannes11833/controller-companion/releases) for Windows, Mac and Linux. An installer is also available for Windows.
## How to run
- CLI and GUI versions available
- CLI:
- Multiple shortcuts can be created.
- One or multiple input controller key combination that triggers an action can be defined using --input. The keys of one individual input combination are separated by commas, while each distinct input combination is separated by a space.
- One or multiple actions can be defined using either `--task-kill`, `--console` or `--shortcut`. These actions will be mapped to the previously defined controller `--input` key combinations in the order `--task-kill`, `--console` and finally `--shortcut`
- Example with 2 shortcuts:
```console
controller_companion --input A,B Back,Left --console explorer.exe --shortcut alt+f4
```
will result in the following mapping:
```console
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━┓
┃ Name ┃ Shortcut ┃ Action ┃ Type ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━┩
│ Run command "explorer.exe" │ A+B │ explorer.exe │ Xbox │
│ Shortcut "alt+f4" │ Back+Left │ alt+f4 │ Xbox │
└────────────────────────────┴───────────┴──────────────┴──────┘
```
- Run `controller_companion --help` to see all available arguments
## Build Executable
With [poetry](https://python-poetry.org/) installed, run the following command to build the executable using [PyInstaller](https://pyinstaller.org):
```console
poetry run build_controller_companion_executable
```
## Credits
- Gamepad button icons (Xbox & PlayStation): https://80.lv/articles/free-button-icons-for-unreal-engine-and-unity
Raw data
{
"_id": null,
"home_page": null,
"name": "controller-companion",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.14,>=3.9",
"maintainer_email": null,
"keywords": null,
"author": "Johannes Gundlach",
"author_email": "24914225+Johannes11833@users.noreply.github.com",
"download_url": "https://files.pythonhosted.org/packages/67/85/4c08f667e306f066268fa109edbc26f52d601a01c8f4d302927c3829ed90/controller_companion-0.7.6.tar.gz",
"platform": null,
"description": "[![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://choosealicense.com/licenses/mit/)\n[![PyPI version](https://badge.fury.io/py/controller-companion.svg)](https://pypi.org/project/controller-companion/)\n\n# Controller Companion\n\nEasily create controller shortcuts to perform actions on your computer, such as using the controller to quit a game (that does not have a quit option), control the volume, or toggle full screen.\n\nThe following actions are supported\n- Terminate a task by its name.\n- Execute a keyboard shortcut.\n- Execute any console command.\n\n## Features\n- GUI and CLI options available\n- Supports a wide range of controllers (those supported by [pygame](https://www.pygame.org))\n- Runs on Windows, Linux and Mac\n- Autostart app on system startup (Windows only for now)\n- GUI app can be compiled as standalone executable (using [PyInstaller](https://pyinstaller.org))\n\n## Screenshots\n### Main Window\n![demo](https://raw.githubusercontent.com/Johannes11833/controller-companion/master/demo/app.png)\n### Create a new shortcut \n![demo](https://raw.githubusercontent.com/Johannes11833/controller-companion/master/demo/add_new_shortcut.png)\n\n\n## How to install\n- Using pip:\n ```console\n pip install controller-companion\n ```\n- For the GUI version, executables are also available [here](https://github.com/Johannes11833/controller-companion/releases) for Windows, Mac and Linux. An installer is also available for Windows.\n\n## How to run\n- CLI and GUI versions available\n- CLI:\n - Multiple shortcuts can be created.\n - One or multiple input controller key combination that triggers an action can be defined using --input. The keys of one individual input combination are separated by commas, while each distinct input combination is separated by a space. \n - One or multiple actions can be defined using either `--task-kill`, `--console` or `--shortcut`. These actions will be mapped to the previously defined controller `--input` key combinations in the order `--task-kill`, `--console` and finally `--shortcut`\n - Example with 2 shortcuts: \n ```console\n controller_companion --input A,B Back,Left --console explorer.exe --shortcut alt+f4\n ```\n will result in the following mapping:\n ```console\n \u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n \u2503 Name \u2503 Shortcut \u2503 Action \u2503 Type \u2503\n \u2521\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2529\n \u2502 Run command \"explorer.exe\" \u2502 A+B \u2502 explorer.exe \u2502 Xbox \u2502\n \u2502 Shortcut \"alt+f4\" \u2502 Back+Left \u2502 alt+f4 \u2502 Xbox \u2502\n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n ```\n\n - Run `controller_companion --help` to see all available arguments\n\n## Build Executable\nWith [poetry](https://python-poetry.org/) installed, run the following command to build the executable using [PyInstaller](https://pyinstaller.org):\n```console \npoetry run build_controller_companion_executable\n```\n\n## Credits\n- Gamepad button icons (Xbox & PlayStation): https://80.lv/articles/free-button-icons-for-unreal-engine-and-unity\n",
"bugtrack_url": null,
"license": null,
"summary": "Python app for assigning shortcut actions to game controllers.",
"version": "0.7.6",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "43343fb48a1bd582418a5e222d16496a9cec36aa8097169853d0dc4aef0c87d0",
"md5": "d58af90ee4d86c56dddf939db7d9da97",
"sha256": "148d14ff01a160f36d2c5b96586dd38b8b5fc6be361ac2231abd7b7d372afb88"
},
"downloads": -1,
"filename": "controller_companion-0.7.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d58af90ee4d86c56dddf939db7d9da97",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.14,>=3.9",
"size": 433027,
"upload_time": "2025-01-10T21:35:12",
"upload_time_iso_8601": "2025-01-10T21:35:12.601135Z",
"url": "https://files.pythonhosted.org/packages/43/34/3fb48a1bd582418a5e222d16496a9cec36aa8097169853d0dc4aef0c87d0/controller_companion-0.7.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "67854c08f667e306f066268fa109edbc26f52d601a01c8f4d302927c3829ed90",
"md5": "e61ba221dca69b6a163e07bc125024d2",
"sha256": "4cff926d2cec8589ab5a7d3d98f13c752b78e5b12d77a4387a08f42a8ad2ed75"
},
"downloads": -1,
"filename": "controller_companion-0.7.6.tar.gz",
"has_sig": false,
"md5_digest": "e61ba221dca69b6a163e07bc125024d2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.14,>=3.9",
"size": 418223,
"upload_time": "2025-01-10T21:35:15",
"upload_time_iso_8601": "2025-01-10T21:35:15.811748Z",
"url": "https://files.pythonhosted.org/packages/67/85/4c08f667e306f066268fa109edbc26f52d601a01c8f4d302927c3829ed90/controller_companion-0.7.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-10 21:35:15",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "controller-companion"
}