Files
insta360-link-tools/plasmoid/package/contents/config/main.xml
T
brad f95853dc25 Add GPL-3.0 licensing and prepare for a public repository
metadata.json claimed MIT while no LICENSE file existed, so the repository
had no effective licence at all. It is now GPL-3.0-or-later: the full FSF
text in LICENSE, the identifier in metadata.json, and REUSE-style
SPDX-FileCopyrightText and SPDX-License-Identifier headers on all 33 source
files, which is the convention KDE itself uses.

Worth recording that GPL-3.0 is a preference here rather than an obligation.
Nothing in the dependency graph forces it: linkctl is MIT and is invoked as a
subprocess rather than linked, and the KDE QML modules the applet imports are
LGPL.

Removed two things that should not ship in a public repository. tests's QML
linter had an absolute sandbox path, /tmp/pyside/PySide6/qmllint, baked into
its search list; it now looks for Qt's qmllint and PySide6's pyside6-qmllint
on PATH and honours a QMLLINT override, and says how to install one when it
finds nothing. The systemd unit carried a Documentation= URL pointing at a
host that does not exist, and its ExecStart silently assumed a particular
checkout directory; the URL is gone and the path is now an obvious
PATH/TO/CHECKOUT placeholder next to the comment telling you to edit it.

Added a Credits section naming the work this is built on, since the project
is mostly glue: linkctl does the camera control, schlarpc's firmware teardown
documents the extension-unit protocol, and vrwallace's controller established
that the Link 2 needs both pan and tilt axes in a single VIDIOC_S_EXT_CTRLS
call, which is the detail the whole thing depends on.

Also made the two Python tests executable, matching the other scripts.

Audited for operator-specific detail: no credentials, tokens, private
hostnames, IP addresses or absolute home paths in any tracked file or
anywhere in the history's diffs. Three merge commits do carry Reviewed-on and
Reviewed-by trailers naming a private forge, added by the forge at merge
time; those are commit metadata rather than file content and are handled
separately.

Tested: 169 checks across seven suites plus the QML linter, all passing after
the header insertion, which confirms it did not disturb the order-sensitive
`.pragma library` line in logic.js or the qmldir module definitions.
shellcheck clean.
2026-10-13 20:54:23 -07:00

45 lines
1.5 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- SPDX-FileCopyrightText: 2026 branderson
SPDX-License-Identifier: GPL-3.0-or-later -->
<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
http://www.kde.org/standards/kcfg/1.0/kcfg.xsd">
<kcfgfile name=""/>
<group name="General">
<entry name="linkctlPath" type="String">
<label>Path to the linkctl binary</label>
<default>linkctl</default>
</entry>
<entry name="device" type="String">
<label>Video device, blank to auto-detect</label>
<default></default>
</entry>
<entry name="homePreset" type="String">
<label>Preset loaded by the Home button</label>
<default>home</default>
</entry>
<entry name="maxStep" type="Int">
<label>Degrees per step at full deflection</label>
<default>6</default>
</entry>
<entry name="tickInterval" type="Int">
<label>Milliseconds between steps while held</label>
<default>160</default>
</entry>
<entry name="deadzone" type="Int">
<label>Deadzone as a percentage of the radius</label>
<default>15</default>
</entry>
<entry name="invertPan" type="Bool">
<label>Invert the horizontal axis</label>
<default>false</default>
</entry>
<entry name="invertTilt" type="Bool">
<label>Invert the vertical axis</label>
<default>false</default>
</entry>
</group>
</kcfg>