Add Omarchy shell plugin for the Stream Deck
QML bar widget + popout panel (dev.woodard.streamdeck) that drives streamdeck-ctl: key grid shaped by the connected model, per-key editor, brightness slider, and daemon controls. Themed via qs.Commons. Makefile gains build-ctl, install-ctl, install-plugin, validate-plugin and uninstall-plugin targets. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BjuZBBfzXqZgxRhxzJvkkC
This commit is contained in:
54
Makefile
54
Makefile
@@ -1,10 +1,16 @@
|
||||
BINARY := streamdeck-go
|
||||
HELPER := streamdeck-helper
|
||||
INIT := streamdeck-init
|
||||
CTL := streamdeck-ctl
|
||||
PREFIX ?= $(HOME)/.local
|
||||
CONFIG_DIR := $(HOME)/.config/streamdeck-go
|
||||
GROUP := streamdeck
|
||||
|
||||
# ── Omarchy shell plugin ──────────────────────────────────────────────────────
|
||||
PLUGIN_ID := dev.woodard.streamdeck
|
||||
PLUGIN_SRC := $(CURDIR)/omarchy-plugin
|
||||
PLUGIN_DIR := $(HOME)/.config/omarchy/plugins/$(PLUGIN_ID)
|
||||
|
||||
# ── OS detection ──────────────────────────────────────────────────────────────
|
||||
OS := $(shell uname -s)
|
||||
|
||||
@@ -24,7 +30,9 @@ else
|
||||
UDEV_RULE := /etc/udev/rules.d/99-streamdeck.rules
|
||||
endif
|
||||
|
||||
.PHONY: build build-helper build-init install install-helper install-watchdog reinstall uninstall uninstall-helper uninstall-watchdog udev
|
||||
.PHONY: build build-helper build-init build-ctl install install-ctl install-helper install-watchdog \
|
||||
install-plugin uninstall-plugin validate-plugin reinstall uninstall uninstall-helper \
|
||||
uninstall-watchdog udev
|
||||
|
||||
# ── Build ─────────────────────────────────────────────────────────────────────
|
||||
|
||||
@@ -37,6 +45,9 @@ build-helper:
|
||||
build-init:
|
||||
go build -o $(INIT) ./cmd/streamdeck-init/
|
||||
|
||||
build-ctl:
|
||||
go build -o $(CTL) ./cmd/streamdeck-ctl/
|
||||
|
||||
# ── Install ───────────────────────────────────────────────────────────────────
|
||||
|
||||
# Interactive install — prompts for dotfiles directory, installs binary + service.
|
||||
@@ -223,6 +234,47 @@ reinstall: build
|
||||
fi
|
||||
endif
|
||||
|
||||
# ── streamdeck-ctl + Omarchy shell plugin ─────────────────────────────────────
|
||||
|
||||
# The CLI the Omarchy plugin drives. Also useful on its own for scripting.
|
||||
install-ctl: build-ctl
|
||||
mkdir -p $(BIN_DIR)
|
||||
install -m 755 $(CTL) $(BIN_DIR)/$(CTL)
|
||||
@echo "Installed $(BIN_DIR)/$(CTL)"
|
||||
|
||||
# Symlink rather than copy so edits to the QML are live after a shell rescan.
|
||||
install-plugin: install-ctl
|
||||
@if [ ! -d "$(HOME)/.config/omarchy" ]; then \
|
||||
echo "Omarchy shell config not found at ~/.config/omarchy — is Omarchy installed?"; \
|
||||
exit 1; \
|
||||
fi
|
||||
mkdir -p $(HOME)/.config/omarchy/plugins
|
||||
@if [ -e "$(PLUGIN_DIR)" ] && [ ! -L "$(PLUGIN_DIR)" ]; then \
|
||||
echo "$(PLUGIN_DIR) exists and is not a symlink — remove it first."; \
|
||||
exit 1; \
|
||||
fi
|
||||
ln -sfn "$(PLUGIN_SRC)" "$(PLUGIN_DIR)"
|
||||
# Validate the source tree, not the link: `omarchy plugin validate` refuses a
|
||||
# symlinked plugin folder by design, but the shell resolves it happily.
|
||||
@omarchy plugin validate "$(PLUGIN_SRC)" || true
|
||||
@omarchy-shell shell rescanPlugins >/dev/null 2>&1 || true
|
||||
@echo ""
|
||||
@echo "Plugin linked: $(PLUGIN_DIR) -> $(PLUGIN_SRC)"
|
||||
@echo "Enable it with: omarchy plugin enable $(PLUGIN_ID) right"
|
||||
|
||||
validate-plugin:
|
||||
omarchy plugin validate "$(PLUGIN_SRC)"
|
||||
@command -v qmllint >/dev/null 2>&1 && \
|
||||
qmllint -I $${OMARCHY_PATH:-/usr/share/omarchy}/shell "$(PLUGIN_SRC)"/*.qml || \
|
||||
echo "qmllint not installed — skipped QML lint"
|
||||
|
||||
uninstall-plugin:
|
||||
omarchy plugin disable $(PLUGIN_ID) 2>/dev/null || true
|
||||
rm -f "$(PLUGIN_DIR)"
|
||||
rm -f $(BIN_DIR)/$(CTL)
|
||||
@omarchy-shell shell rescanPlugins >/dev/null 2>&1 || true
|
||||
@echo "Plugin unlinked and $(CTL) removed."
|
||||
|
||||
# ── Uninstall ─────────────────────────────────────────────────────────────────
|
||||
|
||||
ifeq ($(OS),Darwin)
|
||||
|
||||
Reference in New Issue
Block a user