Skip to content

Commit 564ddfc

Browse files
Merge pull request #95 from CarterLi/master
Add a new module that shows the number of current running processes
2 parents 072a4bc + 181dfb5 commit 564ddfc

File tree

9 files changed

+49
-1
lines changed

9 files changed

+49
-1
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ set(SRCS
9898
src/modules/host.c
9999
src/modules/kernel.c
100100
src/modules/uptime.c
101+
src/modules/processes.c
101102
src/modules/packages.c
102103
src/modules/shell.c
103104
src/modules/resolution.c

completions/bash

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,8 @@ __fastfetch_completion()
145145
"--kernel-key"
146146
"--uptime-format"
147147
"--uptime-key"
148+
"--processes-format"
149+
"--processes-key"
148150
"--packages-format"
149151
"--packages-key"
150152
"--shell-format"

src/common/format.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ void ffFormatAppendFormatArg(FFstrbuf* buffer, const FFformatarg* formatarg)
66
ffStrbufAppendF(buffer, "%i", *(int*)formatarg->value);
77
else if(formatarg->type == FF_FORMAT_ARG_TYPE_UINT)
88
ffStrbufAppendF(buffer, "%u", *(uint32_t*)formatarg->value);
9+
else if(formatarg->type == FF_FORMAT_ARG_TYPE_UINT16)
10+
ffStrbufAppendF(buffer, "%hu", *(uint16_t*)formatarg->value);
911
else if(formatarg->type == FF_FORMAT_ARG_TYPE_UINT8)
1012
ffStrbufAppendF(buffer, "%hhu", *(uint8_t*)formatarg->value);
1113
else if(formatarg->type == FF_FORMAT_ARG_TYPE_STRING)
@@ -74,6 +76,7 @@ static inline bool formatArgSet(const FFformatarg* arg)
7476
(arg->type == FF_FORMAT_ARG_TYPE_STRBUF && ((FFstrbuf*)arg->value)->length > 0) ||
7577
(arg->type == FF_FORMAT_ARG_TYPE_STRING && *(const char*)arg->value != '\0') ||
7678
(arg->type == FF_FORMAT_ARG_TYPE_UINT8 && *(uint8_t*)arg->value > 0) ||
79+
(arg->type == FF_FORMAT_ARG_TYPE_UINT16 && *(uint16_t*)arg->value > 0) ||
7780
(arg->type == FF_FORMAT_ARG_TYPE_UINT && *(uint32_t*)arg->value > 0)
7881
);
7982
}

src/common/init.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,8 @@ static void defaultConfig(FFinstance* instance)
129129
ffStrbufInitA(&instance->config.kernelKey, 1);
130130
ffStrbufInitA(&instance->config.uptimeFormat, 1);
131131
ffStrbufInitA(&instance->config.uptimeKey, 1);
132+
ffStrbufInitA(&instance->config.processesFormat, 1);
133+
ffStrbufInitA(&instance->config.processesKey, 1);
132134
ffStrbufInitA(&instance->config.packagesFormat, 1);
133135
ffStrbufInitA(&instance->config.packagesKey, 1);
134136
ffStrbufInitA(&instance->config.shellFormat, 1);

