Skip to content

Commit 5df2a75

Browse files
authored
Merge pull request #1173 from fastfetch-cli/dev
Release v2.21.1
2 parents 3247aab + 65b9f00 commit 5df2a75

Some content is hidden

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

41 files changed

+444
-74
lines changed

.editorconfig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ tab_width = 4
77
insert_final_newline = true
88
trim_trailing_whitespace = true
99

10-
[*.{md,fflogo}]
10+
[*.md]
1111
trim_trailing_whitespace = false
1212

13-
[*.{fflogo}]
13+
[*.txt]
1414
insert_final_newline = false
1515

1616
[*.yml]

.github/FUNDING.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
github: [LinusDierheimer, CarterLi]
1+
github: [CarterLi, LinusDierheimer]

.github/workflows/ci.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
run: uname -a
3636

3737
- name: configure project
38-
run: cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DCMAKE_INSTALL_PREFIX=/usr . -DENABLE_VULKAN=OFF -DENABLE_WAYLAND=OFF -DENABLE_XCB_RANDR=OFF -DENABLE_XCB=OFF -DENABLE_XRANDR=OFF -DENABLE_X11=OFF -DENABLE_DRM=OFF -DENABLE_GIO=OFF -DENABLE_DCONF=OFF -DENABLE_DBUS=OFF -DENABLE_XFCONF=OFF -DENABLE_SQLITE3=OFF -DENABLE_RPM=OFF -DENABLE_IMAGEMAGICK7=OFF -DENABLE_IMAGEMAGICK6=OFF -DENABLE_CHAFA=OFF -DENABLE_ZLIB=OFF -DENABLE_EGL=OFF -DENABLE_GLX=OFF -DENABLE_OSMESA=OFF -DENABLE_OPENCL=OFF -DENABLE_FREETYPE=OFF -DENABLE_PULSE=OFF -DENABLE_DDCUTIL=OFF -DENABLE_DIRECTX_HEADERS=OFF -DENABLE_THREADS=OFF
38+
run: cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DCMAKE_INSTALL_PREFIX=/usr . -DENABLE_VULKAN=OFF -DENABLE_WAYLAND=OFF -DENABLE_XCB_RANDR=OFF -DENABLE_XCB=OFF -DENABLE_XRANDR=OFF -DENABLE_X11=OFF -DENABLE_DRM=OFF -DENABLE_GIO=OFF -DENABLE_DCONF=OFF -DENABLE_DBUS=OFF -DENABLE_XFCONF=OFF -DENABLE_SQLITE3=OFF -DENABLE_RPM=OFF -DENABLE_IMAGEMAGICK7=OFF -DENABLE_IMAGEMAGICK6=OFF -DENABLE_CHAFA=OFF -DENABLE_ZLIB=OFF -DENABLE_EGL=OFF -DENABLE_GLX=OFF -DENABLE_OSMESA=OFF -DENABLE_OPENCL=OFF -DENABLE_FREETYPE=OFF -DENABLE_PULSE=OFF -DENABLE_DDCUTIL=OFF -DENABLE_ELF=OFF -DENABLE_DIRECTX_HEADERS=OFF -DENABLE_THREADS=OFF
3939

4040
- name: build project
4141
run: cmake --build . --target package --verbose -j4
@@ -74,7 +74,7 @@ jobs:
7474
run: uname -a
7575

7676
- name: install required packages
77-
run: sudo apt-get update && sudo apt-get install -y libvulkan-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libdconf-dev libdbus-1-dev libmagickcore-dev libxfconf-0-dev libsqlite3-dev librpm-dev libegl-dev libglx-dev libosmesa6-dev ocl-icd-opencl-dev libpulse-dev libdrm-dev directx-headers-dev
77+
run: sudo apt-get update && sudo apt-get install -y libvulkan-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libdconf-dev libdbus-1-dev libmagickcore-dev libxfconf-0-dev libsqlite3-dev librpm-dev libegl-dev libglx-dev libosmesa6-dev ocl-icd-opencl-dev libpulse-dev libdrm-dev libelf-dev directx-headers-dev
7878

