Skip to content

Commit 730c0d1

Browse files
committed
Fastfetch: print module description for --list-modules
1 parent ce60419 commit 730c0d1

File tree

61 files changed

+75
-10
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+75
-10
lines changed

completions/fish

+9-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ if not test -x fastfetch
55
end
66

77
set -l whole_text (fastfetch --pipe --help)
8-
set -l modules (fastfetch --list-modules autocompletion)
8+
set modules_complex (fastfetch --list-modules autocompletion)
99

1010
complete -c fastfetch -f
1111

@@ -23,7 +23,7 @@ for line in (string match -- ' -*' $whole_text)
2323

2424
switch (string match -r -- $regexp $args)
2525
case '<\?command>'
26-
set -l temp (string lower $modules)
26+
set -l temp (string match -r "\\w+" $modules_complex | string lower)
2727
set -l temp $temp-format"\tModule\\ format"
2828
set res $res -x -a "color\tSupported\\ colors format\tCustom\\ format config\tConfiguration $temp"
2929
case '<\?bool>'
@@ -38,8 +38,13 @@ for line in (string match -- ' -*' $whole_text)
3838
case '<\?num>'
3939
set res $res -x -a "0\tNumber 1\tNumber 2\tNumber 3\tNumber 4\tNumber 5\tNumber 6\tNumber 7\tNumber 8\tNumber 9\tNumber"
4040
case '<structure>'
41-
set temp $modules"\tModule"
42-
set res $res -x -a "$temp"
41+
function __fastfetch_complete_structure
42+
for line in $modules_complex
43+
set -l pair (string split -m 2 : $line)
44+
echo -e "$pair[1]\t$pair[2]"
45+
end
46+
end
47+
set res $res -x -a "(__fish_complete_list : __fastfetch_complete_structure)"
4348
case '<logo>'
4449
set -l temp (fastfetch --list-logos autocompletion)
4550
set -l temp (string replace -- ' ' '\\ ' $temp)

