From 273359de97bcab95a4da1a01ca84fe946bc74554 Mon Sep 17 00:00:00 2001 From: "prompt.ac/@jeffrey" Date: Fri, 18 Sep 2026 12:25:33 -0700 Subject: [PATCH] ac-inscribe --mono: flash a stick that boots with the audio fold on Writes "mono": true into the inscription's usbConfig; the macOS flasher copies it into the device config.json (the Linux path already copies the whole usbConfig). Co-Authored-By: Claude Fable 5.1 --- fedac/native/ac-inscribe | 3 +++ fedac/native/scripts/flash-mac.sh | 1 + fedac/native/scripts/inscribe-lib.sh | 7 ++++--- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/fedac/native/ac-inscribe b/fedac/native/ac-inscribe index c8b8288dab..4f5545b107 100755 --- a/fedac/native/ac-inscribe +++ b/fedac/native/ac-inscribe @@ -16,6 +16,7 @@ # ac-inscribe --for-handle # admin: inscribe for another user # ac-inscribe --mood # override boot splash subtitle (else uses the handle's AC mood) # ac-inscribe --city # preset first-boot greeting city until the device geolocates (e.g. "Ridgewood") +# ac-inscribe --mono # boot with the system-wide mono audio fold on (config "mono": true) # # Exit codes: # 0 inscription written and valid @@ -54,6 +55,7 @@ MOOD_OVERRIDE_SET=0 CITY_OVERRIDE="" CITY_OVERRIDE_SET=0 ACI_CITY="" # config "city"; only set via --city (no account fetch), so default empty under `set -u` +ACI_MONO="" # config "mono": "1" via --mono → device boots with the audio fold on while [ $# -gt 0 ]; do case "$1" in @@ -65,6 +67,7 @@ while [ $# -gt 0 ]; do --for-handle) FOR_HANDLE="${2#@}"; shift ;; --mood) MOOD_OVERRIDE="$2"; MOOD_OVERRIDE_SET=1; shift ;; --city) CITY_OVERRIDE="$2"; CITY_OVERRIDE_SET=1; shift ;; + --mono) ACI_MONO=1 ;; --help|-h) sed -n '2,28p' "$0" | sed 's/^# *//' exit 0 diff --git a/fedac/native/scripts/flash-mac.sh b/fedac/native/scripts/flash-mac.sh index c72926ffb2..8250c39c6c 100755 --- a/fedac/native/scripts/flash-mac.sh +++ b/fedac/native/scripts/flash-mac.sh @@ -472,6 +472,7 @@ write_device_config() { # $1=dest $2=udp(1=include udpMidiBroadcast) if (c.city) cfg.city = c.city; if (Array.isArray(c.colors) && c.colors.length) cfg.colors = c.colors; if (c.mood) cfg.mood = c.mood; + if (c.mono) cfg.mono = true; } catch (e) { /* no inscription (anon/legacy) — base fields only */ } fs.writeFileSync(dest, JSON.stringify(cfg) + "\n"); ' "$1" "${USER_HANDLE}" "${BOOT_PIECE}" "${USER_SUB}" "${USER_EMAIL}" "$2" "${INSCRIPTION_FILE}" diff --git a/fedac/native/scripts/inscribe-lib.sh b/fedac/native/scripts/inscribe-lib.sh index 42e7322e54..0e09ef8c85 100644 --- a/fedac/native/scripts/inscribe-lib.sh +++ b/fedac/native/scripts/inscribe-lib.sh @@ -253,10 +253,10 @@ aci_collect_local_claude() { # to stdout. Inputs: ACI_HANDLE/ACI_SUB/ACI_EMAIL/ACI_ACCESS_TOKEN + # optional ACI_CLAUDE_TOKEN/ACI_GITHUB_PAT/ACI_CLAUDE_CREDS/ACI_CLAUDE_STATE # + boot personalization: ACI_HANDLE_COLORS_JSON (raw JSON array string) -# and ACI_MOOD (plain string). +# and ACI_MOOD (plain string), ACI_CITY, ACI_MONO ("1" = boot in mono). aci_build_usb_config_json() { node -e " - const [handle, sub, email, token, claudeToken, githubPat, claudeCreds, claudeState, colorsJson, mood, city] = process.argv.slice(1); + const [handle, sub, email, token, claudeToken, githubPat, claudeCreds, claudeState, colorsJson, mood, city, mono] = process.argv.slice(1); const cfg = { handle, sub, email, token }; if (claudeToken) cfg.claudeToken = claudeToken; if (githubPat) cfg.githubPat = githubPat; @@ -270,11 +270,12 @@ aci_build_usb_config_json() { } catch (e) {} if (mood) cfg.mood = mood; if (city) cfg.city = city; + if (mono === '1') cfg.mono = true; // boot with the audio fold on (config.json \"mono\") process.stdout.write(JSON.stringify(cfg)); " "${ACI_HANDLE:-}" "${ACI_SUB:-}" "${ACI_EMAIL:-}" "${ACI_ACCESS_TOKEN:-}" \ "${ACI_CLAUDE_TOKEN:-}" "${ACI_GITHUB_PAT:-}" \ "${ACI_CLAUDE_CREDS:-}" "${ACI_CLAUDE_STATE:-}" \ - "${ACI_HANDLE_COLORS_JSON:-}" "${ACI_MOOD:-}" "${ACI_CITY:-}" + "${ACI_HANDLE_COLORS_JSON:-}" "${ACI_MOOD:-}" "${ACI_CITY:-}" "${ACI_MONO:-}" } # aci_build_inscription_json -- 2.51.2