summaryrefslogtreecommitdiffstats
path: root/src/flashfetch.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/flashfetch.c')
-rw-r--r--src/flashfetch.c129
1 files changed, 129 insertions, 0 deletions
diff --git a/src/flashfetch.c b/src/flashfetch.c
new file mode 100644
index 0000000..e056ca2
--- /dev/null
+++ b/src/flashfetch.c
@@ -0,0 +1,129 @@
+#include "fastfetch.h"
+
+#include "common/init.h"
+#include "logo/logo.h"
+#include "modules/modules.h"
+
+#define MODULE_OPTION(name) \
+ FF_A_CLEANUP(ffDestroy##name##Options) FF##name##Options options; \
+ ffInit##name##Options(&options);
+
+// A dirty replicate of neofetch; demonstration only.
+int main(void) {
+ ffInitInstance(); // Init everything
+
+ // Modify global config here if needed
+ instance.config.display.sizeMaxPrefix = 2; // MB
+ instance.config.display.sizeNdigits = 0;
+ instance.config.display.freqNdigits = 3;
+ instance.config.display.freqSpaceBeforeUnit = FF_SPACE_BEFORE_UNIT_NEVER;
+ instance.config.display.sizeSpaceBeforeUnit = FF_SPACE_BEFORE_UNIT_NEVER;
+
+ // Some preparation stuff
+ ffStart();
+
+ // Print logo
+ ffLogoPrintDetected(FF_LOGO_SIZE_NORMAL);
+
+ // Print all modules
+ {
+ MODULE_OPTION(Title)
+ ffPrintTitle(&options);
+ }
+ {
+ MODULE_OPTION(Separator)
+ ffPrintSeparator(&options);
+ }
+ {
+ MODULE_OPTION(OS)
+ ffPrintOS(&options);
+ }
+ {
+ MODULE_OPTION(Host)
+ ffPrintHost(&options);
+ }
+ {
+ MODULE_OPTION(Kernel)
+ ffStrbufSetStatic(&options.moduleArgs.outputFormat, "{release}");
+ ffPrintKernel(&options);
+ }
+ {
+ MODULE_OPTION(Uptime)
+ ffPrintUptime(&options);
+ }
+ {
+ MODULE_OPTION(Packages)
+ options.combined = true;
+ ffPrintPackages(&options);
+ }
+ {
+ MODULE_OPTION(Shell)
+ ffPrintShell(&options);
+ }
+ {
+ MODULE_OPTION(Display)
+ options.compactType = FF_DISPLAY_COMPACT_TYPE_ORIGINAL_BIT;
+ ffStrbufSetStatic(&options.moduleArgs.key, "Resolution");
+ ffPrintDisplay(&options);
+ }
+ {
+ MODULE_OPTION(DE)
+ ffPrintDE(&options);
+ }
+ {
+ instance.config.general.detectVersion = false;
+ MODULE_OPTION(WM)
+ options.detectPlugin = true;
+ ffPrintWM(&options);
+ instance.config.general.detectVersion = true;
+ }
+ {
+ MODULE_OPTION(WMTheme)
+ ffPrintWMTheme(&options);
+ }
+ {
+ MODULE_OPTION(Theme)
+ ffPrintTheme(&options);
+ }
+ {
+ MODULE_OPTION(Icons)
+ ffPrintIcons(&options);
+ }
+ {
+ MODULE_OPTION(Terminal)
+ ffPrintTerminal(&options);
+ }
+ {
+ MODULE_OPTION(TerminalFont)
+ ffStrbufSetStatic(&options.moduleArgs.outputFormat, "{/name}{-}{/}{name}{?size} {size}{?}");
+ ffPrintTerminalFont(&options);
+ }
+ {
+ MODULE_OPTION(CPU)
+ ffPrintCPU(&options);
+ }
+ {
+ MODULE_OPTION(GPU)
+ ffStrbufSetStatic(&options.moduleArgs.key, "GPU");
+ ffStrbufSetStatic(&options.moduleArgs.outputFormat, "{name}");
+ ffPrintGPU(&options);
+ }
+ {
+ MODULE_OPTION(Memory)
+ ffStrbufSetStatic(&options.moduleArgs.outputFormat, "{} / {}");
+ ffPrintMemory(&options);
+ }
+ {
+ MODULE_OPTION(Break)
+ ffPrintBreak(&options);
+ }
+ {
+ MODULE_OPTION(Colors)
+ ffPrintColors(&options);
+ }
+
+ ffLogoPrintRemaining();
+ ffFinish();
+ ffDestroyInstance();
+ return 0;
+}