Initial commit
This commit is contained in:
69
scripts/Brightness.sh
Executable file
69
scripts/Brightness.sh
Executable file
@@ -0,0 +1,69 @@
|
||||
#!/bin/bash
|
||||
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
|
||||
# Script for Monitor backlights (if supported) using brightnessctl
|
||||
|
||||
iDIR="$HOME/.config/swaync/icons"
|
||||
notification_timeout=1000
|
||||
step=10 # INCREASE/DECREASE BY THIS VALUE
|
||||
|
||||
# Get current brightness as an integer (without %)
|
||||
get_brightness() {
|
||||
brightnessctl -m | cut -d, -f4 | tr -d '%'
|
||||
}
|
||||
|
||||
# Determine the icon based on brightness level
|
||||
get_icon_path() {
|
||||
local brightness=$1
|
||||
local level=$(( (brightness + 19) / 20 * 20 )) # Round up to next 20
|
||||
if (( level > 100 )); then
|
||||
level=100
|
||||
fi
|
||||
echo "$iDIR/brightness-${level}.png"
|
||||
}
|
||||
|
||||
# Send notification
|
||||
send_notification() {
|
||||
local brightness=$1
|
||||
local icon_path=$2
|
||||
|
||||
notify-send -e \
|
||||
-h string:x-canonical-private-synchronous:brightness_notif \
|
||||
-h int:value:"$brightness" \
|
||||
-u low \
|
||||
-i "$icon_path" \
|
||||
"Screen" "Brightness: ${brightness}%"
|
||||
}
|
||||
|
||||
# Change brightness and notify
|
||||
change_brightness() {
|
||||
local delta=$1
|
||||
local current new icon
|
||||
|
||||
current=$(get_brightness)
|
||||
new=$((current + delta))
|
||||
|
||||
# Clamp between 5 and 100
|
||||
(( new < 5 )) && new=5
|
||||
(( new > 100 )) && new=100
|
||||
|
||||
brightnessctl set "${new}%"
|
||||
|
||||
icon=$(get_icon_path "$new")
|
||||
send_notification "$new" "$icon"
|
||||
}
|
||||
|
||||
# Main
|
||||
case "$1" in
|
||||
"--get")
|
||||
get_brightness
|
||||
;;
|
||||
"--inc")
|
||||
change_brightness "$step"
|
||||
;;
|
||||
"--dec")
|
||||
change_brightness "-$step"
|
||||
;;
|
||||
*)
|
||||
get_brightness
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user