{"id":13834363,"url":"https://github.com/nowrep/dualsensectl","last_synced_at":"2025-05-16T18:06:13.584Z","repository":{"id":39782731,"uuid":"384033062","full_name":"nowrep/dualsensectl","owner":"nowrep","description":"Linux tool for controlling PS5 DualSense controller","archived":false,"fork":false,"pushed_at":"2025-02-08T08:19:41.000Z","size":75,"stargazers_count":280,"open_issues_count":9,"forks_count":21,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-05-16T18:05:34.877Z","etag":null,"topics":["dualsense","linux"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nowrep.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-08T07:05:45.000Z","updated_at":"2025-05-15T10:59:14.000Z","dependencies_parsed_at":"2024-01-18T07:11:00.964Z","dependency_job_id":"7f1f3432-a0b3-4a64-8e00-2b8bdabaa6d0","html_url":"https://github.com/nowrep/dualsensectl","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nowrep%2Fdualsensectl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nowrep%2Fdualsensectl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nowrep%2Fdualsensectl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nowrep%2Fdualsensectl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nowrep","download_url":"https://codeload.github.com/nowrep/dualsensectl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254582904,"owners_count":22095518,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dualsense","linux"],"created_at":"2024-08-04T14:00:31.056Z","updated_at":"2025-05-16T18:06:13.559Z","avatar_url":"https://github.com/nowrep.png","language":"C","readme":"# DualSense Control\n\nLinux tool for controlling Sony PlayStation 5 DualSense controller.\n\n    Usage: dualsensectl [options] command [ARGS]\n\n    Options:\n      -l                                       List available devices\n      -d DEVICE                                Specify which device to use\n      -w                                       Wait for shell command to complete (monitor only)\n      -h --help                                Show this help message\n      -v --version                             Show version\n    Commands:\n      power-off                                Turn off the controller (BT only)\n      battery                                  Get the controller battery level\n      info                                     Get the controller firmware info\n      lightbar STATE                           Enable (on) or disable (off) lightbar\n      lightbar RED GREEN BLUE [BRIGHTNESS]     Set lightbar color and brightness (0-255)\n      player-leds NUMBER                       Set player LEDs (1-5) or disabled (0)\n      microphone STATE                         Enable (on) or disable (off) microphone\n      microphone-led STATE                     Enable (on) or disable (off) microphone LED\n      speaker STATE                            Toggle to 'internal' speaker, 'headphone' or both\n      volume VOLUME                            Set audio volume (0-255) of internal speaker and headphone\n      attenuation RUMBLE TRIGGER               Set the attenuation (0-7) of rumble/haptic motors and trigger vibration\n      trigger TRIGGER off                      remove all effects\n      trigger TRIGGER feedback POSITION STRENGTH  set a resistance starting at position with a defined strength\n      trigger TRIGGER weapon START STOP STRENGTH  Emulate weapon like gun trigger\n      trigger TRIGGER bow START STOP STRENGTH SNAPFORCE    Emulate weapon like bow\n      trigger TRIGGER galloping START STOP FIRST_FOOT SECOND_FOOT FREQUENCY    Emulate a galloping\n      trigger TRIGGER machine START STOP STRENGTH_A STRENGTH_B FREQUENCY PERIOD    Switch vibration between to strength at a specified period\n      trigger TRIGGER vibration POSITION AMPLITUDE FREQUENCY  Vibrates motor arm around specified position\n      trigger TRIGGER feedback-raw STRENGTH[10]  set a resistance starting using array of strength\n      trigger TRIGGER vibration-raw AMPLITUDE[10] FREQUENCY  Vibrates motor arm at position and strength specified by an array of amplitude\n      trigger TRIGGER MODE [PARAMS]            set the trigger (left, right or both) mode with parameters (up to 9)\n      monitor [add COMMAND] [remove COMMAND]   Run shell command COMMAND on add/remove events\n\n\nAUR: [dualsensectl-git](https://aur.archlinux.org/packages/dualsensectl-git/)\n\n### Dependencies\n\n* meson\n* libhidapi-hidraw\n* libdbus-1\n* libudev\n\n### Building\n\n    meson setup build\n    cd build\n    ninja\n    ninja install\n\n### udev rules\n\nAlso installed by Steam, so you may already have it configured. If not, create `/etc/udev/rules.d/70-dualsensectl.rules`:\n\n    # PS5 DualSense controller over USB hidraw\n    KERNEL==\"hidraw*\", ATTRS{idVendor}==\"054c\", ATTRS{idProduct}==\"0ce6\", MODE=\"0660\", TAG+=\"uaccess\"\n\n    # PS5 DualSense controller over bluetooth hidraw\n    KERNEL==\"hidraw*\", KERNELS==\"*054C:0CE6*\", MODE=\"0660\", TAG+=\"uaccess\"\n\n    # PS5 DualSense Edge controller over USB hidraw\n    KERNEL==\"hidraw*\", ATTRS{idVendor}==\"054c\", ATTRS{idProduct}==\"0df2\", MODE=\"0660\", TAG+=\"uaccess\"\n\n    # PS5 DualSense Edge controller over bluetooth hidraw\n    KERNEL==\"hidraw*\", KERNELS==\"*054C:0DF2*\", MODE=\"0660\", TAG+=\"uaccess\"\n\nUse `sudo udevadm trigger` to refresh udev rules without rebooting\n\n### Credit\n\nthe following docs:\n - https://controllers.fandom.com/wiki/Sony_DualSense/Data_Structures\n - https://gist.github.com/Nielk1/6d54cc2c00d2201ccb8c2720ad7538db\n","funding_links":[],"categories":["Dependencies","C"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnowrep%2Fdualsensectl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnowrep%2Fdualsensectl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnowrep%2Fdualsensectl/lists"}