configuration form the arch linux stored
This commit is contained in:
72
polybar/scripts/brightness.sh
Executable file
72
polybar/scripts/brightness.sh
Executable file
@@ -0,0 +1,72 @@
|
||||
#!/bin/bash
|
||||
|
||||
DEVICE="intel_backlight"
|
||||
BRIGHTNESS=$(brightnessctl get)
|
||||
MAX_BRIGHTNESS=$(brightnessctl max)
|
||||
PERCENTAGE=$((BRIGHTNESS * 100 / MAX_BRIGHTNESS))
|
||||
|
||||
# Define icons
|
||||
ICON_BRIGHT=""
|
||||
ICON_DIM=""
|
||||
|
||||
# Set icon based on brightness level
|
||||
if [ $PERCENTAGE -ge 50 ]; then
|
||||
ICON=$ICON_BRIGHT
|
||||
else
|
||||
ICON=$ICON_DIM
|
||||
fi
|
||||
|
||||
# Function to calculate the step size dynamically
|
||||
calculate_step() {
|
||||
local percentage=$1
|
||||
local min_step=$((MAX_BRIGHTNESS / 100)) # 1% step
|
||||
local max_step=$((MAX_BRIGHTNESS * 15 / 100)) # 15% step
|
||||
|
||||
# Scale the step size linearly between min_step and max_step
|
||||
local step=$((min_step + (max_step - min_step) * percentage / 100))
|
||||
|
||||
# Ensure the step is within bounds
|
||||
if [ $step -lt $min_step ]; then
|
||||
step=$min_step
|
||||
elif [ $step -gt $max_step ]; then
|
||||
step=$max_step
|
||||
fi
|
||||
|
||||
echo $step
|
||||
}
|
||||
|
||||
# Function to calculate the new brightness value
|
||||
calculate_new_brightness() {
|
||||
local current=$1
|
||||
local max=$2
|
||||
local change=$3
|
||||
|
||||
# Calculate the new brightness value
|
||||
local new_value=$((current + change))
|
||||
|
||||
# Ensure the new value is within the valid range (1% to 100%)
|
||||
if [ $new_value -lt 1 ]; then
|
||||
new_value=1
|
||||
elif [ $new_value -gt $max ]; then
|
||||
new_value=$max
|
||||
fi
|
||||
|
||||
echo $new_value
|
||||
}
|
||||
|
||||
# Handle click actions
|
||||
case $1 in
|
||||
"up")
|
||||
STEP=$(calculate_step $PERCENTAGE)
|
||||
NEW_BRIGHTNESS=$(calculate_new_brightness $BRIGHTNESS $MAX_BRIGHTNESS $STEP)
|
||||
brightnessctl set $NEW_BRIGHTNESS > /dev/null
|
||||
;;
|
||||
"down")
|
||||
STEP=$(calculate_step $PERCENTAGE)
|
||||
NEW_BRIGHTNESS=$(calculate_new_brightness $BRIGHTNESS $MAX_BRIGHTNESS $(( -STEP )))
|
||||
brightnessctl set $NEW_BRIGHTNESS > /dev/null
|
||||
;;
|
||||
esac
|
||||
|
||||
# Output for Polybar
|
||||
echo "$ICON $PERCENTAGE%"
|
||||
Reference in New Issue
Block a user