master ohmu/fastfetch-openbsd / src / detection / brightness / brightness_nbsd.c
ohmu  ·  2026-10-15
 1#include "brightness.h"
 2
 3#include "common/sysctl.h"
 4
 5const char* ffDetectBrightness([[maybe_unused]] FFBrightnessOptions* options, FFlist* result) {
 6    // https://man.netbsd.org/NetBSD-10.1/acpiout.4#DESCRIPTION
 7    char key[] = "hw.acpi.acpiout0.brightness";
 8    char* pn = key + strlen("hw.acpi.acpiout");
 9
10    for (uint32_t i = 0; i <= 9; ++i) {
11        *pn = (char) ('0' + i);
12        int value = ffSysctlGetInt(key, -1);
13        if (value == -1) {
14            continue;
15        }
16
17        FFBrightnessResult* brightness = FF_LIST_ADD(FFBrightnessResult, *result);
18        ffStrbufInitF(&brightness->name, "acpiout%d", i);
19
20        brightness->max = 100;
21        brightness->min = 0;
22        brightness->current = value;
23        brightness->builtin = true;
24    }
25    return nullptr;
26}