Re: Need help controlling laptom display brightness via sysctl

From: Anton Shepelev <anton.txt_at_gmail.com>
Date: Sun, 07 Jul 2024 19:27:54 UTC
I wrote to Kevin Oberman:

> I fear you missed my point that HP seems to have a
> different approach to these ACPI events.  In ThinkPad, the
> up- and down-brighness events have fixed notify codes:
> 0x10 and 0x11.  In HP, on the other hand, the notify codes
> represent the target brightness level on a 0..100 scale,
> so that consequtive presses of Fn+F3 yield an arithmetical
> progression of notify codes, e.g. 51,52,53 &c, which is
> why the simplest solution is to subsitute the notify value
> into the invocation of `backlight'.
>
> Translating those codes into exponential changes would
> require first of all to recall the previous value in order
> to determine whether the current event is an increase or a
> decrease.

Indeed, and here is my final devd action stript:

   REF=50 # an (arbitrary) reference value
   NEW=$1 # the new brightness value as recevied from ACPI

   # Ignore the ref. value to avoid an infinite loop:
   if [ $NEW -eq $REF ]; then exit 0; fi

   # Determine whether to increase or decrease the brightness:
   if [ $NEW -lt $REF ];
        then OP=decr
        else OP=incr; fi

   # Change brightness:
   backlight $OP

   # Restore the reference value:
   sysctl hw.acpi.video.lcd0.brightness=$REF
   # (in this system it has no effect on the actual brightness)