controller-companion


Namecontroller-companion JSON
Version 0.7.6 PyPI version JSON
download
home_pageNone
SummaryPython app for assigning shortcut actions to game controllers.
upload_time2025-01-10 21:35:15
maintainerNone
docs_urlNone
authorJohannes Gundlach
requires_python<3.14,>=3.9
licenseNone
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"
}
        
Elapsed time: 0.48531s