master ohmu/fastfetch-openbsd / src / detection / theme / theme_windows.c
ohmu  ·  2026-10-15
 1#include "theme.h"
 2
 3#include "detection/os/os.h"
 4#include "detection/displayserver/displayserver.h"
 5
 6const char* ffDetectTheme(FFThemeResult* result) {
 7    const FFOSResult* os = ffDetectOS();
 8    const FFDisplayServerResult* displayServer = ffConnectDisplayServer();
 9    if (ffStrbufEqualS(&displayServer->wmProcessName, "dwm.exe")) {
10
11    uint32_t ver = (uint32_t) ffStrbufToUInt(&os->version, 0);
12        if (ver > 1000) {
13            // Windows Server
14            if (ver >= 2016) {
15                ffStrbufSetStatic(&result->theme1, "Fluent");
16            } else if (ver >= 2012) {
17                ffStrbufSetStatic(&result->theme1, "Metro");
18            } else {
19                ffStrbufSetStatic(&result->theme1, "Aero");
20            }
21        } else {
22            if (ver >= 10) {
23                ffStrbufSetStatic(&result->theme1, "Fluent");
24            } else if (ver >= 8) {
25                ffStrbufSetStatic(&result->theme1, "Metro");
26            } else {
27                ffStrbufSetStatic(&result->theme1, "Aero");
28            }
29        }
30    } else if (ffStrbufEqualS(&displayServer->wmProcessName, "explorer.exe")) {
31        ffStrbufSetStatic(&result->theme1, "Basic");
32    }
33    return nullptr;
34}