src/fastfetch.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ static inline void printHelp()
7171
" --host-format <format>\n"
7272
" --kernel-format <format>\n"
7373
" --uptime-format <format>\n"
74+
" --processes-format <format>\n"
7475
" --packages-format <format>\n"
7576
" --shell-format <format>\n"
7677
" --resolution-format <format>\n"
@@ -96,6 +97,7 @@ static inline void printHelp()
9697
" --host-key <key>\n"
9798
" --kernel-key <key>\n"
9899
" --uptime-key <key>\n"
100+
" --processes-key <key>\n"
99101
" --packages-key <key>\n"
100102
" --shell-key <key>\n"
101103
" --resolution-key <key>: takes the resolution index as argument\n"
@@ -286,6 +288,12 @@ static inline void printCommandHelp(const char* command)
286288
"Seconds"
287289
);
288290
}
291+
else if(strcasecmp(command, "processes-format") == 0)
292+
{
293+
constructAndPrintCommandHelpFormat("processes", "{}", 1,
294+
"Count"
295+
);
296+
}
289297
else if(strcasecmp(command, "packages-format") == 0)
290298
{
291299
constructAndPrintCommandHelpFormat("packages", "{2} (pacman){?3}[{3}]{?}, {4} (dpkg), {5} (rpm), {6} (xps), {7}, (flatpak), {8} (snap)", 8,
@@ -501,6 +509,7 @@ static inline void printAvailableModules()
501509
"Memory\n"
502510
"OS\n"
503511
"Packages\n"
512+
"Processes\n"
504513
"Resolution\n"
505514
"Separator\n"
506515
"Shell\n"
@@ -848,6 +857,10 @@ static void parseOption(FFinstance* instance, FFdata* data, const char* key, con
848857
optionParseString(key, value, &instance->config.uptimeFormat);
849858
else if(strcasecmp(key, "--uptime-key") == 0)
850859
optionParseString(key, value, &instance->config.uptimeKey);
860+
else if(strcasecmp(key, "--processes-format") == 0)
861+
optionParseString(key, value, &instance->config.processesFormat);
862+
else if(strcasecmp(key, "--processes-key") == 0)
863+
optionParseString(key, value, &instance->config.processesKey);
851864
else if(strcasecmp(key, "--packages-format") == 0)
852865
optionParseString(key, value, &instance->config.packagesFormat);
853866
else if(strcasecmp(key, "--packages-key") == 0)
@@ -1043,6 +1056,8 @@ static void parseStructureCommand(FFinstance* instance, FFdata* data, const char
10431056
ffPrintKernel(instance);
10441057
else if(strcasecmp(line, "uptime") == 0)
10451058
ffPrintUptime(instance);
1059+
else if(strcasecmp(line, "processes") == 0)
1060+
ffPrintProcesses(instance);
10461061
else if(strcasecmp(line, "packages") == 0)
10471062
ffPrintPackages(instance);
10481063
else if(strcasecmp(line, "shell") == 0)

src/fastfetch.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ typedef struct FFconfig
5555
FFstrbuf kernelKey;
5656
FFstrbuf uptimeFormat;
5757
FFstrbuf uptimeKey;
58+
FFstrbuf processesFormat;
59+
FFstrbuf processesKey;
5860
FFstrbuf packagesFormat;
5961
FFstrbuf packagesKey;
6062
FFstrbuf shellFormat;
@@ -202,6 +204,7 @@ typedef enum FFformatargtype
202204
{
203205
FF_FORMAT_ARG_TYPE_NULL = 0,
204206
FF_FORMAT_ARG_TYPE_UINT,
207+
FF_FORMAT_ARG_TYPE_UINT16,
205208
FF_FORMAT_ARG_TYPE_UINT8,
206209
FF_FORMAT_ARG_TYPE_INT,
207210
FF_FORMAT_ARG_TYPE_STRING,
@@ -368,6 +371,7 @@ void ffPrintOS(FFinstance* instance);
368371
void ffPrintHost(FFinstance* instance);
369372
void ffPrintKernel(FFinstance* instance);
370373
void ffPrintUptime(FFinstance* instance);
374+
void ffPrintProcesses(FFinstance* instance);
371375
void ffPrintPackages(FFinstance* instance);
372376
void ffPrintShell(FFinstance* instance);
373377
void ffPrintResolution(FFinstance* instance);

src/flashfetch.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ int main(int argc, char** argv)
2626
ffPrintHost(&instance);
2727
ffPrintKernel(&instance);
2828
ffPrintUptime(&instance);
29+
ffPrintProcesses(&instance);
2930
ffPrintPackages(&instance);
3031
ffPrintShell(&instance);
3132
ffPrintResolution(&instance);

src/modules/processes.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#include "fastfetch.h"
2+
3+
#define FF_PROCESSES_MODULE_NAME "Processes"
4+
#define FF_PROCESSES_NUM_FORMAT_ARGS 1
5+
6+
void ffPrintProcesses(FFinstance* instance)
7+
{
8+
if(instance->config.processesFormat.length == 0)
9+
{
10+
ffPrintLogoAndKey(instance, FF_PROCESSES_MODULE_NAME, 0, &instance->config.processesKey);
11+
12+
printf("%hu\n", instance->state.sysinfo.procs);
13+
}
14+
else
15+
{
16+
ffPrintFormatString(instance, FF_PROCESSES_MODULE_NAME, 0, &instance->config.processesKey, &instance->config.processesFormat, NULL, FF_PROCESSES_NUM_FORMAT_ARGS, (FFformatarg[]){
17+
{FF_FORMAT_ARG_TYPE_UINT16, &instance->state.sysinfo.procs}
18+
});
19+
}
20+
}

src/modules/uptime.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
void ffPrintUptime(FFinstance* instance)
77
{
88
uint32_t days = instance->state.sysinfo.uptime / 86400;
9-
uint32_t hours = (instance->state.sysinfo.uptime - (days * 86400)) / 3600;
9+
uint32_t hours = (instance->state.sysinfo.uptime - (days * 86400)) / 3600;
1010
uint32_t minutes = (instance->state.sysinfo.uptime - (days * 86400) - (hours * 3600)) / 60;
1111
uint32_t seconds = instance->state.sysinfo.uptime - (days * 86400) - (hours * 3600) - (minutes * 60);
1212

0 commit comments

Comments
 (0)