<to...@tuxteam.de> writes: > On Thu, Jan 11, 2024 at 08:53:46AM +0000, Rodolfo Medina wrote: >> As my machine has a dual boot with MS Windows, F2 and F3 keyboard keys work >> fine in Windows in lowering and increasing sound volume, and F1 for muting it >> etcetera F4, F5, F6..., but in Debian they don't seem to work. > > "In Debian" is a wide land :-)
It's Bookworm with Openbox. > OT1H... > > A week ago I installed Debian's Bookworm with MATE on a friend's computer > (Thinkpad x270) and the loudness keys worked out of the box. > > OTOH... > > Myself -- I have no desktop environment (fvwm on X, *no* systemd, *no* > DBUS, so that would count as "exotic guy"). > > On my laptop (a Thinkpad x230) the background brightness wasn't working > (I don't know about the loudness things, since I never needed/used them). > > Therefore I decided to catch ACPI events and set up this: > > --- --- > tomas@trotzki:~$ cat /etc/acpi/events/briteup > > event=video/brightnessup > action=/etc/acpi/actions/brite "%e" > --- --- > tomas@trotzki:~$ cat /etc/acpi/events/britedn > > event=video/brightnessdown > action=/etc/acpi/actions/brite "%e" > --- --- > tomas@trotzki:~$ cat /etc/acpi/actions/brite > > #!/bin/sh > logger "[ACPI] $@" > BASE="/sys/class/backlight/intel_backlight" > CURR=$(cat "$BASE/brightness") > MAX=$(cat "$BASE/max_brightness") > # MIN is some arbitrary "low" value. Note that for values > # of MIN below 6 (more precisely: 2/11 for our factor), the > # thing gets stuck at the low end: (13 * x) / 11 == x, > # in integer arithmetic, for x <= 5. > # > # The "exponential" algorithm is a bit long at the low > # end. We might consider stretching there. Or increasing > # MIN. > > MIN=20 > if [ "$CURR" -lt "$MIN" ] ; then CURR="$MIN" ; fi > > # NOTE: 11/13 is approx the fourth root of 1/2: > # i.e. four steps are a doubling/halving > # of brightness (constant steps gave too > # coarse jumps in the low range) > > case $1 in > video/brightnessdown* ) > NEW=$(( (11 * CURR) / 13 )) > ;; > video/brightnessup* ) > NEW=$(( (13 * CURR) / 11 )) > ;; > * ) > exit 0 > ;; > esac > > if [ "$NEW" -lt "$MIN" ] ; then NEW="$MIN" ; fi > if [ "$NEW" -gt "$MAX" ] ; then NEW="$MAX" ; fi > logger "[ACPI] brightness $CURR --> $NEW" > echo "$NEW" > $BASE/brightness > --- --- > > (The charm of using ACPI is that it works independently of X). > > To find which events to wait on, just run acpi_listen on a > terminal and hit your dream's key. Following your example, I aptitude-installed acpid and created /etc/apt/events/briteup and /etc/acpi/actions/brite and filled them with the stuff you reported; and then I did `chmod +x brite'... Then? Thanks, Rodolfo