#!/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 "" \ >/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"