29 Commits

Author SHA1 Message Date
lwoodard
d1d5d88508 Add text_command + refresh live-text keys
Introduce a per-key `text_command` + `refresh` feature: the service
periodically runs a shell command and renders its stdout as the key's
text overlay, compositing over the base icon (or a black background for
text-only keys) each tick. `text` acts as the static fallback shown
before the first run or when the command errors/outputs nothing. A
refresh goroutine owns the key's image and also handles an optional poll
block (choosing icon_true/icon_false per tick). Adds `$(...)` sugar in
`text` as shorthand for `text_command`.

- internal/config: add TextCommand/Refresh fields to KeyConfig
- cmd/streamdeck: refreshTextKey goroutine, runTextCommand, unwrapCmdSubst
- config.example.yaml: document the feature with a `flow` pomodoro
  live-countdown example (status --short, toggle/skip/stop/gui)
- modules.example.yaml: example config updates

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TEoLyNbtbjbDq7aTWAymUG
2026-08-07 13:23:43 -06:00
lwoodard
a542ad60cd macOS watchdog: detect deck via ioreg sessionID
system_profiler SPUSBDataType was silently omitting the deck on some Macs
(watchdog exited early, never restarted anything) and, when it did report,
the trailing bus number in "Location ID: X / N" flapped without an actual
replug — causing spurious restarts. ioreg sees the device reliably and
sessionID changes only on real re-enumeration.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-09 11:25:54 -06:00
Levi Woodard
a51fd2beff Fixing watchdog 2026-05-10 13:35:16 -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
38893cbb84 adding things and fixing sgv 2026-04-18 16:13:39 -06:00
Levi Woodard
9b375cfba2 Ignore streamdeck-init build artifact
The init TUI binary was accidentally tracked. Add it to .gitignore
and remove from the index so rebuilds don't show up as modifications.
2026-04-18 12:08:39 -06:00
Levi Woodard
3a112dfd84 Fix obs-cmd Linux download — upstream renamed asset
The grigio/obs-cmd v1.0.0 release ships Linux builds as
obs-cmd-x64-linux.tar.gz; the old obs-cmd-v-x86_64-unknown-linux-musl.tar.gz
name no longer exists and curl was piping a 404 page into tar.
2026-04-18 12:04:21 -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
5e85dda038 Merge pull request 'adding OBS support' (#1) from obs-function into main
Reviewed-on: lwoodard/streamdeck-go#1
2026-04-16 21:25:17 +00:00
lwoodard
6f2290bd6c adding OBS support 2026-04-16 15:23:46 -06:00
lwoodard
ae1ab88d4a adding line 2026-04-14 08:58:04 -06:00
lwoodard
6c5f3072a2 Fixing slack stuff 2026-04-14 05:43:30 -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
1d9f0b519b Merge Mac branch: unified Linux/macOS support 2026-04-13 09:13:58 -06:00
lwoodard
0f5a136764 adding mac support mainly 2026-04-13 08:11:19 -06:00
lwoodard
9c681e482e fixing .gitignore 2026-04-13 07:19:49 -06:00
Levi Woodard
9cfc41d697 adding sample 2026-04-08 20:26:09 -06:00
Levi Woodard
bb5fa40538 adding Gitignore 2026-04-08 20:24:15 -06:00
Levi Woodard
ec9f28b98f Merge pull request #2 from WoodardDigital/ifelse
adding support for if\else type situations
2026-03-15 17:55:13 -06:00
Levi Woodard
acd890fb69 adding support for if\else type situations 2026-03-15 17:50:11 -06:00
Levi Woodard
e2f2db83e0 Fixing some installation issues and the dotfiles links 2026-03-15 11:03:00 -06:00
Levi Woodard
185ee327b8 Updateing .gitignore for binary 2026-03-15 10:41:03 -06:00
Levi Woodard
1e27835fcf Merge pull request #1 from WoodardDigital/Dotfiles-installation
Dotfiles installation
2026-03-15 10:37:56 -06:00
Levi Woodard
b428f4861a Fix HID timeout/EINTR errors and relative icon paths
- Treat "timeout" and "interrupted system call" from ReadWithTimeout as
  non-fatal — hidraw on Linux returns errors instead of (0, nil) for
  both, causing false device-dead detection and reconnect loops
- Resolve icons_dir relative to the config file when the path is not
  absolute, so the service finds icons regardless of working directory
- Installer now copies bundled icons to the config dir on first install
2026-03-15 10:36:44 -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