#!/bin/bash

# Detect if we're running as root (from pacman hook)
if [[ $EUID -eq 0 ]]; then
  # Find all logged-in users running Hyprland
  for user_runtime in /run/user/*/; do
    USER_UID=$(basename "$user_runtime")
    USER_NAME=$(id -un "$USER_UID" 2>/dev/null)

    # Skip if we can't resolve the username or if no Hyprland session
    [[ -z "$USER_NAME" ]] && continue
    [[ ! -S "${user_runtime}hypr/"*"/.socket.sock" ]] && continue

    # Kill existing processes for this user
    pkill -u "$USER_NAME" elephant
    pkill -u "$USER_NAME" walker

    # Restart services as this user
    systemd-run --uid="$USER_NAME" --setenv=XDG_RUNTIME_DIR="/run/user/$USER_UID" \
      bash -c "
        setsid uwsm-app -- elephant &
        setsid uwsm-app -- walker --gapplication-service &
      "
  done
else
  # Running as user directly
  pkill elephant
  pkill walker

  setsid uwsm-app -- elephant &
  wait 2
  setsid uwsm-app -- walker --gapplication-service &
fi