7979
- name: install linuxbrew packages
8080
run: |
@@ -142,7 +142,7 @@ jobs:
142142
githubToken: ${{ github.token }}
143143
run: |
144144
uname -a
145-
apt-get update && apt-get install -y cmake make g++ libvulkan-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libdconf-dev libdbus-1-dev libmagickcore-dev libxfconf-0-dev libsqlite3-dev librpm-dev libegl-dev libglx-dev libosmesa6-dev ocl-icd-opencl-dev libpulse-dev libdrm-dev directx-headers-dev rpm
145+
apt-get update && apt-get install -y cmake make g++ libvulkan-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libdconf-dev libdbus-1-dev libmagickcore-dev libxfconf-0-dev libsqlite3-dev librpm-dev libegl-dev libglx-dev libosmesa6-dev ocl-icd-opencl-dev libpulse-dev libdrm-dev libelf-dev directx-headers-dev rpm
146146
cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DCMAKE_INSTALL_PREFIX=/usr .
147147
cmake --build . --target package --verbose -j4
148148
./fastfetch --list-features
@@ -181,7 +181,7 @@ jobs:
181181
# CMake installed by apt has bug `list sub-command REMOVE_ITEM requires two or more arguments`
182182
wget --no-check-certificate https://apt.kitware.com/ubuntu/pool/main/c/cmake/{cmake_3.29.2-0kitware1ubuntu20.04.1_armhf.deb,cmake-data_3.29.2-0kitware1ubuntu20.04.1_all.deb}
183183
dpkg -i *.deb
184-
apt-get install -y make g++ libvulkan-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libdconf-dev libdbus-1-dev libmagickcore-dev libxfconf-0-dev libsqlite3-dev librpm-dev libegl-dev libglx-dev libosmesa6-dev ocl-icd-opencl-dev libpulse-dev libdrm-dev directx-headers-dev rpm
184+
apt-get install -y make g++ libvulkan-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libdconf-dev libdbus-1-dev libmagickcore-dev libxfconf-0-dev libsqlite3-dev librpm-dev libegl-dev libglx-dev libosmesa6-dev ocl-icd-opencl-dev libpulse-dev libdrm-dev libelf-dev directx-headers-dev rpm
185185
cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DCMAKE_INSTALL_PREFIX=/usr .
186186
cmake --build . --target package --verbose -j4
187187
./fastfetch --list-features
@@ -216,7 +216,7 @@ jobs:
216216
githubToken: ${{ github.token }}
217217
run: |
218218
uname -a
219-
apt-get update && apt-get install -y cmake make g++ libvulkan-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libdconf-dev libdbus-1-dev libmagickcore-dev libxfconf-0-dev libsqlite3-dev librpm-dev libegl-dev libglx-dev libosmesa6-dev ocl-icd-opencl-dev libpulse-dev libdrm-dev libddcutil-dev libchafa-dev directx-headers-dev rpm
219+
apt-get update && apt-get install -y cmake make g++ libvulkan-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libdconf-dev libdbus-1-dev libmagickcore-dev libxfconf-0-dev libsqlite3-dev librpm-dev libegl-dev libglx-dev libosmesa6-dev ocl-icd-opencl-dev libpulse-dev libdrm-dev libddcutil-dev libchafa-dev libelf-dev directx-headers-dev rpm
220220
cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DCMAKE_INSTALL_PREFIX=/usr .
221221
cmake --build . --target package --verbose -j4
222222
./fastfetch --list-features
@@ -247,7 +247,7 @@ jobs:
247247
run: |
248248
cat /etc/alpine-release
249249
uname -a
250-
apk add cmake samurai vulkan-loader-dev libxcb-dev wayland-dev libdrm-dev dconf-dev imagemagick-dev chafa-dev zlib-dev dbus-dev mesa-dev opencl-dev xfconf-dev sqlite-dev networkmanager-dev pulseaudio-dev ddcutil-dev gcc g++
250+
apk add cmake samurai vulkan-loader-dev libxcb-dev wayland-dev libdrm-dev dconf-dev imagemagick-dev chafa-dev zlib-dev dbus-dev mesa-dev opencl-dev xfconf-dev sqlite-dev networkmanager-dev pulseaudio-dev ddcutil-dev elfutils-dev gcc g++
251251
shell: alpine.sh --root {0}
252252

