- Shell 58%
- QML 26.9%
- Python 15.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| bin | ||
| icons | ||
| package | ||
| screenshots | ||
| .gitignore | ||
| install.sh | ||
| LICENSE | ||
| README.md | ||
DJI Osmo Pocket 3 – KDE Plasma 6 Steuer-Widget
Ein Plasmoid (Panel-Widget) für KDE Plasma 6 / Wayland, mit dem sich eine per USB angeschlossene DJI Osmo Pocket 3 (Webcam-Modus) direkt aus der Kontrollleiste steuern lässt – Pan, Tilt und Zoom über einen Joystick, plus gespeicherte Positionen. Gedacht für Situationen, in denen das nutzende Programm (z. B. Google Meet, OBS, Zoom) die Kamerabewegung selbst nicht steuern kann.
Klick auf das Leisten-Icon öffnet ein Popup direkt darüber – genau wie die native Medienwiedergabe.
Screenshots
| Popup (Kamera verbunden) | Keine Kamera (Icon ausgegraut) |
|---|---|
![]() |
![]() |
Links das Popup mit Joystick (Pan/Tilt), Zoom-Regler, Zentrieren und den gespeicherten Positionen. Rechts der Zustand ohne verbundene Kamera: Das Leisten-Icon wird entsättigt/grau dargestellt und alle Bedienelemente sind deaktiviert.
Funktionen
- Joystick für Pan/Tilt – leicht auslenken = langsam/präzise, weiter = schneller
- Zoom-Schieberegler (1×–4×)
- Zentrieren (Pan/Tilt = 0)
- Gespeicherte Positionen (Presets): benennen, per Klick anfahren, löschen
- Mehrere Kameras: Auswahlbox erscheint automatisch bei mehr als einer steuerbaren Kamera
- Kein Gerät verbunden → alle Bedienelemente und das Leisten-Icon werden ausgegraut
- Live-Statusanzeige (Pan/Tilt in Grad, Zoom in ×)
Technik
Die Pocket 3 gibt im Webcam-Modus die UVC-Controls pan_absolute,
tilt_absolute und zoom_absolute frei. Das Widget steuert sie über
v4l2-ctl. Die Einheit ist Bogensekunden (3600 = 1°).
bin/dji-pocket-ctl– Python-CLI-Backend (Geräteerkennung, v4l2-ctl, Presets-JSON). Befehle:devices,get,limits,status,set,jog,center,presets,preset-save|apply|delete; optional--dev /dev/videoN.package/– das QML-Plasmoid (Joystick, Zoom, Presets, Geräteauswahl, Ausgrau-Logik; nutztplasma5supportexecutable-engine undQtQuick.EffectsMultiEffect für das graue Icon).icons/dji-pocket.svg– Widget-Icon (Pocket-3-Stil mit „dji").install.sh– selbst-enthaltender Installer (bettet alle Dateien ein, passt Pfade an den Benutzer an, frischt Caches auf, lädt Plasma neu).
Installation
Voraussetzungen (Arch/CachyOS): v4l-utils python plasma-workspace kpackage plasma5support
./install.sh
Danach das Widget in die Leiste holen: Rechtsklick auf die Kontrollleiste → Widgets hinzufügen… → nach „DJI" / „Pocket" suchen → auf die Leiste ziehen.
Deinstallieren
./install.sh --uninstall # Plasmoid/CLI/Icon entfernen, Positionen bleiben
./install.sh --uninstall --purge # zusätzlich gespeicherte Positionen löschen
Gespeicherte Positionen liegen in ~/.config/dji-pocket/presets.json.
Plasmoid nach Code-Änderungen neu laden
systemctl --user restart plasma-plasmashell
Grenzen (per USB nicht möglich)
- Tracking / ActiveTrack – nicht als UVC-Control freigegeben.
- Ausschalten / Sleep – an die Bluetooth-Funkschicht bzw. das Gerät gebunden, über USB nicht erreichbar.
- Roll-Achse – wird von der Kamera angekündigt, aber vom Linux-Kernel mangels V4L2-Control nicht gemappt.
- Pan-Bereich ≈ −35°…+215° (Firmware-Grenze, ~110° toter Winkel hinten).
Diese Funktionen laufen bei DJI nur über das proprietäre DUML-Protokoll (Bluetooth/Mimo-App) bzw. direkt am Gerät.
Lizenz
MIT – siehe LICENSE.

