#!/bin/bash

# Adjust brightness on the most likely display device.

step="${1:-+5%}"

# Start with the first possible output, then refine to the most likely given an order heuristic.
device="$(ls -1 /sys/class/backlight 2>/dev/null | head -n1)"
for candidate in amdgpu_bl* intel_backlight acpi_video*; do
  if [[ -e "/sys/class/backlight/$candidate" ]]; then
    device="$candidate"
    break
  fi
done

# Set the actual brightness of the display device.
brightnessctl -d "$device" set "$step" >/dev/null

# Use SwayOSD to display the new brightness setting.
current=$(brightnessctl -d "$device" g)
max=$(brightnessctl -d "$device" m)
percent=$(( current * 100 / max ))
progress=$(awk -v c="$current" -v m="$max" 'BEGIN{printf "%.2f", c/m}')

swayosd-client \
  --monitor "$(hyprctl monitors -j | jq -r '.[]|select(.focused==true).name')" \
  --custom-icon display-brightness \
  --custom-progress "$progress" \
  --custom-progress-text "${percent}%"
