2021-02-27 18:30:05 +01:00
|
|
|
#include "fastfetch.h"
|
|
|
|
|
|
2025-04-14 10:28:01 +08:00
|
|
|
#include "common/init.h"
|
2025-11-05 10:00:31 +08:00
|
|
|
#include "logo/logo.h"
|
2023-03-07 16:13:53 +08:00
|
|
|
#include "modules/modules.h"
|
2023-03-07 14:56:13 +08:00
|
|
|
|
2026-04-12 19:19:55 +08:00
|
|
|
#define MODULE_OPTION(name) \
|
2026-04-09 16:20:59 +08:00
|
|
|
FF_A_CLEANUP(ffDestroy##name##Options) FF##name##Options options; \
|
2026-03-29 09:11:48 +08:00
|
|
|
ffInit##name##Options(&options);
|
|
|
|
|
|
|
|
|
|
// A dirty replicate of neofetch; demonstration only.
|
2026-03-29 09:28:49 +08:00
|
|
|
int main(void) {
|
2025-08-04 14:25:14 +08:00
|
|
|
ffInitInstance(); // Init everything
|
2021-02-27 18:30:05 +01:00
|
|
|
|
2025-08-04 14:25:14 +08:00
|
|
|
// Modify global config here if needed
|
|
|
|
|
instance.config.display.sizeMaxPrefix = 2; // MB
|
2025-08-14 13:32:21 +08:00
|
|
|
instance.config.display.sizeNdigits = 0;
|
2025-08-04 14:25:14 +08:00
|
|
|
instance.config.display.freqNdigits = 3;
|
|
|
|
|
instance.config.display.freqSpaceBeforeUnit = FF_SPACE_BEFORE_UNIT_NEVER;
|
|
|
|
|
instance.config.display.sizeSpaceBeforeUnit = FF_SPACE_BEFORE_UNIT_NEVER;
|
2022-01-18 18:56:37 +01:00
|
|
|
|
2026-01-15 15:03:38 +08:00
|
|
|
// Some preparation stuff
|
2023-06-24 10:59:53 +08:00
|
|
|
ffStart();
|
2021-06-17 13:49:25 +02:00
|
|
|
|
2026-01-15 15:03:38 +08:00
|
|
|
// Print logo
|
2026-05-28 19:18:35 +08:00
|
|
|
ffLogoPrintDetected(FF_LOGO_SIZE_NORMAL);
|
2026-01-15 15:03:38 +08:00
|
|
|
|
2025-08-04 14:25:14 +08:00
|
|
|
// Print all modules
|
|
|
|
|
{
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(Title)
|
2025-08-04 14:25:14 +08:00
|
|
|
ffPrintTitle(&options);
|
|
|
|
|
}
|
|
|
|
|
{
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(Separator)
|
2025-08-04 14:25:14 +08:00
|
|
|
ffPrintSeparator(&options);
|
|
|
|
|
}
|
|
|
|
|
{
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(OS)
|
2025-08-04 14:25:14 +08:00
|
|
|
ffPrintOS(&options);
|
|
|
|
|
}
|
|
|
|
|
{
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(Host)
|
2025-08-04 14:25:14 +08:00
|
|
|
ffPrintHost(&options);
|
|
|
|
|
}
|
|
|
|
|
{
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(Kernel)
|
2025-08-04 14:25:14 +08:00
|
|
|
ffStrbufSetStatic(&options.moduleArgs.outputFormat, "{release}");
|
|
|
|
|
ffPrintKernel(&options);
|
|
|
|
|
}
|
|
|
|
|
{
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(Uptime)
|
2025-08-04 14:25:14 +08:00
|
|
|
ffPrintUptime(&options);
|
|
|
|
|
}
|
|
|
|
|
{
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(Packages)
|
2025-08-04 14:25:14 +08:00
|
|
|
options.combined = true;
|
|
|
|
|
ffPrintPackages(&options);
|
|
|
|
|
}
|
|
|
|
|
{
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(Shell)
|
2025-08-04 14:25:14 +08:00
|
|
|
ffPrintShell(&options);
|
|
|
|
|
}
|
|
|
|
|
{
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(Display)
|
2025-08-04 14:25:14 +08:00
|
|
|
options.compactType = FF_DISPLAY_COMPACT_TYPE_ORIGINAL_BIT;
|
|
|
|
|
ffStrbufSetStatic(&options.moduleArgs.key, "Resolution");
|
|
|
|
|
ffPrintDisplay(&options);
|
|
|
|
|
}
|
|
|
|
|
{
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(DE)
|
2025-08-04 14:25:14 +08:00
|
|
|
ffPrintDE(&options);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
instance.config.general.detectVersion = false;
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(WM)
|
2025-08-04 14:25:14 +08:00
|
|
|
options.detectPlugin = true;
|
|
|
|
|
ffPrintWM(&options);
|
|
|
|
|
instance.config.general.detectVersion = true;
|
|
|
|
|
}
|
|
|
|
|
{
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(WMTheme)
|
2025-08-04 14:25:14 +08:00
|
|
|
ffPrintWMTheme(&options);
|
|
|
|
|
}
|
|
|
|
|
{
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(Theme)
|
2025-08-04 14:25:14 +08:00
|
|
|
ffPrintTheme(&options);
|
|
|
|
|
}
|
|
|
|
|
{
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(Icons)
|
2025-08-04 14:25:14 +08:00
|
|
|
ffPrintIcons(&options);
|
|
|
|
|
}
|
|
|
|
|
{
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(Terminal)
|
2025-08-04 14:25:14 +08:00
|
|
|
ffPrintTerminal(&options);
|
|
|
|
|
}
|
|
|
|
|
{
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(TerminalFont)
|
2025-08-04 14:25:14 +08:00
|
|
|
ffStrbufSetStatic(&options.moduleArgs.outputFormat, "{/name}{-}{/}{name}{?size} {size}{?}");
|
|
|
|
|
ffPrintTerminalFont(&options);
|
|
|
|
|
}
|
|
|
|
|
{
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(CPU)
|
2025-08-04 14:25:14 +08:00
|
|
|
ffPrintCPU(&options);
|
|
|
|
|
}
|
|
|
|
|
{
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(GPU)
|
2025-08-04 14:25:14 +08:00
|
|
|
ffStrbufSetStatic(&options.moduleArgs.key, "GPU");
|
|
|
|
|
ffStrbufSetStatic(&options.moduleArgs.outputFormat, "{name}");
|
|
|
|
|
ffPrintGPU(&options);
|
|
|
|
|
}
|
|
|
|
|
{
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(Memory)
|
2025-08-04 14:25:14 +08:00
|
|
|
ffStrbufSetStatic(&options.moduleArgs.outputFormat, "{} / {}");
|
|
|
|
|
ffPrintMemory(&options);
|
|
|
|
|
}
|
|
|
|
|
{
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(Break)
|
2025-08-04 14:25:14 +08:00
|
|
|
ffPrintBreak(&options);
|
|
|
|
|
}
|
|
|
|
|
{
|
2026-03-29 09:11:48 +08:00
|
|
|
MODULE_OPTION(Colors)
|
2025-08-04 14:25:14 +08:00
|
|
|
ffPrintColors(&options);
|
|
|
|
|
}
|
2021-02-27 18:30:05 +01:00
|
|
|
|
2025-11-05 10:00:31 +08:00
|
|
|
ffLogoPrintRemaining();
|
2023-06-24 10:59:53 +08:00
|
|
|
ffFinish();
|
|
|
|
|
ffDestroyInstance();
|
2021-02-27 18:30:05 +01:00
|
|
|
return 0;
|
2021-03-27 18:14:19 +01:00
|
|
|
}
|