1#!/bin/sh - 2# 3# Copyright (c) 2026 Kyle Evans <kevans@FreeBSD.org> 4# 5# SPDX-License-Identifier: BSD-2-Clause 6# 7 8# PROVIDE: backlight 9# REQUIRE: FILESYSTEMS kld 10# KEYWORD: nojail shutdown 11 12. /etc/rc.subr 13 14name="backlight" 15desc="Save and restore backlight values" 16rcvar="backlight_enable" 17stop_cmd="backlight_stop" 18start_cmd="backlight_start" 19reload_cmd="backlight_start" 20extra_commands="reload" 21 22backlightdb="/var/db/backlight" 23 24# 25# List current backlight devices to stdout. 26# 27list_backlights() 28{ 29 ( cd /dev/backlight ; ls backlight* 2>/dev/null ) 30} 31 32# 33# Save state of an individual backlight specified as $1 34# 35backlight_save() 36{ 37 local dev 38 39 dev="/dev/backlight/$1" 40 if [ -r "$dev" ]; then 41 /usr/bin/backlight -f "$dev" -q > "$backlightdb/$1-state" 2>/dev/null 42 fi 43} 44 45# 46# Restore the state of an individual backlight specified as $1 47# 48backlight_restore() 49{ 50 local file dev 51 52 dev="/dev/backlight/$1" 53 file="$backlightdb/$1-state" 54 if [ -r "$dev" -a -r "$file" ]; then 55 /usr/bin/backlight -f "$dev" $(cat "$file") > /dev/null 56 fi 57} 58 59# 60# Restore state of all backlights 61# 62backlight_start() 63{ 64 local backlight 65 66 for backlight in $(list_backlights); do 67 backlight_restore "$backlight" 68 done 69} 70 71# 72# Save the state of all backlights 73# 74backlight_stop() 75{ 76 local backlight 77 78 for backlight in $(list_backlights); do 79 backlight_save "$backlight" 80 done 81} 82 83load_rc_config $name 84 85# doesn't make sense to run in a svcj: config setting 86backlight_svcj="NO" 87 88run_rc_command "$1" 89