Commit Graph

13 Commits

Author SHA1 Message Date
Levi Woodard
6d0748e4c5 Add camera module: drive UVC webcam controls via cameractrls
New `camera` module in modules.example.yaml (and the embedded copy) with
four functions: `set` (any control=value list, incl. preset/colour buttons),
`toggle` (flip between two values), `adjust` (step a numeric control by a
delta, clamped to the min/max parsed from `cameractrls -l`, with optional
`extra` controls applied first), and `is` (poll helper, exit 0 on match).

Device comes from CAMERA_DEVICE in .env (default /dev/video0) or a per-key
`device` param. cameractrls exits 0 for unknown controls, so polls must
use `is`; stderr is discarded to drop Python deprecation warnings.

README: Camera module section with setup, function table, a folder
example, and the oksvg viewBox-offset centring gotcha for SVG icons.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017iodiNMYL9iuT7f6WCe5iv
2026-10-08 14:02:29 -06:00
Levi Woodard
4158165410 Add folder support: keys that open sub-pages with a back key
A key with `folder: NAME` swaps the deck to the keys defined under
`folders.NAME`. Every folder shows a back key (slot 0 by default, drawn
with a built-in chevron) that pops back to the parent; folders nest.

The daemon now runs one page at a time: per-key setup moved into
setupKey(), openPage() draws a page under its own context, and
page.stop() tears it down before the next page is drawn (and on exit,
so device death no longer waits on uncancelled goroutines).

streamdeck-ctl gains `key set -folder`, reports kind "folder", lists
every folder in status, and refuses to `key press` a navigation-only
key. The Omarchy grid shows a folder glyph.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012ARLa4moGb154fzc9TevgV
2026-10-01 18:39:24 -06:00
Levi Woodard
8b6b4d582d Adding make reinstall 2026-04-26 14:00:43 -06:00
Levi Woodard
212e957f49 Adding restart watchdog and moving to i0t.app 2026-04-26 13:47:47 -06:00
Levi Woodard
962ee747fd Text overlay support 2026-04-18 11:55:18 -06:00
lwoodard
44dc22d8ee Adding readme updates 2026-04-16 15:38:46 -06:00
lwoodard
ae1ab88d4a adding line 2026-04-14 08:58:04 -06:00
lwoodard
91b7028382 adding init program 2026-04-13 12:45:41 -06:00
lwoodard
639a08a808 Adding Slack modules 2026-04-13 11:27:18 -06:00
lwoodard
0f5a136764 adding mac support mainly 2026-04-13 08:11:19 -06:00
Levi Woodard
acd890fb69 adding support for if\else type situations 2026-03-15 17:50:11 -06:00
Levi Woodard
84430cb84b Add interactive installer with dep detection and dotfiles integration
- install.sh: detects pacman/apt/dnf/zypper, installs Go and hidapi if
  absent, prompts for dotfiles dir and creates ~/.config symlink
- Makefile: wire `make install` to install.sh
- README: document interactive install flow and dotfiles tree structure
2026-03-15 10:24:15 -06:00
Levi Woodard
663d452ca3 Initial Push 2026-03-15 10:10:13 -06:00