Files
emcomm-tools-os-community/overlay/opt/emcomm-tools/sbin/panasonic-set-brightness.sh
T

46 lines
1.3 KiB
Bash
Raw Normal View History

2024-03-20 06:09:19 -07:00
#!/bin/bash
#
# Author : Gaston Gonzalez
# Date : 16 January 2023
# Updated : 16 March 2024
# Purpose : Fix screen brightness on Panasonic hardware
#
# Note: This fix is based on the following article:
# https://www.bobjohnson.com/bloghow-to-install-ubuntu-on-a-panasonic-toughbook-cf31/
PATH=/opt/emcomm-tools/bin:$PATH
WatchDriver="/sys/class/backlight/panasonic"
PatchDriver="/sys/class/backlight/intel_backlight"
if [ ! -d $WatchDriver ]; then
et-log "This is not a Pansonic system. Exiting."
exit 1
fi
if [ ! -d $PatchDriver ]; then
et-log "Patch driver directory does not exist: ${PatchDriver}"
exit 1
fi
# Get maximum brightness values
WatchMax=$(cat $WatchDriver/max_brightness)
PatchMax=$(cat $PatchDriver/max_brightness)
SetBrightness () {
# Calculate watch current percentage
WatchAct=$(cat $WatchDriver/actual_brightness)
WatchPer=$(( WatchAct * 100 / WatchMax ))
# Reverse engineer patch brightness to set
PatchAct=$(( PatchMax * WatchPer / 100 ))
echo $PatchAct | sudo tee $PatchDriver/brightness
}
# When machine boots, set brightness to last saved value
SetBrightness
# Wait forever for user to press Fn keys adjusting brightness up/down.
while (true); do
/usr/bin/inotifywait --event modify $WatchDriver/actual_brightness
SetBrightness
done