dotfiles/.local/bin/set-keyboard-brightness-default

47 lines
1.1 KiB
Text
Raw Normal View History

#!/bin/sh
set -eu
# Loaded from ~/.config/environment.d/50-defaults.conf or a local override
BRIGHTNESS="${DEFAULT_KEYBOARD_BRIGHTNESS:?unset, check ~/.config/environment.d/}"
# Nothing to do on machines without a keyboard backlight
KBD_DEVICE=
for led in /sys/class/leds/*kbd_backlight*; do
[ -e "$led" ] || break
KBD_DEVICE=$led
break
done
if [ -z "$KBD_DEVICE" ]; then
echo "No keyboard backlight, skipping"
exit 0
fi
kbd_set() {
gdbus call --session \
--dest org.gnome.SettingsDaemon.Power \
--object-path /org/gnome/SettingsDaemon/Power \
--method org.freedesktop.DBus.Properties.Set \
org.gnome.SettingsDaemon.Power.Keyboard Brightness "<int32 $BRIGHTNESS>" \
>/dev/null
}
gdbus wait --session --timeout 10 org.gnome.SettingsDaemon.Power
# `gsd-power` owns its bus name before it has probed the keyboard
# backlight, so at login the first write may silently be discarded
kbd_set
if [ "$(cat "$KBD_DEVICE/brightness")" = "0" ]; then
sleep 3
kbd_set
fi
echo "Set keyboard brightness to $BRIGHTNESS"