253253
- name: build
@@ -288,7 +288,7 @@ jobs:
288288
run: |
289289
cat /etc/alpine-release
290290
uname -a
291-
apk add cmake samurai vulkan-loader-dev libxcb-dev wayland-dev libdrm-dev dconf-dev imagemagick-dev chafa-dev zlib-dev dbus-dev mesa-dev opencl-dev xfconf-dev sqlite-dev networkmanager-dev pulseaudio-dev ddcutil-dev gcc g++
291+
apk add cmake samurai vulkan-loader-dev libxcb-dev wayland-dev libdrm-dev dconf-dev imagemagick-dev chafa-dev zlib-dev dbus-dev mesa-dev opencl-dev xfconf-dev sqlite-dev networkmanager-dev pulseaudio-dev ddcutil-dev elfutils-dev gcc g++
292292
shell: alpine.sh --root {0}
293293

294294
- name: build
@@ -422,7 +422,7 @@ jobs:
422422
run: |
423423
uname -a
424424
sudo pkg update
425-
sudo pkg install -y cmake git pkgconf binutils wayland vulkan-headers vulkan-loader libxcb libXrandr libX11 libdrm glib dconf dbus sqlite3-tcl xfce4-conf ImageMagick6 ImageMagick7 chafa egl libosmesa opencl ocl-icd v4l_compat
425+
sudo pkg install -y cmake git pkgconf binutils wayland vulkan-headers vulkan-loader libxcb libXrandr libX11 libdrm libelf glib dconf dbus sqlite3-tcl xfce4-conf ImageMagick6 ImageMagick7 chafa egl libosmesa opencl ocl-icd v4l_compat
426426
cmake -DSET_TWEAK=Off -DBUILD_TESTS=On .
427427
cmake --build . --target package --verbose -j4
428428
./fastfetch --list-features

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,30 @@
1+
# 2.21.1
2+
3+
Hotfix for a regression that breaks WM detection when running `startx` from TTY (Regression from 2.21.0, #1172 / #1162)
4+
5+
Changes:
6+
* On Linux, FreeBSD and SunOS, a new recommended dependency `libelf` is introduced to extract strings in ELF binary, used for
7+
* st term font detection when the term font is compiled directly into the binary
8+
* fast path of systemd version detection
9+
10+
Features:
11+
* Improve performance of
12+
* kitty version detection (Terminal, Linux)
13+
* st term font detection (TerminalFont, Linux)
14+
* systemd version detection (InitSystem, Linux)
15+
16+
Bugfixes:
17+
* Fix building error without `linux/wireless.h` (Wifi, Linux)
18+
* Fix wrong GPU max frequency on Asahi Linux (GPU, Linux)
19+
* Don't rely `$XDG_SESSION_TYPE` for detecting wm protocol (#1172 / #1162, WM, Linux)
20+
* Fix light color doesn't work on Linux console (Colors, Linux)
21+
* `LC_ALL`, if set, overrides every other locale-related environment variable (Locale)
22+
* Increase timeout of DBus calls (Linux)
23+
24+
Logos:
25+
* Add vanilla_small and vanilla2
26+
* Add LFS (Linux From Scratch)
27+
128
# 2.21.0
229

330
Changes:

CMakeLists.txt

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
cmake_minimum_required(VERSION 3.12.0) # target_link_libraries with OBJECT libs & project homepage url
22

33
project(fastfetch
4-
VERSION 2.21.0
4+
VERSION 2.21.1
55
LANGUAGES C
66
DESCRIPTION "Fast neofetch-like system information tool"
77
HOMEPAGE_URL "https://github.com/fastfetch-cli/fastfetch"
@@ -69,6 +69,7 @@ cmake_dependent_option(ENABLE_FREETYPE "Enable freetype" ON "ANDROID" OFF)
6969
cmake_dependent_option(ENABLE_PULSE "Enable pulse" ON "LINUX OR SunOS" OFF)
7070
cmake_dependent_option(ENABLE_DDCUTIL "Enable ddcutil" ON "LINUX" OFF)
7171
cmake_dependent_option(ENABLE_DIRECTX_HEADERS "Enable DirectX headers for WSL" ON "LINUX" OFF)
72+
cmake_dependent_option(ENABLE_ELF "Enable libelf" ON "LINUX OR FreeBSD OR SunOS" OFF)
7273
cmake_dependent_option(ENABLE_THREADS "Enable multithreading" ON "Threads_FOUND" OFF)
7374

7475
option(ENABLE_SYSTEM_YYJSON "Use system provided (instead of fastfetch embedded) yyjson library" OFF)
@@ -201,10 +202,10 @@ if (SET_TWEAK AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
201202
execute_process(
202203
COMMAND git describe --tags
203204
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
204-
OUTPUT_VARIABLE PROJECT_VERSION_TWEAK
205+
OUTPUT_VARIABLE PROJECT_VERSION_GIT
205206
OUTPUT_STRIP_TRAILING_WHITESPACE
206207
)
207-
string(REGEX MATCH "-[0-9]+" PROJECT_VERSION_TWEAK "${PROJECT_VERSION_TWEAK}")
208+
string(REGEX MATCH "-[0-9]+" PROJECT_VERSION_TWEAK "${PROJECT_VERSION_GIT}")
208209
endif()
209210
if(PROJECT_VERSION_TWEAK)
210211
string(REGEX MATCH "[0-9]+" PROJECT_VERSION_TWEAK_NUM "${PROJECT_VERSION_TWEAK}")
@@ -480,6 +481,7 @@ if(LINUX)
480481
src/detection/wmtheme/wmtheme_linux.c
481482
src/detection/camera/camera_linux.c
482483
src/util/platform/FFPlatform_unix.c
484+
src/util/linux/elf.c
483485
)
484486
elseif(ANDROID)
485487
list(APPEND LIBFASTFETCH_SRC
@@ -619,6 +621,7 @@ elseif(FreeBSD)
619621
src/detection/wmtheme/wmtheme_linux.c
620622
src/detection/camera/camera_linux.c
621623
src/util/platform/FFPlatform_unix.c
624+
src/util/linux/elf.c
622625
)
623626
elseif(APPLE)
624627
list(APPEND LIBFASTFETCH_SRC
@@ -826,6 +829,7 @@ elseif(SunOS)
826829
src/detection/wmtheme/wmtheme_linux.c
827830
src/detection/camera/camera_nosupport.c
828831
src/util/platform/FFPlatform_unix.c
832+
src/util/linux/elf.c
829833
)
830834
endif()
831835

@@ -1075,6 +1079,10 @@ ff_lib_enable(DDCUTIL
10751079
"ddcutil"
10761080
"Ddcutil"
10771081
)
1082+
ff_lib_enable(ELF
1083+
"libelf"
1084+
"libelf"
1085+
)
10781086
ff_lib_enable(DIRECTX_HEADERS
10791087
"DirectX-Headers"
10801088
"DirectX-Headers"

debian/changelog

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
fastfetch (2.21.0) jammy; urgency=medium
2+
3+
* Update to 2.21.0
4+
5+
-- Carter Li <[email protected]> Mon, 05 Aug 2024 14:35:43 +0800
6+
7+
fastfetch (2.20.0) jammy; urgency=medium
8+
9+
* Update to 2.20.0
10+
11+
-- Carter Li <[email protected]> Fri, 26 Jul 2024 14:02:50 +0800
12+
113
fastfetch (2.19.1) jammy; urgency=medium
214

315
* Update to 2.19.1

debian/files

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
fastfetch_2.19.1_source.buildinfo universe/utils optional
1+
fastfetch_2.20.0_source.buildinfo universe/utils optional

doc/json_schema.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -730,6 +730,10 @@
730730
"ddcutil": {
731731
"description": "Used for brightness detection of external displays (Linux)",
732732
"type": "string"
733+
},
734+
"elf": {
735+
"description": "Used for st terminal font detection and systemd version detection (Linux)",
736+
"type": "string"
733737
}
734738
}
735739
},

presets/all.jsonc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,10 @@
5858
"poweradapter",
5959
"player",
6060
"media",
61-
"publicip",
61+
{
62+
"type": "publicip",
63+
"timeout": 1000
64+
},
6265
{
6366
"type": "localip",
6467
"showIpv6": true,

presets/archey.jsonc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@
7575
},
7676
{
7777
"type": "publicip",
78-
"key": "WAN IP"
78+
"key": "WAN IP",
79+
"timeout": 1000
7980
}
8081
]
8182
}

