Files
hyprdots/hypr/brightness
2025-10-22 14:17:33 +05:30

53 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
##########################################################################################
# NOTE: you need to be member of "video" group or maybe "input" group for this to work.. #
##########################################################################################
########
# MAIN #
########
# dir where the backlight component resides..
root_dir="/sys/class/backlight"
#########################################################################
# brighness directory can be different per device, check above root_dir #
#########################################################################
#for intel
#backlight_dir="intel_backlight0"
#for acpi (generic)
#backlight_dir="acpi_backlight0"
#for amd
backlight_dir="amdgpu_bl1"
#file read
brightness_file="$root_dir/$backlight_dir/brightness"
current=$(cat "$brightness_file")
max=$(cat "$root_dir/$backlight_dir/max_brightness")
#runtime values
opr=$1 # [+|-], required
increment=${2:-1296} # [ default:1296, optional] "around 2% brightness"
#shellcheck disable=SC2004
[ "$opr" = "s" ] && printf "%s" "$((${current}00/${max}))" && exit 0
#validation
(! printf '%s' "$opr" | grep -qE '[+-]') && notify-send -e -u critical "Unknown Operator, use only + or -" && exit 1
#shellcheck disable=SC2086,SC1102
new="$(( $current $opr $increment ))"
#constraints
[ "$new" -ge "$max" ] && new=$max
[ "$new" -le 0 ] && new=0
#new brightness value
printf '%s' "$new" > "$brightness_file"
#shellcheck disable=SC2004
notify-send -e -i "lol" "☀️ $((${new}00/${max}))" -t 1000 -h "string:x-canonical-private-synchronous:${0##*/}"