#!/usr/bin/env bash set -e # Set up dev runtime directory DEV_RUNTIME="./dev-runtime" DATA_DIR="$DEV_RUNTIME/data" SOCKET_PATH="$DEV_RUNTIME/shepherd.sock" mkdir -p "$DATA_DIR" # Export environment variables for shepherd binaries export SHEPHERD_SOCKET="$SOCKET_PATH" export SHEPHERD_DATA_DIR="$DATA_DIR" # Build all binaries echo "Building shepherd binaries..." cargo build # Function to cleanup background processes on exit cleanup() { echo "Cleaning up..." if [ ! -z "$SHEPHERDD_PID" ]; then kill $SHEPHERDD_PID 2>/dev/null || true fi if [ ! -z "$HUD_PID" ]; then kill $HUD_PID 2>/dev/null || true fi } trap cleanup EXIT # Start the background daemon echo "Starting shepherdd..." ./target/debug/shepherdd -c ./config.example.toml & SHEPHERDD_PID=$! # Give the daemon a moment to initialize sleep 1 # Start the HUD in the background echo "Starting shepherd-hud..." ./target/debug/shepherd-hud & HUD_PID=$! # Start sway with the launcher echo "Starting sway with shepherd-launcher..." WLR_BACKENDS=wayland WLR_LIBINPUT_NO_DEVICES=1 sway -c ./sway.conf