From 37afe5a79d343942dd4bab276ccfb0e2118dfb66 Mon Sep 17 00:00:00 2001 From: Carter Li Date: Tue, 1 Sep 2026 16:35:30 +0800 Subject: [PATCH 1/4] Packaging: updates debian stuff [ci skip] --- debian/changelog.tpl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog.tpl b/debian/changelog.tpl index 84e5dda3f..a60ed786a 100644 --- a/debian/changelog.tpl +++ b/debian/changelog.tpl @@ -1,3 +1,9 @@ +fastfetch (2.68.0~#UBUNTU_CODENAME#) #UBUNTU_CODENAME#; urgency=medium + + * Update to 2.68.0 + + -- Carter Li Tue, 01 Sep 2026 16:34:36 +0800 + fastfetch (2.67.0~#UBUNTU_CODENAME#) #UBUNTU_CODENAME#; urgency=medium * Update to 2.67.0 From 37c198d99744f6dc09b78d54299545ca979349c0 Mon Sep 17 00:00:00 2001 From: Carter Li Date: Tue, 1 Sep 2026 18:58:08 +0800 Subject: [PATCH 2/4] Revert "CMAKE: bumps minimum CMake version to 3.21.0 (#2517)" (#2554) I don't know why bumping minimal CMake version changes the behavior of cpack, but it does. Fixes #2553 This reverts commit 233c481f7a8746e210db6c59fc755acfd0b4f7b5. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 995c2049d..5d754366a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.21.0) # C_STANDARD +cmake_minimum_required(VERSION 3.12.0) # target_link_libraries with OBJECT libs & project homepage url project(fastfetch VERSION 2.68.0 From 2e06a73102601a8ec3cb9e2d0994e53ebfee077c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Tue, 1 Sep 2026 19:18:02 +0800 Subject: [PATCH 3/4] Modules: exposes localized module name in custom key format as `{module-name}` --- src/common/impl/printing.c | 1 + src/modules/battery/battery.c | 1 + src/modules/bios/bios.c | 1 + src/modules/bluetoothradio/bluetoothradio.c | 1 + src/modules/brightness/brightness.c | 1 + src/modules/btrfs/btrfs.c | 1 + src/modules/codec/codec.c | 1 + src/modules/cpucache/cpucache.c | 1 + src/modules/disk/disk.c | 1 + src/modules/diskio/diskio.c | 1 + src/modules/display/display.c | 1 + src/modules/loadavg/loadavg.c | 1 + src/modules/localip/localip.c | 1 + src/modules/monitor/monitor.c | 1 + src/modules/netio/netio.c | 1 + src/modules/os/os.c | 1 + src/modules/physicaldisk/physicaldisk.c | 1 + src/modules/swap/swap.c | 1 + src/modules/zpool/zpool.c | 1 + 19 files changed, 19 insertions(+) diff --git a/src/common/impl/printing.c b/src/common/impl/printing.c index 1203dfb0a..832c6301c 100644 --- a/src/common/impl/printing.c +++ b/src/common/impl/printing.c @@ -47,6 +47,7 @@ void ffPrintLogoAndKey(const char* moduleName, uint8_t moduleIndex, const FFModu FF_PARSE_FORMAT_STRING_CHECKED(&key, &moduleArgs->key, ((FFformatarg[]) { FF_ARG(moduleIndex, "index"), FF_ARG(moduleArgs->keyIcon, "icon"), + FF_ARG(moduleName, "module-name"), })); ffStrbufWriteTo(&key, stdout); } diff --git a/src/modules/battery/battery.c b/src/modules/battery/battery.c index 33e969436..f1faa0a79 100644 --- a/src/modules/battery/battery.c +++ b/src/modules/battery/battery.c @@ -21,6 +21,7 @@ static void printBattery(FFBatteryOptions* options, FFBatteryResult* result, uin FF_ARG(index, "index"), FF_ARG(result->modelName, "name"), FF_ARG(options->moduleArgs.keyIcon, "icon"), + FF_ARG(FF_MODULE_GET_DISPLAY_NAME(Battery), "module-name"), })); } diff --git a/src/modules/bios/bios.c b/src/modules/bios/bios.c index fc4f7ac73..55a6e03f0 100644 --- a/src/modules/bios/bios.c +++ b/src/modules/bios/bios.c @@ -40,6 +40,7 @@ bool ffPrintBios(FFBiosOptions* options) { FF_PARSE_FORMAT_STRING_CHECKED(&key, &options->moduleArgs.key, ((FFformatarg[]) { FF_ARG(bios.type, "type"), FF_ARG(options->moduleArgs.keyIcon, "icon"), + FF_ARG(FF_MODULE_GET_DISPLAY_NAME(Bios), "module-name"), })); } diff --git a/src/modules/bluetoothradio/bluetoothradio.c b/src/modules/bluetoothradio/bluetoothradio.c index 0596fb47e..63c27fdda 100644 --- a/src/modules/bluetoothradio/bluetoothradio.c +++ b/src/modules/bluetoothradio/bluetoothradio.c @@ -22,6 +22,7 @@ static void printDevice(FFBluetoothRadioOptions* options, const FFBluetoothRadio FF_ARG(index, "index"), FF_ARG(radio->name, "name"), FF_ARG(options->moduleArgs.keyIcon, "icon"), + FF_ARG(FF_MODULE_GET_DISPLAY_NAME(BluetoothRadio), "module-name"), })); } diff --git a/src/modules/brightness/brightness.c b/src/modules/brightness/brightness.c index 5c6fc1544..2bfe4d802 100644 --- a/src/modules/brightness/brightness.c +++ b/src/modules/brightness/brightness.c @@ -51,6 +51,7 @@ bool ffPrintBrightness(FFBrightnessOptions* options) { FF_ARG(moduleIndex, "index"), FF_ARG(item->name, "name"), FF_ARG(options->moduleArgs.keyIcon, "icon"), + FF_ARG(FF_MODULE_GET_DISPLAY_NAME(Brightness), "module-name"), })); } diff --git a/src/modules/btrfs/btrfs.c b/src/modules/btrfs/btrfs.c index 052cf32dc..345f7927e 100644 --- a/src/modules/btrfs/btrfs.c +++ b/src/modules/btrfs/btrfs.c @@ -20,6 +20,7 @@ static void printBtrfs(FFBtrfsOptions* options, FFBtrfsResult* result, uint8_t i FF_ARG(index, "index"), FF_ARG(result->name, "name"), FF_ARG(options->moduleArgs.keyIcon, "icon"), + FF_ARG(FF_MODULE_GET_DISPLAY_NAME(Btrfs), "module-name"), })); } diff --git a/src/modules/codec/codec.c b/src/modules/codec/codec.c index 2e5b87983..629444805 100644 --- a/src/modules/codec/codec.c +++ b/src/modules/codec/codec.c @@ -61,6 +61,7 @@ static void printCodecLine(const FFCodecOptions* options, uint8_t index, FFstrbu FF_ARG(*gpu, "gpu"), FF_ARG(direction, "direction"), FF_ARG(options->moduleArgs.keyIcon, "icon"), + FF_ARG(FF_MODULE_GET_DISPLAY_NAME(Codec), "module-name"), })); } diff --git a/src/modules/cpucache/cpucache.c b/src/modules/cpucache/cpucache.c index efb9407e4..d4c9cee5d 100644 --- a/src/modules/cpucache/cpucache.c +++ b/src/modules/cpucache/cpucache.c @@ -21,6 +21,7 @@ static void printCPUCacheNormal(const FFCPUCacheResult* result, FFCPUCacheOption FF_ARG(index, "index"), FF_ARG(levelStr, "level"), FF_ARG(options->moduleArgs.keyIcon, "icon"), + FF_ARG(FF_MODULE_GET_DISPLAY_NAME(CPUCache), "module-name"), })); } diff --git a/src/modules/disk/disk.c b/src/modules/disk/disk.c index da6fe9fab..b87105471 100644 --- a/src/modules/disk/disk.c +++ b/src/modules/disk/disk.c @@ -45,6 +45,7 @@ static void printDisk(FFDiskOptions* options, const FFDisk* disk, uint32_t index FF_ARG(disk->filesystem, "filesystem"), FF_ARG(mountpointLink, "mountpoint-link"), FF_ARG(nameLink, "name-link"), + FF_ARG(FF_MODULE_GET_DISPLAY_NAME(Disk), "module-name"), })); } diff --git a/src/modules/diskio/diskio.c b/src/modules/diskio/diskio.c index 61ed83001..c052983f5 100644 --- a/src/modules/diskio/diskio.c +++ b/src/modules/diskio/diskio.c @@ -19,6 +19,7 @@ static void formatKey(const FFDiskIOOptions* options, FFDiskIOResult* dev, uint3 FF_ARG(dev->name, "name"), FF_ARG(dev->devPath, "dev-path"), FF_ARG(options->moduleArgs.keyIcon, "icon"), + FF_ARG(FF_MODULE_GET_DISPLAY_NAME(DiskIO), "module-name"), })); } } diff --git a/src/modules/display/display.c b/src/modules/display/display.c index 8d169d7db..f3ba4d75a 100644 --- a/src/modules/display/display.c +++ b/src/modules/display/display.c @@ -83,6 +83,7 @@ bool ffPrintDisplay(FFDisplayOptions* options) { FF_ARG(result->name, "name"), FF_ARG(displayType, "type"), FF_ARG(options->moduleArgs.keyIcon, "icon"), + FF_ARG(FF_MODULE_GET_DISPLAY_NAME(Display), "module-name"), })); } diff --git a/src/modules/loadavg/loadavg.c b/src/modules/loadavg/loadavg.c index 40aa8115b..f737f84dd 100644 --- a/src/modules/loadavg/loadavg.c +++ b/src/modules/loadavg/loadavg.c @@ -41,6 +41,7 @@ bool ffPrintLoadavg(FFLoadavgOptions* options) { FF_ARG(index, "index"), FF_ARG(duration, "duration"), FF_ARG(options->moduleArgs.keyIcon, "icon"), + FF_ARG(FF_MODULE_GET_DISPLAY_NAME(Loadavg), "module-name"), })); } diff --git a/src/modules/localip/localip.c b/src/modules/localip/localip.c index c1c53be23..c817c7ac9 100644 --- a/src/modules/localip/localip.c +++ b/src/modules/localip/localip.c @@ -24,6 +24,7 @@ static void formatKey(const FFLocalIpOptions* options, FFLocalIpResult* ip, uint FF_ARG(ip->name, "ifname"), FF_ARG(ip->mac, "mac"), FF_ARG(options->moduleArgs.keyIcon, "icon"), + FF_ARG(FF_MODULE_GET_DISPLAY_NAME(LocalIP), "module-name"), })); } } diff --git a/src/modules/monitor/monitor.c b/src/modules/monitor/monitor.c index b5ac69f69..ab53af918 100644 --- a/src/modules/monitor/monitor.c +++ b/src/modules/monitor/monitor.c @@ -33,6 +33,7 @@ bool ffPrintMonitor(FFMonitorOptions* options) { FF_ARG(moduleIndex, "index"), FF_ARG(display->name, "name"), FF_ARG(options->moduleArgs.keyIcon, "icon"), + FF_ARG(FF_MODULE_GET_DISPLAY_NAME(Monitor), "module-name"), })); } diff --git a/src/modules/netio/netio.c b/src/modules/netio/netio.c index 0ffe4f1d3..69de01058 100644 --- a/src/modules/netio/netio.c +++ b/src/modules/netio/netio.c @@ -22,6 +22,7 @@ static void formatKey(const FFNetIOOptions* options, FFNetIOResult* inf, uint32_ FF_ARG(index, "index"), FF_ARG(inf->name, "name"), FF_ARG(options->moduleArgs.keyIcon, "icon"), + FF_ARG(FF_MODULE_GET_DISPLAY_NAME(NetIO), "module-name"), })); } } diff --git a/src/modules/os/os.c b/src/modules/os/os.c index 12dd2740a..c8fa4987f 100644 --- a/src/modules/os/os.c +++ b/src/modules/os/os.c @@ -63,6 +63,7 @@ bool ffPrintOS(FFOSOptions* options) { FF_ARG(instance.state.platform.sysinfo.name, "sysname"), FF_ARG(os->name, "name"), FF_ARG(options->moduleArgs.keyIcon, "icon"), + FF_ARG(FF_MODULE_GET_DISPLAY_NAME(OS), "module-name"), })); } diff --git a/src/modules/physicaldisk/physicaldisk.c b/src/modules/physicaldisk/physicaldisk.c index 3b396d1f7..0690f7222 100644 --- a/src/modules/physicaldisk/physicaldisk.c +++ b/src/modules/physicaldisk/physicaldisk.c @@ -19,6 +19,7 @@ static void formatKey(const FFPhysicalDiskOptions* options, FFPhysicalDiskResult FF_ARG(dev->name, "name"), FF_ARG(dev->devPath, "dev-path"), FF_ARG(options->moduleArgs.keyIcon, "icon"), + FF_ARG(FF_MODULE_GET_DISPLAY_NAME(PhysicalDisk), "module-name"), })); } } diff --git a/src/modules/swap/swap.c b/src/modules/swap/swap.c index 7fe8b900b..b1cc38321 100644 --- a/src/modules/swap/swap.c +++ b/src/modules/swap/swap.c @@ -21,6 +21,7 @@ void printSwap(FFSwapOptions* options, uint8_t index, uint32_t totalCount, FFSwa FF_ARG(index, "index"), FF_ARG(storage->name, "name"), FF_ARG(options->moduleArgs.keyIcon, "icon"), + FF_ARG(FF_MODULE_GET_DISPLAY_NAME(Swap), "module-name"), })); } diff --git a/src/modules/zpool/zpool.c b/src/modules/zpool/zpool.c index c974f9630..dc3966824 100644 --- a/src/modules/zpool/zpool.c +++ b/src/modules/zpool/zpool.c @@ -22,6 +22,7 @@ static void printZpool(FFZpoolOptions* options, FFZpoolResult* result, uint8_t i FF_ARG(result->name, "name"), FF_ARG(result->guid, "guid"), FF_ARG(options->moduleArgs.keyIcon, "icon"), + FF_ARG(FF_MODULE_GET_DISPLAY_NAME(Zpool), "module-name"), })); } From 2787d97973d83714121f4026b3d68aca4ba511b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Tue, 1 Sep 2026 19:21:56 +0800 Subject: [PATCH 4/4] Release: v2.68.1 --- CHANGELOG.md | 5 ++++- CMakeLists.txt | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e9021131..ed1c3fbcf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# 2.68.0 +# 2.68.1 Changes: * The DE / WM / LM modules now reports the full name "Desktop Environment" / "Window Manager" / "Login Manager" instead of the abbreviations. @@ -11,6 +11,7 @@ Features: * Added module key localization support. (General) * Added a new option `--key-language ` (`display.key.language: ""` in JSON config). When left empty, it defaults to the system locale. * See `fastfetch -h key-language` for all supported languages. + * Exposed in custom key format as `{module-name}`. * Improved Wi-Fi module * Added Wifi channel width detection, exposed via `{channel-width}` in custom format (reports 0 when not supported). * Improved Wifi channel frequency accuracy and fortified detection on Windows, macOS. @@ -29,6 +30,8 @@ Bugfixes: * Fixed memory usage detection support on x86-32 FreeBSD (Memory, FreeBSD) * Note: Although 32-bit systems are still supported, they are deprecated and barely tested. Users are encouraged to upgrade to 64-bit systems. * Some internal cleanups and optimizations. +* Attempted to fix potential issues on big-endian systems + * Not tested due to lack of access to big-endian hardware. Logos: * Added macOS_old diff --git a/CMakeLists.txt b/CMakeLists.txt index 5d754366a..191eed490 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ -cmake_minimum_required(VERSION 3.12.0) # target_link_libraries with OBJECT libs & project homepage url +cmake_minimum_required(VERSION 3.12.0) # Don't change before we investigate why #2553 happens project(fastfetch - VERSION 2.68.0 + VERSION 2.68.1 LANGUAGES C DESCRIPTION "Fast neofetch-like system information tool" HOMEPAGE_URL "https://github.com/fastfetch-cli/fastfetch"