master ohmu/fastfetch-openbsd / src / modules / modules.c
ohmu  ·  2026-10-15
  1#include "modules/modules.h"
  2
  3// Note:
  4// FF_MODULE_DISABLE_<module> only controls if the module is registered,
  5// the module code itself is still compiled.
  6// We rely `LTO` to remove the unused code (only enabled in Release mode)
  7
  8static FFModuleBaseInfo* A[] = {
  9    nullptr,
 10};
 11
 12static FFModuleBaseInfo* B[] = {
 13#if !FF_MODULE_DISABLE_BATTERY
 14    &ffBatteryModuleInfo,
 15#endif
 16#if !FF_MODULE_DISABLE_BIOS
 17    &ffBiosModuleInfo,
 18#endif
 19#if !FF_MODULE_DISABLE_BLUETOOTH
 20    &ffBluetoothModuleInfo,
 21#endif
 22#if !FF_MODULE_DISABLE_BLUETOOTHRADIO
 23    &ffBluetoothRadioModuleInfo,
 24#endif
 25#if !FF_MODULE_DISABLE_BOARD
 26    &ffBoardModuleInfo,
 27#endif
 28#if !FF_MODULE_DISABLE_BOOTMGR
 29    &ffBootmgrModuleInfo,
 30#endif
 31#if !FF_MODULE_DISABLE_BREAK
 32    &ffBreakModuleInfo,
 33#endif
 34#if !FF_MODULE_DISABLE_BRIGHTNESS
 35    &ffBrightnessModuleInfo,
 36#endif
 37#if !FF_MODULE_DISABLE_BTRFS
 38    &ffBtrfsModuleInfo,
 39#endif
 40    nullptr,
 41};
 42
 43static FFModuleBaseInfo* C[] = {
 44#if !FF_MODULE_DISABLE_CAMERA
 45    &ffCameraModuleInfo,
 46#endif
 47#if !FF_MODULE_DISABLE_CHASSIS
 48    &ffChassisModuleInfo,
 49#endif
 50#if !FF_MODULE_DISABLE_CODEC
 51    &ffCodecModuleInfo,
 52#endif
 53#if !FF_MODULE_DISABLE_COMMAND
 54    &ffCommandModuleInfo,
 55#endif
 56#if !FF_MODULE_DISABLE_COLORS
 57    &ffColorsModuleInfo,
 58#endif
 59#if !FF_MODULE_DISABLE_CPU
 60    &ffCPUModuleInfo,
 61#endif
 62#if !FF_MODULE_DISABLE_CPUCACHE
 63    &ffCPUCacheModuleInfo,
 64#endif
 65#if !FF_MODULE_DISABLE_CPUUSAGE
 66    &ffCPUUsageModuleInfo,
 67#endif
 68#if !FF_MODULE_DISABLE_CURSOR
 69    &ffCursorModuleInfo,
 70#endif
 71#if !FF_MODULE_DISABLE_CUSTOM
 72    &ffCustomModuleInfo,
 73#endif
 74    nullptr,
 75};
 76
 77static FFModuleBaseInfo* D[] = {
 78#if !FF_MODULE_DISABLE_DATETIME
 79    &ffDateTimeModuleInfo,
 80#endif
 81#if !FF_MODULE_DISABLE_DE
 82    &ffDEModuleInfo,
 83#endif
 84#if !FF_MODULE_DISABLE_DISPLAY
 85    &ffDisplayModuleInfo,
 86#endif
 87#if !FF_MODULE_DISABLE_DISK
 88    &ffDiskModuleInfo,
 89#endif
 90#if !FF_MODULE_DISABLE_DISKIO
 91    &ffDiskIOModuleInfo,
 92#endif
 93#if !FF_MODULE_DISABLE_DNS
 94    &ffDNSModuleInfo,
 95#endif
 96    nullptr,
 97};
 98
 99static FFModuleBaseInfo* E[] = {
100#if !FF_MODULE_DISABLE_EDITOR
101    &ffEditorModuleInfo,
102#endif
103    nullptr,
104};
105
106static FFModuleBaseInfo* F[] = {
107#if !FF_MODULE_DISABLE_FONT
108    &ffFontModuleInfo,
109#endif
110    nullptr,
111};
112
113static FFModuleBaseInfo* G[] = {
114#if !FF_MODULE_DISABLE_GAMEPAD
115    &ffGamepadModuleInfo,
116#endif
117#if !FF_MODULE_DISABLE_GPU
118    &ffGPUModuleInfo,
119#endif
120    nullptr,
121};
122
123static FFModuleBaseInfo* H[] = {
124#if !FF_MODULE_DISABLE_HOST
125    &ffHostModuleInfo,
126#endif
127    nullptr,
128};
129
130static FFModuleBaseInfo* I[] = {
131#if !FF_MODULE_DISABLE_ICONS
132    &ffIconsModuleInfo,
133#endif
134#if !FF_MODULE_DISABLE_INITSYSTEM
135    &ffInitSystemModuleInfo,
136#endif
137    nullptr,
138};
139
140static FFModuleBaseInfo* J[] = {
141    nullptr,
142};
143
144static FFModuleBaseInfo* K[] = {
145#if !FF_MODULE_DISABLE_KERNEL
146    &ffKernelModuleInfo,
147#endif
148#if !FF_MODULE_DISABLE_KEYBOARD
149    &ffKeyboardModuleInfo,
150#endif
151    nullptr,
152};
153
154static FFModuleBaseInfo* L[] = {
155#if !FF_MODULE_DISABLE_LM
156    &ffLMModuleInfo,
157#endif
158#if !FF_MODULE_DISABLE_LOADAVG
159    &ffLoadavgModuleInfo,
160#endif
161#if !FF_MODULE_DISABLE_LOCALE
162    &ffLocaleModuleInfo,
163#endif
164#if !FF_MODULE_DISABLE_LOCALIP
165    &ffLocalIPModuleInfo,
166#endif
167#if !FF_MODULE_DISABLE_LOGO
168    &ffLogoModuleInfo,
169#endif
170    nullptr,
171};
172
173static FFModuleBaseInfo* M[] = {
174#if !FF_MODULE_DISABLE_MEDIA
175    &ffMediaModuleInfo,
176#endif
177#if !FF_MODULE_DISABLE_MEMORY
178    &ffMemoryModuleInfo,
179#endif
180#if !FF_MODULE_DISABLE_MONITOR
181    &ffMonitorModuleInfo,
182#endif
183#if !FF_MODULE_DISABLE_MOUSE
184    &ffMouseModuleInfo,
185#endif
186    nullptr,
187};
188
189static FFModuleBaseInfo* N[] = {
190#if !FF_MODULE_DISABLE_NETIO
191    &ffNetIOModuleInfo,
192#endif
193    nullptr,
194};
195
196static FFModuleBaseInfo* O[] = {
197#if !FF_MODULE_DISABLE_OPENCL
198    &ffOpenCLModuleInfo,
199#endif
200#if !FF_MODULE_DISABLE_OPENGL
201    &ffOpenGLModuleInfo,
202#endif
203#if !FF_MODULE_DISABLE_OS
204    &ffOSModuleInfo,
205#endif
206    nullptr,
207};
208
209static FFModuleBaseInfo* P[] = {
210#if !FF_MODULE_DISABLE_PACKAGES
211    &ffPackagesModuleInfo,
212#endif
213#if !FF_MODULE_DISABLE_PHYSICALDISK
214    &ffPhysicalDiskModuleInfo,
215#endif
216#if !FF_MODULE_DISABLE_PHYSICALMEMORY
217    &ffPhysicalMemoryModuleInfo,
218#endif
219#if !FF_MODULE_DISABLE_PLAYER
220    &ffPlayerModuleInfo,
221#endif
222#if !FF_MODULE_DISABLE_POWERADAPTER
223    &ffPowerAdapterModuleInfo,
224#endif
225#if !FF_MODULE_DISABLE_PROCESSES
226    &ffProcessesModuleInfo,
227#endif
228#if !FF_MODULE_DISABLE_PUBLICIP
229    &ffPublicIPModuleInfo,
230#endif
231    nullptr,
232};
233
234static FFModuleBaseInfo* Q[] = {
235    nullptr,
236};
237
238static FFModuleBaseInfo* R[] = {
239    nullptr,
240};
241
242static FFModuleBaseInfo* S[] = {
243#if !FF_MODULE_DISABLE_SEPARATOR
244    &ffSeparatorModuleInfo,
245#endif
246#if !FF_MODULE_DISABLE_SHELL
247    &ffShellModuleInfo,
248#endif
249#if !FF_MODULE_DISABLE_SOUND
250    &ffSoundModuleInfo,
251#endif
252#if !FF_MODULE_DISABLE_SWAP
253    &ffSwapModuleInfo,
254#endif
255    nullptr,
256};
257
258static FFModuleBaseInfo* T[] = {
259#if !FF_MODULE_DISABLE_TERMINAL
260    &ffTerminalModuleInfo,
261#endif
262#if !FF_MODULE_DISABLE_TERMINALFONT
263    &ffTerminalFontModuleInfo,
264#endif
265#if !FF_MODULE_DISABLE_TERMINALSIZE
266    &ffTerminalSizeModuleInfo,
267#endif
268#if !FF_MODULE_DISABLE_TERMINALTHEME
269    &ffTerminalThemeModuleInfo,
270#endif
271#if !FF_MODULE_DISABLE_TITLE
272    &ffTitleModuleInfo,
273#endif
274#if !FF_MODULE_DISABLE_TOP
275    &ffTopModuleInfo,
276#endif
277#if !FF_MODULE_DISABLE_THEME
278    &ffThemeModuleInfo,
279#endif
280#if !FF_MODULE_DISABLE_TPM
281    &ffTPMModuleInfo,
282#endif
283    nullptr,
284};
285
286static FFModuleBaseInfo* U[] = {
287#if !FF_MODULE_DISABLE_UPTIME
288    &ffUptimeModuleInfo,
289#endif
290#if !FF_MODULE_DISABLE_USERS
291    &ffUsersModuleInfo,
292#endif
293    nullptr,
294};
295
296static FFModuleBaseInfo* V[] = {
297#if !FF_MODULE_DISABLE_VERSION
298    &ffVersionModuleInfo,
299#endif
300#if !FF_MODULE_DISABLE_VULKAN
301    &ffVulkanModuleInfo,
302#endif
303    nullptr,
304};
305
306static FFModuleBaseInfo* W[] = {
307#if !FF_MODULE_DISABLE_WALLPAPER
308    &ffWallpaperModuleInfo,
309#endif
310#if !FF_MODULE_DISABLE_WEATHER
311    &ffWeatherModuleInfo,
312#endif
313#if !FF_MODULE_DISABLE_WM
314    &ffWMModuleInfo,
315#endif
316#if !FF_MODULE_DISABLE_WIFI
317    &ffWifiModuleInfo,
318#endif
319#if !FF_MODULE_DISABLE_WMTHEME
320    &ffWMThemeModuleInfo,
321#endif
322    nullptr,
323};
324
325static FFModuleBaseInfo* X[] = {
326    nullptr,
327};
328
329static FFModuleBaseInfo* Y[] = {
330    nullptr,
331};
332
333static FFModuleBaseInfo* Z[] = {
334#if !FF_MODULE_DISABLE_ZPOOL
335    &ffZpoolModuleInfo,
336#endif
337    nullptr,
338};
339
340FFModuleBaseInfo** ffModuleInfos[] = {
341    A,
342    B,
343    C,
344    D,
345    E,
346    F,
347    G,
348    H,
349    I,
350    J,
351    K,
352    L,
353    M,
354    N,
355    O,
356    P,
357    Q,
358    R,
359    S,
360    T,
361    U,
362    V,
363    W,
364    X,
365    Y,
366    Z,
367};