diff --git a/firstboot/shell-system.sh b/firstboot/shell-system.sh index 935e9ba4..ffffebb7 100755 --- a/firstboot/shell-system.sh +++ b/firstboot/shell-system.sh @@ -65,6 +65,10 @@ clawdie_shell_system_config() { clawdie_shell_system_setup_mac_do log_msg "[system] Setup mac_do framework" + # Enable evdev input routing for Xorg/libinput touchpads and mice + clawdie_shell_system_setup_evdev + log_msg "[system] Setup evdev input routing" + # Enable services clawdie_shell_system_enable_services log_msg "[system] Enabled services" @@ -157,6 +161,23 @@ clawdie_shell_system_setup_mac_do() { fi } +# ============================================================================ +# EVDEV INPUT ROUTING +# ============================================================================ + +clawdie_shell_system_setup_evdev() { + # FreeBSD's xorg/libinput stack recommends routing native evdev events for + # ums(4)/psm(4). This improves touchpad and mouse support and avoids PS/2 + # detection issues when moused is disabled. + clawdie_shell_system_set_config_line "$SYSCTL_CONF" 'kern.evdev.rcpt_mask=6' + + if command -v sysctl >/dev/null 2>&1; then + sysctl kern.evdev.rcpt_mask=6 >/dev/null 2>&1 || true + elif [ -x /sbin/sysctl ]; then + /sbin/sysctl kern.evdev.rcpt_mask=6 >/dev/null 2>&1 || true + fi +} + # ============================================================================ # HOSTNAME CONFIGURATION # ============================================================================ diff --git a/scripts/fetch-npm-globals.sh b/scripts/fetch-npm-globals.sh index ceb0df9e..d10c42a8 100755 --- a/scripts/fetch-npm-globals.sh +++ b/scripts/fetch-npm-globals.sh @@ -4,9 +4,9 @@ # These three packages are agent runtimes the firstboot installer will # `npm install -g` from local tarballs (no network needed): # -# @anthropic-ai/claude-code — Claude Code CLI (agent harness) -# @google/gemini-cli — Gemini CLI (alt agent) -# @mariozechner/pi-coding-agent — pi CLI (used by clawdie-ai + paperclip adapters) +# @anthropic-ai/claude-code — Claude Code CLI (agent harness) +# @google/gemini-cli — Gemini CLI (alt agent) +# @earendil-works/pi-coding-agent — pi CLI (used by Clawdie-AI + paperclip adapters) # # Notes: # - Codex is shipped via the FreeBSD `codex` pkg (see pkg-list-host.txt), @@ -24,7 +24,7 @@ SCRIPT_DIR="$(dirname "$(realpath "$0")")" ROOT_DIR="$(dirname "$SCRIPT_DIR")" OUT_DIR="${OUT_DIR:-${ROOT_DIR}/tmp/npm-globals}" -PACKAGES="@anthropic-ai/claude-code @google/gemini-cli @mariozechner/pi-coding-agent" +PACKAGES="@anthropic-ai/claude-code @google/gemini-cli @earendil-works/pi-coding-agent" if ! command -v npm >/dev/null 2>&1; then echo "ERROR: npm not found in PATH (install www/npm-node24)" >&2 @@ -34,6 +34,11 @@ fi mkdir -p "$OUT_DIR" cd "$OUT_DIR" +# Keep the bundle deterministic. The output directory is cached across builds, +# so remove old versions and legacy package names before fetching current +# tarballs; otherwise firstboot may install stale CLIs after newer ones. +rm -f ./*.tgz + echo "==> Fetching npm-global tarballs into ${OUT_DIR}" for pkg in $PACKAGES; do echo " npm pack ${pkg}"