- Panel indicator: add have() checks for nc/python3, warn on missing deps instead of failing silently, distinct states for socket-down vs no-response with actionable tooltip text - Join Hive: generate and apply identity wallpaper on success as visual 'you're in' confirmation via xfconf-query - SKILL.md: document new behaviors
7.1 KiB
| name | description | triggers | |||||||
|---|---|---|---|---|---|---|---|---|---|
| iso-visuals | Out-of-box visual experience for Clawdie ISO — panel health indicator, identity wallpaper, and one-click Join Hive launcher. Integrates into Xfce desktop on first boot. |
|
ISO Visuals — Out-of-Box Desktop Experience
Three improvements that replace the "boot to a terminal" feeling with a calm, informative desktop: a panel health indicator helper, a machine-identity wallpaper helper, and a one-click Join Hive launcher.
Keep this skill honest: scripts can be staged before every script is wired into the default panel/session. Do not claim default-panel or first-login behavior until it is proven in the live ISO or by mounted-image plus runtime checks.
1. Panel Health Indicator Helper
Shows Colibri daemon status as Xfce genmon markup. When wired into a Generic Monitor
panel item, it displays a green/red dot with agent count and started-task count;
clicking opens a terminal with full colibri status output.
Script: scripts/colibri-panel-indicator.sh
ISO staging:
install -m 755 scripts/colibri-panel-indicator.sh \
"${LIVE_ROOT}/usr/local/bin/colibri-panel-indicator"
Optional runtime/manual panel wiring:
# Requires xfce4-genmon-plugin. Add manually from Panel → Add New Items → Generic Monitor,
# or wire into seeded panel XML only after that plugin is in the ISO package list.
xfconf-query -c xfce4-panel -p /plugins/plugin-20 -n -t string -s genmon
xfconf-query -c xfce4-panel -p /plugins/plugin-20/command -n -t string -s /usr/local/bin/colibri-panel-indicator
The indicator uses <txt>/<tool>/<txtclick> genmon markup. It depends on
nc and python3; warns with ⚠ missing deps if either is absent instead of
failing silently. Socket-down and no-response states are distinct, each with
actionable tooltip text.
2. Identity Wallpaper Helper
Generates a desktop background with machine identity overlaid: hostname, Tailscale IP when available, Colibri socket/port status, and FreeBSD release.
Script: scripts/clawdie-wallpaper-gen.sh
ISO staging:
install -m 755 scripts/clawdie-wallpaper-gen.sh \
"${LIVE_ROOT}/usr/local/bin/clawdie-wallpaper-gen"
Preferred base wallpaper:
/usr/local/share/clawdie-iso/wallpapers/clawdie-operator-bg.png
The helper falls back to the stock XFCE background, then to a generated dark solid
background under project-local tmp/ when a checkout is available. On the live USB,
where there is usually no project root, it uses an app-owned cache directory such as
$XDG_CACHE_HOME/clawdie or $HOME/.cache/clawdie. It should not try to create
files under /usr/local/share at runtime unless explicitly requested by the operator.
Optional runtime/session wiring:
PROJECT_ROOT=$(git rev-parse --show-toplevel)
PROJECT_TMP="$PROJECT_ROOT/tmp"
mkdir -p "$PROJECT_TMP"
/usr/local/bin/clawdie-wallpaper-gen "$PROJECT_TMP/clawdie-wallpaper.png"
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/workspace0/last-image \
-s "$PROJECT_TMP/clawdie-wallpaper.png"
Requires ImageMagick (ImageMagick7 in the ISO package list; magick or
convert command accepted). Tailscale is optional; absence should produce
tailscale offline, not an error.
Format:
┌────────────────────────────────────┐
│ │
│ Clawdie OS │
│ │
│ hostname osa │
│ tailscale 100.72.229.63 │
│ colibri socket 9190 │
│ jail 15.0-RELEASE-p4 │
│ │
└────────────────────────────────────┘
3. Join Hive Launcher
Desktop icon that runs agent registration in a visible terminal: check daemon → check Vaultwarden bootstrap fields without printing secrets → detect capabilities → register → pause for operator review.
Script: scripts/clawdie-join-hive.sh
Desktop entry: scripts/clawdie-join-hive.desktop
ISO staging:
install -m 755 scripts/clawdie-join-hive.sh \
"${LIVE_ROOT}/usr/local/bin/clawdie-join-hive"
install -m 644 scripts/clawdie-join-hive.desktop \
"${LIVE_ROOT}/usr/local/share/applications/Clawdie Join Hive.desktop"
install -m 644 scripts/clawdie-join-hive.desktop \
"${LIVE_ROOT}/home/clawdie/Desktop/Join Hive.desktop"
The desktop entry must call the installed binary path, without a .sh suffix:
Exec=xfce4-terminal --title "Join Hive" --geometry=80x24 --command "/usr/local/bin/clawdie-join-hive"
The launcher runs in xfce4-terminal with geometry 80x24 and pauses on
"Press Enter" so the operator reads the result before the window closes.
Idempotency expectations:
- safe to double-click multiple times;
- treats already-registered /
UNIQUE constraintagent-name responses as an idempotent success; - does not fail just because
/usr/local/etc/colibri/provider.envis mode0600; - uses
mdo -u rootfor privileged checks/start where available; - on success, generates and applies the identity wallpaper as visual confirmation;
- never prints Vaultwarden credentials or provider keys.
Build integration (clawdie-iso build.sh)
Current staging pattern:
install -m 755 scripts/colibri-panel-indicator.sh "${LIVE_ROOT}/usr/local/bin/colibri-panel-indicator"
install -m 755 scripts/clawdie-wallpaper-gen.sh "${LIVE_ROOT}/usr/local/bin/clawdie-wallpaper-gen"
install -m 755 scripts/clawdie-join-hive.sh "${LIVE_ROOT}/usr/local/bin/clawdie-join-hive"
install -m 644 scripts/clawdie-join-hive.desktop "${LIVE_ROOT}/usr/local/share/applications/Clawdie Join Hive.desktop"
install -m 644 scripts/clawdie-join-hive.desktop "${LIVE_ROOT}/home/clawdie/Desktop/Join Hive.desktop"
Add/keep ImageMagick7 in the ISO package list for the wallpaper generator.
Verification
After booting the ISO:
- Mounted-image:
/usr/local/bin/clawdie-join-hive,/usr/local/bin/clawdie-wallpaper-gen, and/usr/local/bin/colibri-panel-indicatorexist and are executable. - Desktop launcher:
Join Hive.desktopexists; itsExec=points to/usr/local/bin/clawdie-join-hivewith no.shsuffix. - Join Hive: double-click opens a terminal, starts/checks
colibri_daemon, reports provider.env status without exposing secrets, registers or reports already registered, then waits for Enter. - Wallpaper helper: running
/usr/local/bin/clawdie-wallpaper-genwrites an image under project-localtmp/when run from a checkout, or an app-owned live cache directory when no project root exists, using the Clawdie wallpaper as base. - Panel indicator helper: running
/usr/local/bin/colibri-panel-indicatorprints genmon XML. Only claim panel visibility after genmon is packaged and wired into the seeded panel or configured manually.