diff --git a/AB.service b/AB.service new file mode 100644 index 0000000..d6aa319 --- /dev/null +++ b/AB.service @@ -0,0 +1,12 @@ +[Unit] +Description=Mac like automatic brightness as service + +[Service] +Type=simple +Restart=no +RestartSec=1 + +ExecStart=/usr/local/bin/AutomaticBrightness.sh + +[Install] +WantedBy=default.target diff --git a/AutomaticBrightness.sh b/AutomaticBrightness.sh old mode 100644 new mode 100755 index a716c8f..4e8ee3f --- a/AutomaticBrightness.sh +++ b/AutomaticBrightness.sh @@ -16,8 +16,6 @@ AnimationDelay=0.016 # Read the variable names -MaxScreenBrightness=96000 - MinimumBrightness=001 @@ -34,14 +32,17 @@ do num=${OPTARG};; esac done -if [[ -f /tmp/AB.offset ]] + +if [[ -f /dev/shm/AB.offset ]] then - OffSet=$(cat /tmp/AB.offset) + OffSet=$(cat /dev/shm/AB.offset) else OffSet=0 - $(echo $OffSet > /tmp/AB.offset) + $(echo $OffSet > /dev/shm/AB.offset) + $(chmod 666 /dev/shm/AB.offset) fi + OffSet=$((OffSet < 0 ? 0 : OffSet)) @@ -56,7 +57,7 @@ then OffSet=$((OffSet < 0 ? 0 : OffSet)) - $(echo $OffSet > /tmp/AB.offset) + $(echo $OffSet > /dev/shm/AB.offset) exit @@ -68,36 +69,28 @@ priority=19 # Priority level , 0 = regular app , 19 = very much background app # Set the priority of the current script, Thank you Theluga. renice "$priority" "$$" +MaxScreenBrightness=$(find -L /sys/class/backlight -maxdepth 2 -name "max_brightness" 2>/dev/null | grep "max_brightness" | xargs cat) + +BLightPath=$(find -L /sys/class/backlight -maxdepth 2 -name "brightness" 2>/dev/null | grep "brightness") + +LSensorPath=$(find -L /sys/bus/iio/devices -maxdepth 2 -name "in_illuminance_raw" 2>/dev/null | grep "in_illuminance_raw") -touch '/tmp/AB.running' -OldLight=$(cat /sys/bus/iio/devices/iio\:device0/in_illuminance_raw) +OldLight=$(cat $LSensorPath) -until [ -f /tmp/AB.kill ] +while true do - if [[ -f /tmp/AB.stop ]] - then - rm '/tmp/AB.stop' - rm '/tmp/AB.running' - - until [[ -f /tmp/AB.start ]] - do - sleep 10 - done - rm '/tmp/AB.start' - touch '/tmp/AB.running' - else - - if [[ -f /tmp/AB.offset ]] + if [[ -f /dev/shm/AB.offset ]] then - OffSet=$(cat /tmp/AB.offset) + OffSet=$(cat /dev/shm/AB.offset) else OffSet=0 - $(echo $OffSet > /tmp/AB.offset) + $(echo $OffSet > /dev/shm/AB.offset) + $(chmod 666 /dev/shm/AB.offset) fi - Light=$(cat /sys/bus/iio/devices/iio\:device0/in_illuminance_raw) + Light=$(cat $LSensorPath) Light=$((Light + OffSet)) if [[ $Light -lt $LightChange ]] @@ -113,7 +106,7 @@ do then - CurrentBrightness=$(cat /sys/class/backlight/intel_backlight/brightness) + CurrentBrightness=$(cat $BLightPath) Light=$(( $Light + $MinimumBrightness )) @@ -152,13 +145,7 @@ do fi sleep $SensorDelay - fi - done -rm '/tmp/AB.running' -rm '/tmp/AB.kill' - - diff --git a/README.md b/README.md index 1a63342..b9faf48 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Mac-like-automatic-brightness -A simple script to provide a "Mac" like automatic brightness adjustemnt/ animation +A simple script to provide a "Mac" like automatic brightness adjustemnt/ animation. +## Now as a system service +Run ```setup.sh``` to make it a service made for the FrameWork laptop @@ -26,15 +28,8 @@ Your sensor has a diffrent range thant the 12th Gen Intel Framework laptop senso ```./AutomaticBrightness.sh -d [NUMBER] | Decrease the offset your brightness sensors raw reading ``` -```/tmp/AB.offset | Stores current offset for the sensor``` +```/dev/shm/AB.offset | Stores current offset for the sensor``` -```/tmp/AB.stop | Stops AutomaticBrightness.sh``` - -```/tmp/AB.start | Starts stopped AutomaticBrightness.sh``` - -```/tmp/AB.kill | Kills AutomaticBrightness.sh``` - -when running you will see a ```AB.running``` file and ```AB.offset``` in ```/tmp``` ## Configuring diff --git a/setup.sh b/setup.sh new file mode 100755 index 0000000..8689d3c --- /dev/null +++ b/setup.sh @@ -0,0 +1,16 @@ +#!/bin/bash +echo "Setting up AutomaticBrightness.sh as a service..." + +echo "Cloning AutomaticBrighness.sh..." +sudo cp AutomaticBrightness.sh /usr/local/bin/ + +echo "Cloning AB.service for systemD" +sudo cp AB.service /etc/systemd/system/ + + +echo "Startin Service..." +sudo systemctl enable AB +sudo systemctl start AB + + +