#!/usr/bin/sh

lowrate=48
maxrate=60

# https://www.reddit.com/r/hyprland/comments/1dhcasm/comment/lp3rxxi/
set_refresh() {
  for dir in /run/user/*; do
    for hypr_dir in "$dir/hypr/"*/; do
      socket="${hypr_dir}.socket.sock"
      if [ -S "$socket" ]; then
        echo "r/keyword \$refresh_rate" "$1" | socat - UNIX-CONNECT:"$socket" >/dev/null
      fi
    done
  done
}

if [ "$1" = "low" ]; then
  set_refresh $lowrate
  echo "Refresh rate low: $lowrate Hz"
elif [ "$1" = "high" ]; then
  set_refresh $maxrate
  echo "Refresh rate high: $maxrate Hz"
else
  if systemd-ac-power; then
    set_refresh $maxrate
    echo "Refresh rate high: $maxrate Hz"
  else
    set_refresh $lowrate
    echo "Refresh rate low: $lowrate Hz"
  fi
fi
