Initial backup of LTP-305G matrix clock setup on matrixpi

Captures everything needed to redeploy the two-display clock (hour on I2C
0x61, minute on I2C 0x63) on a fresh Pi:

- Both systemd units (matrix0x61.service, matrix0x63.service)
- Deployed Pimoroni script tree, including the local %I (12-hour) clock
  customization
- Vendored upstream sources (ltp305-python, breakout-garden) so restore is
  fully offline-capable
- Boot config snippet enabling I2C
- install.sh that wires it all back up idempotently
- Inventory doc cross-referencing every live-system path

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
dissimulo
2026-05-06 01:32:39 -07:00
commit 030172f523
99 changed files with 4445 additions and 0 deletions

39
install.sh Executable file
View File

@@ -0,0 +1,39 @@
#!/usr/bin/env bash
# Restore the LTP-305G matrix clock setup on a fresh Pi.
# Run as root (or with sudo). Idempotent.
set -euo pipefail
REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
TARGET_USER="${TARGET_USER:-dissimulo}"
TARGET_HOME="$(getent passwd "$TARGET_USER" | cut -d: -f6)"
if [[ -z "$TARGET_HOME" ]]; then
echo "User '$TARGET_USER' not found. Create it first or set TARGET_USER." >&2
exit 1
fi
if [[ $EUID -ne 0 ]]; then
echo "Run as root (sudo)." >&2
exit 1
fi
echo "==> Installing ltp305 Python package from vendored source"
pip3 install --break-system-packages "$REPO_DIR/vendor/ltp305-python/library"
echo "==> Deploying script tree to $TARGET_HOME/Pimoroni/ltp305"
mkdir -p "$TARGET_HOME/Pimoroni"
cp -r "$REPO_DIR/deployed/home/dissimulo/Pimoroni/ltp305" "$TARGET_HOME/Pimoroni/"
chown -R "$TARGET_USER:$TARGET_USER" "$TARGET_HOME/Pimoroni"
echo "==> Installing systemd units"
install -m 0644 "$REPO_DIR/systemd/matrix0x61.service" /etc/systemd/system/matrix0x61.service
install -m 0644 "$REPO_DIR/systemd/matrix0x63.service" /etc/systemd/system/matrix0x63.service
echo "==> Reloading systemd and enabling units"
systemctl daemon-reload
systemctl enable --now matrix0x61.service matrix0x63.service
echo
echo "Done. Status:"
systemctl --no-pager status matrix0x61.service matrix0x63.service || true