presets/ci.jsonc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,10 @@
6060
"poweradapter",
6161
"player",
6262
"media",
63-
"publicip",
63+
{
64+
"type": "publicip",
65+
"timeout": 1000
66+
},
6467
{
6568
"type": "localip",
6669
"showIpv6": true,

presets/examples/12.jsonc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@
9797
{
9898
"key": "Public IP ",
9999
"keyColor": "cyan",
100-
"type": "publicip"
100+
"type": "publicip",
101+
"timeout": 1000
101102
},
102103
"break",
103104
{

presets/examples/2.jsonc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,10 @@
6666
"type": "localip",
6767
"compact": true
6868
},
69-
"publicip",
69+
{
70+
"type": "publicip",
71+
"timeout": 1000
72+
},
7073
{
7174
"type": "wifi",
7275
"format": "{ssid}"

presets/examples/23.jsonc

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
// designed for presenting Vanilla Linux
2+
// inspired from imstilllearnin's Vanilla Logo Ultra
3+
{
4+
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
5+
"logo": {
6+
"type": "small"
7+
},
8+
"display": {
9+
"color": {
10+
"output": "cyan"
11+
},
12+
"separator": ""
13+
},
14+
"modules": [
15+
{
16+
"type": "kernel",
17+
"key": "Vanilla ",
18+
"keyColor": "blue"
19+
},
20+
{
21+
"type": "packages",
22+
"key": " [_Packages_> ",
23+
"keyColor": "green"
24+
},
25+
{
26+
"type": "localip",
27+
"key": " [_Local_IP_> ",
28+
"keyColor": "green"
29+
},
30+
{
31+
"type": "cpu",
32+
"key": " [_CPU______> ",
33+
"keyColor": "magenta"
34+
},
35+
{
36+
"type": "memory",
37+
"key": " [_RAM______> ",
38+
"keyColor": "magenta"
39+
},
40+
{
41+
"type": "swap",
42+
"key": " [_SWAP_____> ",
43+
"keyColor": "magenta"
44+
},
45+
{
46+
"type": "disk",
47+
"key": " [_Disk_____> ",
48+
"keyColor": "magenta"
49+
},
50+
"break",
51+
{
52+
"type":"colors",
53+
"paddingLeft": 9,
54+
"symbol": "circle"
55+
}
56+
]
57+
}

presets/examples/6.jsonc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,8 @@
161161
{
162162
"type": "publicip",
163163
"key": "├─󰩠",
164-
"keyColor": "blue"
164+
"keyColor": "blue",
165+
"timeout": 1000
165166
},
166167
{
167168
"type": "wifi",

src/common/dbus.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
#include "util/FFstrbuf.h"
77
#include "common/library.h"
88

9-
#define FF_DBUS_TIMEOUT_MILLISECONDS 35
9+
#define FF_DBUS_TIMEOUT_MILLISECONDS 100
10+
1011
typedef struct FFDBusLibrary
1112
{
1213
FF_LIBRARY_SYMBOL(dbus_bus_get)

src/common/init.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,9 @@ void ffListFeatures(void)
248248
#if FF_HAVE_DDCUTIL
249249
"libddcutil\n"
250250
#endif
251+
#if FF_HAVE_ELF
252+
"libelf\n"
253+
#endif
251254
#if FF_HAVE_DIRECTX_HEADERS
252255
"Directx Headers\n"
253256
#endif

src/data/help.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -935,6 +935,13 @@
935935
"arg": {
936936
"type": "path"
937937
}
938+
},
939+
{
940+
"long": "lib-elf",
941+
"desc": "Used for st terminal font detection and systemd version detection",
942+
"arg": {
943+
"type": "path"
944+
}
938945
}
939946
],
940947
"Module specific": [

src/detection/displayserver/linux/displayserver_linux.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,7 @@ static void getWMProtocolNameFromEnv(FFDisplayServerResult* result)
4646

4747
void ffConnectDisplayServerImpl(FFDisplayServerResult* ds)
4848
{
49-
getWMProtocolNameFromEnv(ds);
50-
51-
if (!ffStrbufEqualS(&ds->wmProtocolName, FF_WM_PROTOCOL_TTY) &&instance.config.general.dsForceDrm == FF_DS_FORCE_DRM_TYPE_FALSE)
49+
if (instance.config.general.dsForceDrm == FF_DS_FORCE_DRM_TYPE_FALSE)
5250
{
5351
//We try wayland as our preferred display server, as it supports the most features.
5452
//This method can't detect the name of our WM / DE
@@ -96,6 +94,9 @@ void ffConnectDisplayServerImpl(FFDisplayServerResult* ds)
9694
}
9795
#endif
9896

97+
if (ds->wmProtocolName.length == 0)
98+
getWMProtocolNameFromEnv(ds);
99+
99100
if(!ffStrbufEqualS(&ds->wmProtocolName, FF_WM_PROTOCOL_TTY))
100101
{
101102
//This fills in missing information about WM / DE by using env vars and iterating processes

0 commit comments

Comments
 (0)