Второй способ заключается в создании специального устройства, чтение из которого возвращает текущий уровень подсветки, а запись в которое изменяет этот уровень. И такое устройство было создано. Это потребовало гораздо крупных вмешательств в код, включая изменение нескольких Makefile, файла системных настроек (sys/conf/options), добавление каталога с исходными файлами устройства.
Устройство работало, но это нисколько не помогло сторонним утилитам увидеть наличие регулировки подсветки. Дело в том, что для этих утилит критичным оказалось наличие каталога /sys/class/backlight/something, в котором располагались специальные файлы actual_brightness, brightness, max_brightness, subsystem/, uevent, bl_power, device/, power/ и тому подобные.
Это так называемая Линукс-sysfs, которой нет (или я не нашёл) в DragonFly BSD. Создавать её аналог для регулирования уровня подсветки… пожалуй overkill. Так что вместо этого я сделал:
Первый скрипт brightness-inc.sh
увеличивает яркость:
#!/bin/sh
LVL=`/sbin/sysctl -n hw.backlight_level`
/sbin/sysctl hw.backlight_level=$(( ${LVL} + 50 ))
Второй скрипт brightness-dec.sh
уменьшает:
#!/bin/sh
LVL=`/sbin/sysctl -n hw.backlight_level`
/sbin/sysctl hw.backlight_level=$(( ${LVL} - 50 ))
В файле .xbindkeysrc
указываем привязку скриптов к клавишам:
# brightness
"brightness-dec.sh"
F6
"brightness-inc.sh"
F7