47 lines
1.1 KiB
Text
47 lines
1.1 KiB
Text
|
|
#!/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"
|