<feed xmlns='http://www.w3.org/2005/Atom'>
<title>labUI.git/plugins/example/manifest.json, branch main</title>
<subtitle>Data acquisition program written in Python for use with serial communication devices.
</subtitle>
<id>https://git.kolset.xyz/labUI.git/atom?h=main</id>
<link rel='self' href='https://git.kolset.xyz/labUI.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/labUI.git/'/>
<updated>2026-06-03T16:12:34Z</updated>
<entry>
<title>Fix settings/plugin window bugs; remove example plugin</title>
<updated>2026-06-03T16:12:34Z</updated>
<author>
<name>Christian Kolset</name>
<email>christian.kolset@gmail.com</email>
</author>
<published>2026-06-03T16:12:34Z</published>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/labUI.git/commit/?id=3610309b1e5d83049554afe287129c99389d231d'/>
<id>urn:sha1:3610309b1e5d83049554afe287129c99389d231d</id>
<content type='text'>
- Add missing QGroupBox import to settings_window (caused silent crash on open)
- Remove Controls tab and _controls_tab() method from settings
- Clamp child window positions to screen bounds so they don't go off-screen on Windows when main window is maximized
- Apply same screen-clamp fix to Motion Capture plugin window
- Delete example plugin; disable it in enabled.json

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Added plugin/add-on system</title>
<updated>2026-06-03T15:50:17Z</updated>
<author>
<name>Christian Kolset</name>
<email>christian.kolset@gmail.com</email>
</author>
<published>2026-05-07T19:02:34Z</published>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/labUI.git/commit/?id=deb3ad65d25d4c3167a3cbeca2ac19b5c45b0627'/>
<id>urn:sha1:deb3ad65d25d4c3167a3cbeca2ac19b5c45b0627</id>
<content type='text'>
Plugins live in plugins/&lt;name&gt;/ with a manifest.json and a LabPlugin
subclass. Enabled/disabled in Settings &gt; Plugins tab; state persists in
plugins/enabled.json and in .labdaq profiles (loading a profile
enables/disables plugins to match). Plugins can contribute toolbar
buttons, BaseDevice instances (auto-wired into acquisition pipeline),
custom signal filter classes, a settings widget, and profile state via
get_save_state/apply_save_state. Load errors now report the exact
failing stage (file not found, class missing, on_load crash).
Includes example plugin skeleton and docs/plugin-development.md.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
