Compare commits
1 commit
main
...
Nanote-Nex
Author | SHA1 | Date | |
---|---|---|---|
|
1b8e84006b |
3 changed files with 34 additions and 36 deletions
54
AutomaticBrightness.sh
Executable file → Normal file
54
AutomaticBrightness.sh
Executable file → Normal file
|
@ -1,31 +1,31 @@
|
|||
#!/bin/bash
|
||||
|
||||
#How much light change must be seen by the sensor before it will act
|
||||
#How much light change must be seen by the sensor befor it will act
|
||||
LightChange=10
|
||||
|
||||
#How often it check the sensor
|
||||
SensorDelay=1
|
||||
|
||||
# Scale sensor to display brightness range
|
||||
# Scale sesor to displas brightness range
|
||||
# NOW WITH FLOAT SUPPORT
|
||||
SensorToDisplayScale=1
|
||||
|
||||
# 12 steps is the most similar on a Macbook 2017 running Arch compared to MacOS
|
||||
LevelSteps=12
|
||||
# Plays the 12 step effectively at 30 FPS 32ms
|
||||
AnimationDelay=0.032
|
||||
#This should match your refesh rate other wise it will either change the back light more times than needed or too few for a smooth animation
|
||||
LevelSteps=31
|
||||
# The is should match the LevelSteps but in the acual time each event should take to see
|
||||
AnimationDelay=0.016
|
||||
|
||||
|
||||
# Read the variable names
|
||||
MinimumBrightness=001
|
||||
MinimumBrightness=050
|
||||
|
||||
|
||||
|
||||
# 2 : Default | 1 : Add Offset | 0 : Subtract Offset, Recommended not to change
|
||||
# 2 : Default | 1 : Add Offset | 0 : Subtract Offset, Recomended not to change
|
||||
op=2
|
||||
|
||||
|
||||
# Only look for flags -i or -d with an additional value
|
||||
# Only look for flags -i or -d with an aditional value
|
||||
# AutomaticBrightness.sh -i 100
|
||||
while getopts i:d: flag
|
||||
do
|
||||
|
@ -37,7 +37,7 @@ do
|
|||
esac
|
||||
done
|
||||
|
||||
# Verify offset file exists and if so read it
|
||||
# Verigy offset file exsits and if so read it
|
||||
if [[ -f /dev/shm/AB.offset ]]
|
||||
then
|
||||
OffSet=$(cat /dev/shm/AB.offset)
|
||||
|
@ -50,7 +50,7 @@ fi
|
|||
#if no offset or its less than 0 make 0
|
||||
OffSet=$((OffSet < 0 ? 0 : OffSet))
|
||||
|
||||
# relatively change number in Offset file and write it
|
||||
# relativly change number in Offset file and write it
|
||||
if [[ $op -lt 2 ]]
|
||||
then
|
||||
if [[ $op -eq 1 ]]
|
||||
|
@ -84,11 +84,18 @@ MaxScreenBrightness=$(find -L /sys/class/backlight -maxdepth 2 -name "max_bright
|
|||
BLightPath=$(find -L /sys/class/backlight -maxdepth 2 -name "brightness" 2>/dev/null | grep "brightness")
|
||||
|
||||
# Set path to current luminance sensor
|
||||
LSensorPath=$(find -L /sys/bus/iio/devices -maxdepth 2 -name "in_illuminance_raw" 2>/dev/null | grep "in_illuminance_raw")
|
||||
|
||||
|
||||
#Set the current light value so we have something to compare to
|
||||
OldLight=$(cat $LSensorPath)
|
||||
if [[ -f /dev/shm/AB.offset ]]
|
||||
then
|
||||
OffSet=$(cat /dev/shm/AB.offset)
|
||||
else
|
||||
OffSet=0
|
||||
$(echo $OffSet > /dev/shm/AB.offset)
|
||||
$(chmod 666 /dev/shm/AB.offset)
|
||||
fi
|
||||
OldLight=$(($OffSet))
|
||||
|
||||
while true
|
||||
do
|
||||
|
@ -101,9 +108,8 @@ do
|
|||
$(chmod 666 /dev/shm/AB.offset)
|
||||
fi
|
||||
|
||||
Light=$(cat $LSensorPath)
|
||||
## apply offset to current light value
|
||||
Light=$((Light + OffSet))
|
||||
Light=$((OffSet))
|
||||
|
||||
# Set allowed range for light
|
||||
|
||||
|
@ -117,15 +123,15 @@ do
|
|||
|
||||
CurrentBrightness=$(cat $BLightPath)
|
||||
|
||||
# Add MinimumBrightness here to not effect comparison but the outcome
|
||||
Light=$(LC_NUMERIC=C printf "%.0f" $(echo "scale=2; $Light + ( ($MaxScreenBrightness * ( $MinimumBrightness / 100 )) / $SensorToDisplayScale ) " | bc ))
|
||||
# Add MinimumBrighness here to not effect comparison but the outcome
|
||||
Light=$(( $Light + $MinimumBrightness ))
|
||||
|
||||
# Generate a TempLight value for the screen to be set to
|
||||
# Gernate a TempLight value for the screen to be set to
|
||||
# Float math thanks Matthias_Wachter
|
||||
TempLight=$(LC_NUMERIC=C printf "%.0f" $(echo "scale=2; $Light * $SensorToDisplayScale" | bc))
|
||||
TempLight=$(LANG=C printf "%.0f" $(echo "scale=2; $Light * $SensorToDisplayScale" | bc))
|
||||
|
||||
|
||||
# Check we do not ask the screen to go brighter than it can
|
||||
# Check we dont ask the screen to go brighter than it can
|
||||
if [[ $TempLight -gt $MaxScreenBrightness ]]
|
||||
then
|
||||
NewLight=$MaxScreenBrightness
|
||||
|
@ -133,8 +139,8 @@ do
|
|||
NewLight=$TempLight
|
||||
fi
|
||||
|
||||
# How different should each stop be
|
||||
DiffCount=$(LC_NUMERIC=C printf "%.0f" $(echo "scale=2; ( $NewLight - $CurrentBrightness ) / $LevelSteps" | bc ))
|
||||
# How diffrent should each stop be
|
||||
DiffCount=$(LANG=C printf "%.0f" $(echo "scale=2; ( $NewLight - $CurrentBrightness ) / $LevelSteps" | bc ))
|
||||
|
||||
# Step once per Screen Hz to make animation
|
||||
for i in $(eval echo {1..$LevelSteps} )
|
||||
|
@ -156,7 +162,7 @@ do
|
|||
echo $FakeLight > $BLightPath
|
||||
fi
|
||||
|
||||
# Format values appropriately for brightnessctl
|
||||
# Format values apropriatly for brightnessctl
|
||||
#if [[ $NewLight -lt 0 ]]
|
||||
#then
|
||||
#NewLight=$( echo "$NewLight" | awk -F "-" {'print$2'})
|
||||
|
@ -165,7 +171,7 @@ do
|
|||
#NewLight=$(echo +$NewLight)
|
||||
#fi
|
||||
|
||||
# Adjust brightness relatively
|
||||
# Adjust brightness relativly
|
||||
#brightnessctl -q s $NewLight
|
||||
# Sleep for the screen Hz time so he effect is visible
|
||||
sleep $AnimationDelay
|
||||
|
|
|
@ -7,15 +7,8 @@ made for the FrameWork laptop
|
|||
|
||||
based on 2017 MacBook Pro
|
||||
|
||||
|
||||
read ```Configuration``` for detailed informatoion about what options you have to easily customize/ adjust the bightness or animation speed
|
||||
|
||||
## Updating
|
||||
Run ```git pull``` to download the latest version
|
||||
|
||||
Then run ```./setup -u``` to update the the service and script running on your system with newly downloaded / modifyed versions
|
||||
|
||||
|
||||
## Requires
|
||||
```bc```
|
||||
For running as your user you need to be part of the ```video``` group
|
||||
|
|
9
setup.sh
9
setup.sh
|
@ -1,11 +1,11 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
case $1 in
|
||||
-u) echo "Updating Mac-like-automatic-brightness..."
|
||||
-u) echo "Updading Mac-like-automatic-brightness..."
|
||||
echo "Stopping AB service..."
|
||||
sudo systemctl kill AB
|
||||
echo "Updating AutomaticBrightness.sh..."
|
||||
echo "Cloning AutomaticBrightness.sh..."
|
||||
echo "Cloning AutomaticBrighness.sh..."
|
||||
sudo cp AutomaticBrightness.sh /usr/local/bin/AutomaticBrightness.sh
|
||||
echo "Updating AB.service for systemD..."
|
||||
echo "Cloning AB.service for systemD..."
|
||||
|
@ -44,15 +44,14 @@ then
|
|||
awk -v new_phrase="$NewStep" '/LevelSteps=/{ print new_phrase; next } 1' AutomaticBrightness.sh > temp && mv temp AutomaticBrightness.sh
|
||||
fi
|
||||
|
||||
echo "Cloning AutomaticBrightness.sh..."
|
||||
echo "Cloning AutomaticBrighness.sh..."
|
||||
sudo cp AutomaticBrightness.sh /usr/local/bin/AutomaticBrightness.sh
|
||||
sudo chmod u+x /usr/local/bin/AutomaticBrightness.sh
|
||||
|
||||
echo "Cloning AB.service for systemD..."
|
||||
sudo cp AB.service /etc/systemd/system/AB.service
|
||||
|
||||
|
||||
echo "Starting Service..."
|
||||
echo "Startin Service..."
|
||||
sudo systemctl enable AB
|
||||
sudo systemctl start AB
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue