{"id":13647280,"url":"https://github.com/soyersoyer/cameractrls","last_synced_at":"2025-05-15T10:01:27.431Z","repository":{"id":37969469,"uuid":"499556542","full_name":"soyersoyer/cameractrls","owner":"soyersoyer","description":"Camera controls for Linux ","archived":false,"fork":false,"pushed_at":"2025-03-31T16:37:41.000Z","size":6629,"stargazers_count":687,"open_issues_count":29,"forks_count":27,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-14T16:53:43.372Z","etag":null,"topics":["camera","kiyo-pro","linux","linux-desktop","logitech","razer","v4l2","video-camera"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/soyersoyer.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null}},"created_at":"2022-06-03T15:13:42.000Z","updated_at":"2025-04-14T09:16:56.000Z","dependencies_parsed_at":"2023-11-19T02:33:38.963Z","dependency_job_id":"6e9126d5-4eb3-44d7-be47-2522b51e1a7e","html_url":"https://github.com/soyersoyer/cameractrls","commit_stats":{"total_commits":393,"total_committers":9,"mean_commits":"43.666666666666664","dds":"0.020356234096692072","last_synced_commit":"20a294afe684d20180da50b2c575c0bcde1a27ad"},"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soyersoyer%2Fcameractrls","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soyersoyer%2Fcameractrls/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soyersoyer%2Fcameractrls/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soyersoyer%2Fcameractrls/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/soyersoyer","download_url":"https://codeload.github.com/soyersoyer/cameractrls/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254319715,"owners_count":22051072,"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":["camera","kiyo-pro","linux","linux-desktop","logitech","razer","v4l2","video-camera"],"created_at":"2024-08-02T01:03:27.779Z","updated_at":"2025-05-15T10:01:26.817Z","avatar_url":"https://github.com/soyersoyer.png","language":"Python","funding_links":[],"categories":[":clapper: Video Production","Python","Video"],"sub_categories":["Tools","Video Tools"],"readme":"# cameractrls\n\n\u003cimg align='left' height='140' src='https://github.com/soyersoyer/cameractrls/raw/main/pkg/hu.irl.cameractrls.svg'\u003e\n\nCamera controls for Linux\n\nIt's a standalone Python CLI and GUI (GTK3, GTK4) and camera Viewer (SDL) to set the camera controls in Linux. It can set the V4L2 controls and it is extendable with the non standard controls. Currently it has a Logitech extension (LED mode, LED frequency, BRIO FoV, Relative Pan/Tilt, PTZ presets), Kiyo Pro extension (HDR, HDR mode, FoV, AF mode, Save), Dell UltraSharp WB7022 extension, Preset extension (Save and restore controls), Control Restore Daemon (to restore presets at device connection).\n\n# Installation\n\n## From Flathub\n\n\u003ca href='https://flathub.org/apps/details/hu.irl.cameractrls'\u003e\u003cimg width='240' alt='Download on Flathub' src='https://flathub.org/assets/badges/flathub-badge-en.png'/\u003e\u003c/a\u003e\n\n```\nflatpak install flathub hu.irl.cameractrls\n```\n\n## From Arch package repository\n\n```\npacman -S cameractrls\n```\n\n## From Manjaro package repository\n\n```\npamac install cameractrls\n```\n\n## Git Install method\n\nInstall the dependencies via apt:\n```shell\nsudo apt install git libsdl2-2.0-0 libturbojpeg\n```\n\nor via dnf:\n```shell\nsudo dnf install git SDL2 turbojpeg\n```\n\nClone the repo\n```shell\ngit clone https://github.com/soyersoyer/cameractrls.git\ncd cameractrls\n```\n\n# cameractrlsgtk\nGTK3 GUI for the Camera controls\n\n\u003cimg alt=\"cameractrls launcher\" src=\"https://github.com/soyersoyer/cameractrls/raw/main/screenshots/gui_launcher.png\" width=\"200\"\u003e\n\n\u003cdiv\u003e\n\u003cimg alt=\"cameractrls crop screen\" src=\"https://github.com/soyersoyer/cameractrls/raw/main/screenshots/gui_screen_gtk_1.png\" width=\"380\"\u003e\n\u003cimg alt=\"cameractrls image screen\" src=\"https://github.com/soyersoyer/cameractrls/raw/main/screenshots/gui_screen_gtk_2.png\" width=\"380\"\u003e\n\u003cimg alt=\"cameractrls exposure screen\" src=\"https://github.com/soyersoyer/cameractrls/raw/main/screenshots/gui_screen_gtk_3.png\" width=\"380\"\u003e\n\u003cimg alt=\"cameractrls advanced screen\" src=\"https://github.com/soyersoyer/cameractrls/raw/main/screenshots/gui_screen_gtk_4.png\" width=\"380\"\u003e\n\u003cimg alt=\"cameractrls capture screen\" src=\"https://github.com/soyersoyer/cameractrls/raw/main/screenshots/gui_screen_gtk_5.png\" width=\"380\"\u003e\n\u003cimg alt=\"cameractrls PTZ controls\" src=\"https://github.com/soyersoyer/cameractrls/raw/main/screenshots/gui_screen_gtk_6.png\" width=\"380\"\u003e\n\u003c/div\u003e\n\n### GTK3 GUI install\n\nAdd desktop file to the launcher\n```shell\ndesktop-file-install --dir=\"$HOME/.local/share/applications\" \\\n--set-key=Exec --set-value=\"$PWD/cameractrlsgtk.py\" \\\n--set-key=Path --set-value=\"$PWD\" \\\n--set-key=Icon --set-value=\"$PWD/pkg/hu.irl.cameractrls.svg\" \\\npkg/hu.irl.cameractrls.desktop\n```\n\nRun from the launcher or from the shell\n```shell\n./cameractrlsgtk.py\n```\n\n### GTK4 GUI install (experimental)\n\nAdd desktop file to the launcher\n```shell\ndesktop-file-install --dir=\"$HOME/.local/share/applications\" \\\n--set-key=Exec --set-value=\"$PWD/cameractrlsgtk4.py\" \\\n--set-key=Path --set-value=\"$PWD\" \\\n--set-key=Icon --set-value=\"$PWD/pkg/hu.irl.cameractrls.svg\" \\\npkg/hu.irl.cameractrls.desktop\n```\n\nRun from the launcher or from the shell\n```shell\n./cameractrlsgtk4.py\n```\n\n# cameractrls.py\n\nThe CLI.\n\nRun the cameractrls\n```shell\n./cameractrls.py\n```\n```\nusage: ./cameractrls.py [--help] [-d DEVICE] [--list] [-c CONTROLS]\n\noptional arguments:\n  -h, --help         show this help message and exit\n  -d DEVICE          use DEVICE, default /dev/video0\n  -l, --list         list the controls and values\n  -L, --list-devices list capture devices\n  -c CONTROLS        set CONTROLS (eg.: hdr=on,fov=wide)\n\nexample:\n  ./cameractrls.py -c brightness=128,kiyo_pro_hdr=on,kiyo_pro_fov=wide\n```\n\n# cameractrlsd.py\n\nThe control restore daemon.\n\nAdd it to SystemD/Desktop portal with the GUI/CLI.\n\n# cameraview.py\n\nThe camera viewer.\n\n```shell\n./cameraview.py -h\n```\n```\nusage: ./cameraview.py [--help] [-d DEVICE] [-s SIZE] [-r ANGLE] [-m FLIP] [-c COLORMAP]\n\noptional arguments:\n  -h, --help         show this help message and exit\n  -d DEVICE          use DEVICE, default /dev/video0\n  -s SIZE            put window inside SIZE rectangle (wxh), default unset\n  -r ANGLE           rotate the image by ANGLE, default 0\n  -m FLIP            mirror the image by FLIP, default no, (no, h, v, hv)\n  -c COLORMAP        set colormap, default none\n                    (none, grayscale, inferno, viridis, ironblack, rainbow)\n\nexample:\n  ./cameraview.py -d /dev/video2\n\nshortcuts:\n  f: toggle fullscreen\n  r: ANGLE +90 (shift+r -90)\n  m: FLIP next (shift+m prev)\n  c: COLORMAP next (shift+c prev)\n```\n\n# PTZ controls\n\n## Keyboard\n\nControl your PTZ camera with the arrow keys/keypad keys/wasd/Home/End/PageUp/PageDown/+/-/Ctrl++/Ctrl+- of your keyboard while one of the PTZ control is in focus or in the cameraview window.\n\nUse Alt+PresetNum to select a preset for logitech_pantilt_preset.\n\n## 3Dconnexion SpaceMouse\n\nControl your camera with your 6DoF [SpaceMouse](https://3dconnexion.com/product/spacemouse-compact/).\n\n```\nZ =\u003e zoom_absolute\nX =\u003e pan_absolute\nY =\u003e tilt_absolute\nRY =\u003e pan_speed\nRX =\u003e tilt_speed\nBTN1 =\u003e PTZ reset\n```\n\nIt requires spacenavd and libspnav. (optional, only if you have a SpaceMouse)\n\n```shell\nsudo apt install spacenavd libspnav0\nsudo cp /usr/share/doc/spacenavd/examples/example-spnavrc /etc/spnavrc\n```\n\nor via dnf:\n```shell\nsudo dnf install spacenavd libspnav\nsudo cp /usr/share/doc/spacenavd/example-spnavrc /etc/spnavrc\n```\n\ntip: set `led = auto` in /etc/spnavrc\n\n## Game Controllers\n\nControl you camera with your Game Controller ([PS5 DualSense](https://www.playstation.com/accessories/dualsense-wireless-controller/)/[Xbox controller](https://www.xbox.com/accessories/controllers/xbox-wireless-controller)/etc)\n\n```\nLeft Stick =\u003e pan_speed/tilt_speed or pan_absolute/tilt_absolute\nRight Stick =\u003e pan_absolute/tilt_absolute\nDPAD =\u003e pan_absolute/tilt_absolute\nLeft/Right Trigger =\u003e zoom_absolute\nSouth/East/West/North/Left Shoulder/Right Shoulder/Back/Start =\u003e PTZ Presets 1-8\nGuide =\u003e PTZ Reset\n```\n\n## MIDI Controllers\n\nControl you camera with your MIDI Controller (e.g. [MPK Mini](https://www.akaipro.com/mpk-mini-mk3.html) or [Arturias](https://www.arturia.com/products?categories=hybrid-synths) or any with configurable knobs/joys)\n\nConfigure with [SysEx Controls](https://github.com/soyersoyer/sysex-controls) or [MPK3 Settings](https://github.com/tsmetana/mpk3-settings) your MIDI Controller as follows:\n\n```\nWith joystick:\nCC78 =\u003e pan_speed/pan_absolute\nCC79 =\u003e tilt_speed/tilt_absolute\n\nWith absolute knobs (knob values: 0-127):\nCC71 =\u003e pan_absolute\nCC72 =\u003e tilt_absolute\nCC73 =\u003e zoom_absolute\n\nWith relative knobs (knob values: INC:1 DEC:127):\nCC70 =\u003e pan_speed\nCC74 =\u003e tilt_speed\nCC75 =\u003e pan_absolute\nCC76 =\u003e tilt_absolute\nCC77 =\u003e zoom_absolute\n\nCC121 =\u003e PTZ reset\nPGM0-7 =\u003e PTZ presets 1-8\n```\n\n# Update cameractrls\n\n```shell\ngit pull\n```\n\n# Update from 0.5.x -\u003e 0.6.x\n\nDisable, stop and delete the old systemd paths, services:\n```shell\ncd ~/.config/systemd/user\nsystemctl --user disable --now cameractrls-*\nrm cameractrls-*\n```\n\n# Delete cameractrls\n\nDisable, stop and delete the systemd service:\n```shell\ncd ~/.config/systemd/user\nsystemctl --user disable --now cameractrlsd.service\nrm cameractrlsd.service\n```\n\nRemove launcher shortcut\n```shell\nrm ~/.local/share/applications/hu.irl.cameractrls.desktop\n```\n\nDelete the cameractrls:\n```shell\nrm -rf cameractrls\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoyersoyer%2Fcameractrls","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoyersoyer%2Fcameractrls","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoyersoyer%2Fcameractrls/lists"}