Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
# 2.62.1

Bugfixes:
* Fixes Host module not working on some devices (#2279, Host, Linux)
* Regression from v2.61.0

Logos:
* Adds EN-OS, LimeOS, Redrose and Uzbek

# 2.62.0

Changes:
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.12.0) # target_link_libraries with OBJECT libs & project homepage url

project(fastfetch
VERSION 2.62.0
VERSION 2.62.1
LANGUAGES C
DESCRIPTION "Fast neofetch-like system information tool"
HOMEPAGE_URL "https://github.com/fastfetch-cli/fastfetch"
Expand Down
6 changes: 6 additions & 0 deletions debian/changelog.tpl
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
fastfetch (2.62.0~#UBUNTU_CODENAME#) #UBUNTU_CODENAME#; urgency=medium

* Update to 2.62.0
Comment on lines +1 to +3
Copy link

Copilot AI Apr 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Debian changelog template entry added here is for version 2.62.0, but this PR is a 2.62.1 release (CMakeLists/CHANGELOG.md). Update this template entry to 2.62.1~#UBUNTU_CODENAME# (and the corresponding "Update to ..." line) so packaging metadata matches the release.

Suggested change
fastfetch (2.62.0~#UBUNTU_CODENAME#) #UBUNTU_CODENAME#; urgency=medium
* Update to 2.62.0
fastfetch (2.62.1~#UBUNTU_CODENAME#) #UBUNTU_CODENAME#; urgency=medium
* Update to 2.62.1

Copilot uses AI. Check for mistakes.

-- Carter Li <zhangsongcui@live.cn> Wed, 22 Apr 2026 09:49:55 +0800

fastfetch (2.61.0~#UBUNTU_CODENAME#) #UBUNTU_CODENAME#; urgency=medium

* Update to 2.61.0
Expand Down
33 changes: 22 additions & 11 deletions src/detection/host/host_linux.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,28 +51,39 @@ static bool getHostVendor(FFstrbuf* vendor) {

const char* ffDetectHost(FFHostResult* host) {
// This is a hack for Asahi Linux, whose product_family is empty
if (ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_family", "/sys/class/dmi/id/product_family", &host->family)) {
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_name", "/sys/class/dmi/id/product_name", &host->name);
bool productName = ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_name", "/sys/class/dmi/id/product_name", &host->name);
bool productFamily = ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_family", "/sys/class/dmi/id/product_family", &host->family);
if (productName || productFamily) {
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_version", "/sys/class/dmi/id/product_version", &host->version);
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_sku", "/sys/class/dmi/id/product_sku", &host->sku);
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/product_serial", "/sys/class/dmi/id/product_serial", &host->serial);
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/sys_vendor", "/sys/class/dmi/id/sys_vendor", &host->vendor);

#if __x86_64__
ffHostDetectMac(host);
#endif

// KVM/Qemu virtual machine
if (ffStrbufStartsWithS(&host->name, "Standard PC")) {
ffStrbufPrependS(&host->name, "KVM/QEMU ");
}

#if __aarch64__
else if (host->family.length == 0 && ffStrbufEqualS(&host->vendor, "Apple Inc.") && ffStrbufStartsWithS(&host->name, "Mac")) {
// Hack for Asahi Linux
ffStrbufDestroy(&host->family);
ffStrbufInitMove(&host->family, &host->name);
getHostProductName(&host->name);
getHostSerialNumber(&host->serial);
}
#endif
} else {
getHostProductFamily(&host->family);
getHostProductName(&host->name);
getHostSerialNumber(&host->serial);
getHostVendor(&host->vendor);
}

#ifdef __x86_64__
ffHostDetectMac(host);
#endif

// KVM/Qemu virtual machine
if (ffStrbufStartsWithS(&host->name, "Standard PC")) {
ffStrbufPrependS(&host->name, "KVM/QEMU ");
}

if (host->family.length == 0 && host->name.length == 0) {
const char* wslDistroName = getenv("WSL_DISTRO_NAME");
// On WSL, the real host can't be detected. Instead use WSL as host.
Expand Down
6 changes: 6 additions & 0 deletions src/logo/ascii/enos.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
______ _ _ ____ _____
| ____| \ | | / __ \ / ____|
| |__ | \| |______| | | | (___
| __| | . ` |______| | | |\___ \
| |____| |\ | | |__| |____) |
|______|_| \_| \____/|_____/
23 changes: 23 additions & 0 deletions src/logo/ascii/limeos.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
############
####### #######
#### ####
### ###### ###### ###
### ######### ######### ###
### ######## ######## ###
### #### ###### ####### ### ###
### ####### ##### ##### ###### ###
## ######## ### ### ######## ##
### ########### ########### ###
## ############ ########### ##
## ##
## ############ ########### ##
### ########### ########### ###
## ######## ### ### ######## ##
### ###### ##### ##### ###### ###
### ### ####### ####### ### ###
### ######### ######### ###
### ######### ######### ###
### ###### ###### ###
#### ####
####### #######
##############
17 changes: 17 additions & 0 deletions src/logo/ascii/redrose.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
xxrjr ftttt
xxxxxjjfffft
xxxxxxxjjjjj
xxxxxxxjjjjj
xxxxxxxxxnxx
xxxxxxxn
$2[[
//// [[
//// [[
///////[[
/////]]
[[
[[
[[
[[
[[
[]
11 changes: 11 additions & 0 deletions src/logo/ascii/uzbek.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
*++++++++++++++*
*=:-::-::-::-::-::=*
+============. ===+
+===========. ====+
+++++++++++ +++++*
*+++ =+++ ++++++*
*++++ .+ +++++++*
*+++++ ++++++++*
*++++++ =+++++++++*
*++++++++++++++++++*
*++++++++++++++*
38 changes: 38 additions & 0 deletions src/logo/builtin.c
Original file line number Diff line number Diff line change
Expand Up @@ -1561,6 +1561,16 @@ static const FFlogo E[] = {
FF_COLOR_FG_DEFAULT,
},
},
// EN-OS
{
.names = {"ENOS"},
.lines = FASTFETCH_DATATEXT_LOGO_ENOS,
.colors = {
FF_COLOR_FG_LIGHT_BLUE,
},
.colorKeys = FF_COLOR_FG_LIGHT_BLUE,
.colorTitle = FF_COLOR_FG_LIGHT_BLUE,
},
// EncryptOS
{
.names = { "EncryptOS" },
Expand Down Expand Up @@ -2653,6 +2663,16 @@ static const FFlogo L[] = {
.colorKeys = FF_COLOR_FG_BLUE,
.colorTitle = FF_COLOR_FG_BLUE,
},
// LimeOS
{
.names = {"LimeOS"},
.lines = FASTFETCH_DATATEXT_LOGO_LIMEOS,
.colors = {
FF_COLOR_FG_DEFAULT,
},
.colorKeys = FF_COLOR_FG_DEFAULT,
.colorTitle = FF_COLOR_FG_DEFAULT,
},
// Linspire
{
.names = { "Linspire", "Lindows" },
Expand Down Expand Up @@ -4242,6 +4262,17 @@ static const FFlogo R[] = {
.colorKeys = FF_COLOR_FG_RED,
.colorTitle = FF_COLOR_FG_RED,
},
// Redrose
{
.names = {"Redrose"},
.lines = FASTFETCH_DATATEXT_LOGO_REDROSE,
.colors = {
FF_COLOR_FG_RED,
FF_COLOR_FG_GREEN,
},
.colorKeys = FF_COLOR_FG_RED,
.colorTitle = FF_COLOR_FG_RED,
},
// Refracta
{
.names = { "Refracta" },
Expand Down Expand Up @@ -5133,6 +5164,13 @@ static const FFlogo U[] = {
},
},
// LAST
{
.names = { "Uzbek" },
.lines = FASTFETCH_DATATEXT_LOGO_UZBEK,
.colors = {
FF_COLOR_FG_GREEN,
},
Copy link

Copilot AI Apr 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Uzbek logo entry defines only one color and omits colorKeys. In logoApplyColors, colorKeys falls back to logo->colors[1], which is NULL here, so keys end up uncolored by default. Set .colorKeys explicitly (and optionally .colorTitle) or provide a second color entry so the fallback works.

Suggested change
},
},
.colorKeys = FF_COLOR_FG_GREEN,
.colorTitle = FF_COLOR_FG_GREEN,

Copilot uses AI. Check for mistakes.
},
{},
};

Expand Down
Loading