doc/json_schema.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -729,15 +729,15 @@
729729
},
730730
{
731731
"const": "theme",
732-
"description": "Print current theme information"
732+
"description": "Print current theme of desktop environment"
733733
},
734734
{
735735
"const": "uptime",
736-
"description": "Print system uptime"
736+
"description": "Print how long system has been running"
737737
},
738738
{
739739
"const": "users",
740-
"description": "List users currently logged in"
740+
"description": "Print users currently logged in"
741741
},
742742
{
743743
"const": "version",
@@ -844,7 +844,7 @@
844844
"properties": {
845845
"type": {
846846
"const": "brightness",
847-
"description": "Print current brightness / luminance of your monitors"
847+
"description": "Print current brightness level of your monitors"
848848
},
849849
"ddcciSleep": {
850850
"type": "integer",

src/common/option.h

+3
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ struct yyjson_mut_val;
1010
typedef struct FFModuleBaseInfo
1111
{
1212
const char* name;
13+
const char* description;
1314
// A dirty polymorphic implementation in C.
1415
// This is UB, because `void*` is not compatible with `FF*Options*`.
1516
// However we can't do it better unless we move to C++, so that `option` becomes a `this` pointer
@@ -25,6 +26,7 @@ typedef struct FFModuleBaseInfo
2526
static inline void ffOptionInitModuleBaseInfo(
2627
FFModuleBaseInfo* baseInfo,
2728
const char* name,
29+
const char* description,
2830
void* parseCommandOptions, // bool (*const parseCommandOptions)(void* options, const char* key, const char* value)
2931
void* parseJsonObject, // void (*const parseJsonObject)(void* options, yyjson_val *module)
3032
void* printModule, // void (*const printModule)(void* options)
@@ -34,6 +36,7 @@ static inline void ffOptionInitModuleBaseInfo(
3436
)
3537
{
3638
baseInfo->name = name;
39+
baseInfo->description = description;
3740
baseInfo->parseCommandOptions = (__typeof__(baseInfo->parseCommandOptions)) parseCommandOptions;
3841
baseInfo->parseJsonObject = (__typeof__(baseInfo->parseJsonObject)) parseJsonObject;
3942
baseInfo->printModule = (__typeof__(baseInfo->printModule)) printModule;

src/fastfetch.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -192,9 +192,9 @@ static void listModules(bool pretty)
192192
{
193193
++count;
194194
if (pretty)
195-
printf("%d)%s%s\n", count, count > 9 ? " " : " ", (*modules)->name);
195+
printf("%d)%s%-13s: %s\n", count, count > 9 ? " " : " ", (*modules)->name, (*modules)->description);
196196
else
197-
puts((*modules)->name);
197+
printf("%s:%s\n", (*modules)->name, (*modules)->description);
198198
}
199199
}
200200
}

src/modules/battery/battery.c

+1
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,7 @@ void ffInitBatteryOptions(FFBatteryOptions* options)
246246
ffOptionInitModuleBaseInfo(
247247
&options->moduleInfo,
248248
FF_BATTERY_MODULE_NAME,
249+
"Print battery capacity, status, etc",
249250
ffParseBatteryCommandOptions,
250251
ffParseBatteryJsonObject,
251252
ffPrintBattery,

src/modules/bios/bios.c

+1
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ void ffInitBiosOptions(FFBiosOptions* options)
165165
ffOptionInitModuleBaseInfo(
166166
&options->moduleInfo,
167167
FF_BIOS_MODULE_NAME,
168+
"Print BIOS name, version, release date, etc",
168169
ffParseBiosCommandOptions,
169170
ffParseBiosJsonObject,
170171
ffPrintBios,

src/modules/bluetooth/bluetooth.c

+1
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ void ffInitBluetoothOptions(FFBluetoothOptions* options)
171171
ffOptionInitModuleBaseInfo(
172172
&options->moduleInfo,
173173
FF_BLUETOOTH_MODULE_NAME,
174+
"List bluetooth devices",
174175
ffParseBluetoothCommandOptions,
175176
ffParseBluetoothJsonObject,
176177
ffPrintBluetooth,

src/modules/board/board.c

+1
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ void ffInitBoardOptions(FFBoardOptions* options)
130130
ffOptionInitModuleBaseInfo(
131131
&options->moduleInfo,
132132
FF_BOARD_MODULE_NAME,
133+
"Print mather board name and other info",
133134
ffParseBoardCommandOptions,
134135
ffParseBoardJsonObject,
135136
ffPrintBoard,

src/modules/break/break.c

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ void ffInitBreakOptions(FF_MAYBE_UNUSED FFBreakOptions* options)
2121
ffOptionInitModuleBaseInfo(
2222
&options->moduleInfo,
2323
FF_BREAK_MODULE_NAME,
24+
"Print a empty line",
2425
ffParseBreakCommandOptions,
2526
ffParseBreakJsonObject,
2627
ffPrintBreak,

src/modules/brightness/brightness.c

+1
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ void ffInitBrightnessOptions(FFBrightnessOptions* options)
186186
ffOptionInitModuleBaseInfo(
187187
&options->moduleInfo,
188188
FF_BRIGHTNESS_MODULE_NAME,
189+
"Print current brightness level of your monitors",
189190
ffParseBrightnessCommandOptions,
190191
ffParseBrightnessJsonObject,
191192
ffPrintBrightness,

src/modules/chassis/chassis.c

+1
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ void ffInitChassisOptions(FFChassisOptions* options)
152152
ffOptionInitModuleBaseInfo(
153153
&options->moduleInfo,
154154
FF_CHASSIS_MODULE_NAME,
155+
"Print chassis type (desktop, laptop, etc)",
155156
ffParseChassisCommandOptions,
156157
ffParseChassisJsonObject,
157158
ffPrintChassis,

src/modules/colors/colors.c

+1
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ void ffInitColorsOptions(FFColorsOptions* options)
156156
ffOptionInitModuleBaseInfo(
157157
&options->moduleInfo,
158158
FF_COLORS_MODULE_NAME,
159+
"Print some colored blocks",
159160
ffParseColorsCommandOptions,
160161
ffParseColorsJsonObject,
161162
ffPrintColors,

src/modules/command/command.c

+1
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ void ffInitCommandOptions(FFCommandOptions* options)
151151
ffOptionInitModuleBaseInfo(
152152
&options->moduleInfo,
153153
FF_COMMAND_MODULE_NAME,
154+
"Running custom shell scripts",
154155
ffParseCommandCommandOptions,
155156
ffParseCommandJsonObject,
156157
ffPrintCommand,

src/modules/cpu/cpu.c

+1
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ void ffInitCPUOptions(FFCPUOptions* options)
202202
ffOptionInitModuleBaseInfo(
203203
&options->moduleInfo,
204204
FF_CPU_MODULE_NAME,
205+
"Print CPU name, frequency, etc",
205206
ffParseCPUCPUOptions,
206207
ffParseCPUJsonObject,
207208
ffPrintCPU,

src/modules/cpuusage/cpuusage.c

+1
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ void ffInitCPUUsageOptions(FFCPUUsageOptions* options)
172172
ffOptionInitModuleBaseInfo(
173173
&options->moduleInfo,
174174
FF_CPUUSAGE_MODULE_NAME,
175+
"Print CPU usage. Costs some time to collect data",
175176
ffParseCPUUsageCommandOptions,
176177
ffParseCPUUsageJsonObject,
177178
ffPrintCPUUsage,

src/modules/cursor/cursor.c

+1
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ void ffInitCursorOptions(FFCursorOptions* options)
122122
ffOptionInitModuleBaseInfo(
123123
&options->moduleInfo,
124124
FF_CURSOR_MODULE_NAME,
125+
"Print cursor style name",
125126
ffParseCursorCommandOptions,
126127
ffParseCursorJsonObject,
127128
ffPrintCursor,

src/modules/custom/custom.c

+1
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ void ffInitCustomOptions(FFCustomOptions* options)
5757
ffOptionInitModuleBaseInfo(
5858
&options->moduleInfo,
5959
FF_CUSTOM_MODULE_NAME,
60+
"Print a custom string, with or without key",
6061
ffParseCustomCommandOptions,
6162
ffParseCustomJsonObject,
6263
ffPrintCustom,

src/modules/datetime/datetime.c

+1
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ void ffInitDateTimeOptions(FFDateTimeOptions* options)
214214
ffOptionInitModuleBaseInfo(
215215
&options->moduleInfo,
216216
FF_DATETIME_MODULE_NAME,
217+
"Print current date and time",
217218
ffParseDateTimeCommandOptions,
218219
ffParseDateTimeJsonObject,
219220
ffPrintDateTime,

src/modules/de/de.c

+1
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ void ffInitDEOptions(FFDEOptions* options)
127127
ffOptionInitModuleBaseInfo(
128128
&options->moduleInfo,
129129
FF_DE_MODULE_NAME,
130+
"Print desktop environment name",
130131
ffParseDECommandOptions,
131132
ffParseDEJsonObject,
132133
ffPrintDE,

src/modules/disk/disk.c

+1
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,7 @@ void ffInitDiskOptions(FFDiskOptions* options)
463463
ffOptionInitModuleBaseInfo(
464464
&options->moduleInfo,
465465
FF_DISK_MODULE_NAME,
466+
"Print partitions, space usage, disk type, etc",
466467
ffParseDiskCommandOptions,
467468
ffParseDiskJsonObject,
468469
ffPrintDisk,

src/modules/diskio/diskio.c

+1
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ void ffInitDiskIOOptions(FFDiskIOOptions* options)
229229
ffOptionInitModuleBaseInfo(
230230
&options->moduleInfo,
231231
FF_DISKIO_MODULE_NAME,
232+
"Print physical disk I/O throughput",
232233
ffParseDiskIOCommandOptions,
233234
ffParseDiskIOJsonObject,
234235
ffPrintDiskIO,

src/modules/display/display.c

+1
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,7 @@ void ffInitDisplayOptions(FFDisplayOptions* options)
258258
ffOptionInitModuleBaseInfo(
259259
&options->moduleInfo,
260260
FF_DISPLAY_MODULE_NAME,
261+
"Print resolutions, refresh rates, etc",
261262
ffParseDisplayCommandOptions,
262263
ffParseDisplayJsonObject,
263264
ffPrintDisplay,

src/modules/font/font.c

+1
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ void ffInitFontOptions(FFFontOptions* options)
120120
ffOptionInitModuleBaseInfo(
121121
&options->moduleInfo,
122122
FF_FONT_MODULE_NAME,
123+
"Print system font name",
123124
ffParseFontCommandOptions,
124125
ffParseFontJsonObject,
125126
ffPrintFont,

src/modules/gamepad/gamepad.c

+1
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ void ffInitGamepadOptions(FFGamepadOptions* options)
130130
ffOptionInitModuleBaseInfo(
131131
&options->moduleInfo,
132132
FF_GAMEPAD_MODULE_NAME,
133+
"List connected gamepads",
133134
ffParseGamepadCommandOptions,
134135
ffParseGamepadJsonObject,
135136
ffPrintGamepad,

src/modules/gpu/gpu.c

+1
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,7 @@ void ffInitGPUOptions(FFGPUOptions* options)
336336
ffOptionInitModuleBaseInfo(
337337
&options->moduleInfo,
338338
FF_GPU_MODULE_NAME,
339+
"Print GPU names, graphic memory size, type, etc",
339340
ffParseGPUCommandOptions,
340341
ffParseGPUJsonObject,
341342
ffPrintGPU,

src/modules/host/host.c

+1
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ void ffInitHostOptions(FFHostOptions* options)
151151
ffOptionInitModuleBaseInfo(
152152
&options->moduleInfo,
153153
FF_HOST_MODULE_NAME,
154+
"Print product name of your computer",
154155
ffParseHostCommandOptions,
155156
ffParseHostJsonObject,
156157
ffPrintHost,

src/modules/icons/icons.c

+1
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ void ffInitIconsOptions(FFIconsOptions* options)
9191
ffOptionInitModuleBaseInfo(
9292
&options->moduleInfo,
9393
FF_ICONS_MODULE_NAME,
94+
"Print icon style name",
9495
ffParseIconsCommandOptions,
9596
ffParseIconsJsonObject,
9697
ffPrintIcons,

src/modules/kernel/kernel.c

+1
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ void ffInitKernelOptions(FFKernelOptions* options)
8989
ffOptionInitModuleBaseInfo(
9090
&options->moduleInfo,
9191
FF_KERNEL_MODULE_NAME,
92+
"Print system kernel version",
9293
ffParseKernelCommandOptions,
9394
ffParseKernelJsonObject,
9495
ffPrintKernel,

src/modules/lm/lm.c

+1
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ void ffInitLMOptions(FFLMOptions* options)
129129
ffOptionInitModuleBaseInfo(
130130
&options->moduleInfo,
131131
FF_LM_MODULE_NAME,
132+
"Print login manager (desktop manager) name and version",
132133
ffParseLMCommandOptions,
133134
ffParseLMJsonObject,
134135
ffPrintLM,

src/modules/locale/locale.c

+1
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ void ffInitLocaleOptions(FFLocaleOptions* options)
9191
ffOptionInitModuleBaseInfo(
9292
&options->moduleInfo,
9393
FF_LOCALE_MODULE_NAME,
94+
"Print system locale name",
9495
ffParseLocaleCommandOptions,
9596
ffParseLocaleJsonObject,
9697
ffPrintLocale,

src/modules/localip/localip.c

+1
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,7 @@ void ffInitLocalIpOptions(FFLocalIpOptions* options)
359359
ffOptionInitModuleBaseInfo(
360360
&options->moduleInfo,
361361
FF_LOCALIP_MODULE_NAME,
362+
"List local IP addresses (v4 or v6), MAC addresses, etc",
362363
ffParseLocalIpCommandOptions,
363364
ffParseLocalIpJsonObject,
364365
ffPrintLocalIp,

src/modules/media/media.c

+1
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ void ffInitMediaOptions(FFMediaOptions* options)
173173
ffOptionInitModuleBaseInfo(
174174
&options->moduleInfo,
175175
FF_MEDIA_MODULE_NAME,
176+
"Print playing song name",
176177
ffParseMediaCommandOptions,
177178
ffParseMediaJsonObject,
178179
ffPrintMedia,

src/modules/memory/memory.c

+1
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ void ffInitMemoryOptions(FFMemoryOptions* options)
131131
ffOptionInitModuleBaseInfo(
132132
&options->moduleInfo,
133133
FF_MEMORY_MODULE_NAME,
134+
"Print system memory usage info",
134135
ffParseMemoryCommandOptions,
135136
ffParseMemoryJsonObject,
136137
ffPrintMemory,

src/modules/monitor/monitor.c

+1
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ void ffInitMonitorOptions(FFMonitorOptions* options)
163163
ffOptionInitModuleBaseInfo(
164164
&options->moduleInfo,
165165
FF_MONITOR_MODULE_NAME,
166+
"Print connected physical monitor information",
166167
ffParseMonitorCommandOptions,
167168
ffParseMonitorJsonObject,
168169
ffPrintMonitor,

src/modules/netio/netio.c

+1
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ void ffInitNetIOOptions(FFNetIOOptions* options)
220220
ffOptionInitModuleBaseInfo(
221221
&options->moduleInfo,
222222
FF_NETIO_MODULE_NAME,
223+
"Print network I/O throughput",
223224
ffParseNetIOCommandOptions,
224225
ffParseNetIOJsonObject,
225226
ffPrintNetIO,

src/modules/opencl/opencl.c

+1
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ void ffInitOpenCLOptions(FFOpenCLOptions* options)
114114
ffOptionInitModuleBaseInfo(
115115
&options->moduleInfo,
116116
FF_OPENCL_MODULE_NAME,
117+
"Print highest OpenCL version supported by the GPU",
117118
ffParseOpenCLCommandOptions,
118119
ffParseOpenCLJsonObject,
119120
ffPrintOpenCL,

src/modules/opengl/opengl.c

+1
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ void ffInitOpenGLOptions(FFOpenGLOptions* options)
173173
ffOptionInitModuleBaseInfo(
174174
&options->moduleInfo,
175175
FF_OPENGL_MODULE_NAME,
176+
"Print highest OpenGL version supported by the GPU",
176177
ffParseOpenGLCommandOptions,
177178
ffParseOpenGLJsonObject,
178179
ffPrintOpenGL,

src/modules/os/os.c

+1
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ void ffInitOSOptions(FFOSOptions* options)
217217
ffOptionInitModuleBaseInfo(
218218
&options->moduleInfo,
219219
FF_OS_MODULE_NAME,
220+
"Print operating system name and version",
220221
ffParseOSCommandOptions,
221222
ffParseOSJsonObject,
222223
ffPrintOS,

src/modules/packages/packages.c

+1
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ void ffInitPackagesOptions(FFPackagesOptions* options)
238238
ffOptionInitModuleBaseInfo(
239239
&options->moduleInfo,
240240
FF_PACKAGES_MODULE_NAME,
241+
"List installed package managers and count of installed packages",
241242
ffParsePackagesCommandOptions,
242243
ffParsePackagesJsonObject,
243244
ffPrintPackages,

src/modules/player/player.c

+1
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ void ffInitPlayerOptions(FFPlayerOptions* options)
139139
ffOptionInitModuleBaseInfo(
140140
&options->moduleInfo,
141141
FF_PLAYER_MODULE_NAME,
142+
"Print music player name",
142143
ffParsePlayerCommandOptions,
143144
ffParsePlayerJsonObject,
144145
ffPrintPlayer,

src/modules/poweradapter/poweradapter.c

+1
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ void ffInitPowerAdapterOptions(FFPowerAdapterOptions* options)
140140
ffOptionInitModuleBaseInfo(
141141
&options->moduleInfo,
142142
FF_POWERADAPTER_MODULE_NAME,
143+
"Print power adapter name and charging watts",
143144
ffParsePowerAdapterCommandOptions,
144145
ffParsePowerAdapterJsonObject,
145146
ffPrintPowerAdapter,

0 commit comments

Comments
 (0)