Skip to content

Commit 293576f

Browse files
authored
Merge pull request #645 from fastfetch-cli/dev
Release 2.3.0
2 parents 22de71e + 0bc725c commit 293576f

File tree

223 files changed

+3531
-2096
lines changed

Some content is hidden

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

223 files changed

+3531
-2096
lines changed

.codespellrc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[codespell]
2+
check-filenames =
3+
builtin = clear,rare,usage,informal
4+
skip = */.git,*/cmake-build-*,*/.idea,*/completions,*/presets,*/screenshots,*/tests,*/3rdparty,*/logo/ascii
5+
ignore-words-list = iterm,compiletime,unknwn,pengwin,siduction,master,sur,doas

.github/workflows/ci.yml

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,20 @@ on:
55
- pull_request
66

77
jobs:
8+
spellcheck:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- name: checkout repository
13+
uses: actions/checkout@v3
14+
15+
- name: Install codespell
16+
shell: bash
17+
run: sudo apt update && sudo apt install -y codespell
18+
19+
- name: Run Spellchecker
20+
run: codespell
21+
822
linux-buildtest:
923
name: Linux build test
1024
permissions:
@@ -32,13 +46,13 @@ jobs:
3246
run: uname -a
3347

3448
- name: install required packages
35-
run: sudo apt-get update && sudo apt-get install -y musl-dev musl-tools linux-headers-generic libpci-dev libvulkan-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libdconf-dev libdbus-1-dev libmagickcore-dev libxfconf-0-dev libsqlite3-dev rpm librpm-dev libzstd-dev libegl-dev libglx-dev libosmesa6-dev ocl-icd-opencl-dev libnm-dev libpulse-dev directx-headers-dev
49+
run: sudo apt-get update && sudo apt-get install -y musl-dev musl-tools linux-headers-generic libpci-dev 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 libnm-dev libpulse-dev directx-headers-dev libdrm-dev
3650

3751
- name: configure project
3852
env:
3953
CC: ${{ matrix.compiler.cc }}
4054
CXX: ${{ matrix.compiler.cxx }}
41-
run: cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_LIBPCI=${{ matrix.enableFeatures }} -DENABLE_VULKAN=${{ matrix.enableFeatures }} -DENABLE_WAYLAND=${{ matrix.enableFeatures }} -DENABLE_XCB_RANDR=${{ matrix.enableFeatures }} -DENABLE_XCB=${{ matrix.enableFeatures }} -DENABLE_XRANDR=${{ matrix.enableFeatures }} -DENABLE_X11=${{ matrix.enableFeatures }} -DENABLE_GIO=${{ matrix.enableFeatures }} -DENABLE_DCONF=${{ matrix.enableFeatures }} -DENABLE_DBUS=${{ matrix.enableFeatures }} -DENABLE_XFCONF=${{ matrix.enableFeatures }} -DENABLE_SQLITE3=${{ matrix.enableFeatures }} -DENABLE_RPM=${{ matrix.enableFeatures }} -DENABLE_IMAGEMAGICK7=${{ matrix.enableFeatures }} -DENABLE_IMAGEMAGICK6=${{ matrix.enableFeatures }} -DENABLE_CHAFA=${{ matrix.enableFeatures }} -DENABLE_ZLIB=${{ matrix.enableFeatures }} -DENABLE_EGL=${{ matrix.enableFeatures }} -DENABLE_GLX=${{ matrix.enableFeatures }} -DENABLE_OSMESA=${{ matrix.enableFeatures }} -DENABLE_OPENCL=${{ matrix.enableFeatures }} -DENABLE_LIBNM=${{ matrix.enableFeatures }} -DENABLE_PULSE=${{ matrix.enableFeatures }} -DENABLE_DIRECTX_HEADERS=${{ matrix.enableFeatures }} .
55+
run: cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_LIBPCI=${{ matrix.enableFeatures }} -DENABLE_VULKAN=${{ matrix.enableFeatures }} -DENABLE_WAYLAND=${{ matrix.enableFeatures }} -DENABLE_XCB_RANDR=${{ matrix.enableFeatures }} -DENABLE_XCB=${{ matrix.enableFeatures }} -DENABLE_XRANDR=${{ matrix.enableFeatures }} -DENABLE_X11=${{ matrix.enableFeatures }} -DENABLE_GIO=${{ matrix.enableFeatures }} -DENABLE_DCONF=${{ matrix.enableFeatures }} -DENABLE_DBUS=${{ matrix.enableFeatures }} -DENABLE_XFCONF=${{ matrix.enableFeatures }} -DENABLE_SQLITE3=${{ matrix.enableFeatures }} -DENABLE_RPM=${{ matrix.enableFeatures }} -DENABLE_IMAGEMAGICK7=${{ matrix.enableFeatures }} -DENABLE_IMAGEMAGICK6=${{ matrix.enableFeatures }} -DENABLE_CHAFA=${{ matrix.enableFeatures }} -DENABLE_ZLIB=${{ matrix.enableFeatures }} -DENABLE_EGL=${{ matrix.enableFeatures }} -DENABLE_GLX=${{ matrix.enableFeatures }} -DENABLE_OSMESA=${{ matrix.enableFeatures }} -DENABLE_OPENCL=${{ matrix.enableFeatures }} -DENABLE_LIBNM=${{ matrix.enableFeatures }} -DENABLE_PULSE=${{ matrix.enableFeatures }} -DENABLE_DIRECTX_HEADERS=${{ matrix.enableFeatures }} -DENABLE_DRM=${{ matrix.enableFeatures }} .
4256

4357
- name: build project
4458
run: cmake --build .
@@ -50,10 +64,10 @@ jobs:
5064
run: ./fastfetch --list-features
5165

5266
- name: run fastfetch
53-
run: time ./fastfetch -c presets/ci
67+
run: time ./fastfetch -c presets/ci.jsonc
5468

5569
- name: run fastfetch --format json
56-
run: time ./fastfetch -c presets/ci --format json
70+
run: time ./fastfetch -c presets/ci.jsonc --format json
5771

5872
- name: run flashfetch
5973
run: time ./flashfetch
@@ -74,12 +88,12 @@ jobs:
7488
run: uname -a
7589

7690
- name: install required packages
77-
run: sudo apt-get update && sudo apt-get install -y libpci-dev libvulkan-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libdconf-dev libdbus-1-dev libmagickcore-dev libxfconf-0-dev libsqlite3-dev rpm librpm-dev libzstd-dev libegl-dev libglx-dev libosmesa6-dev ocl-icd-opencl-dev libnm-dev libpulse-dev directx-headers-dev
91+
run: sudo apt-get update && sudo apt-get install -y libpci-dev 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 libnm-dev libpulse-dev libdrm-dev directx-headers-dev
7892

7993
- name: install linuxbrew packages
8094
run: |
8195
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
82-
/home/linuxbrew/.linuxbrew/bin/brew install imagemagick --ignore-dependencies
96+
/home/linuxbrew/.linuxbrew/bin/brew install imagemagick ddcutil --ignore-dependencies
8397
8498
- name: Initialize CodeQL
8599
uses: github/codeql-action/init@v2
@@ -99,10 +113,10 @@ jobs:
99113
run: ./fastfetch --list-features
100114

101115
- name: run fastfetch
102-
run: time ./fastfetch -c presets/ci
116+
run: time ./fastfetch -c presets/ci.jsonc
103117

104118
- name: run fastfetch --format json
105-
run: time ./fastfetch -c presets/ci --format json
119+
run: time ./fastfetch -c presets/ci.jsonc --format json
106120

107121
- name: run flashfetch
108122
run: time ./flashfetch
@@ -138,6 +152,7 @@ jobs:
138152

139153
- name: install required packages
140154
run: |
155+
brew uninstall aws-sam-cli azure-cli qemu lima colima gradle kotlin maven pipx aria2 || true
141156
brew update
142157
brew install vulkan-loader vulkan-headers molten-vk imagemagick chafa
143158
@@ -159,10 +174,10 @@ jobs:
159174
run: ./fastfetch --list-features
160175

161176
- name: run fastfetch
162-
run: time ./fastfetch -c presets/ci
177+
run: time ./fastfetch -c presets/ci.jsonc
163178

164179
- name: run fastfetch --format json
165-
run: time ./fastfetch -c presets/ci --format json
180+
run: time ./fastfetch -c presets/ci.jsonc --format json
166181

167182
- name: run flashfetch
168183
run: time ./flashfetch
@@ -197,12 +212,12 @@ jobs:
197212
run: |
198213
uname -a
199214
sudo pkg update
200-
sudo pkg install -y cmake git pkgconf binutils pciutils wayland vulkan-headers vulkan-loader libxcb libXrandr libX11 glib dconf dbus sqlite3-tcl xfce4-conf ImageMagick6 ImageMagick7 chafa egl libosmesa opencl ocl-icd pulseaudio
215+
sudo pkg install -y cmake git pkgconf binutils pciutils wayland vulkan-headers vulkan-loader libxcb libXrandr libX11 libdrm glib dconf dbus sqlite3-tcl xfce4-conf ImageMagick6 ImageMagick7 chafa egl libosmesa opencl ocl-icd pulseaudio
201216
cmake -DSET_TWEAK=Off -DBUILD_TESTS=On .
202217
cmake --build . --target package --verbose
203218
./fastfetch --list-features
204-
time ./fastfetch -c presets/ci
205-
time ./fastfetch -c presets/ci --format json
219+
time ./fastfetch -c presets/ci.jsonc
220+
time ./fastfetch -c presets/ci.jsonc --format json
206221
time ./flashfetch
207222
ldd fastfetch
208223
ctest
@@ -249,10 +264,10 @@ jobs:
249264
run: ./fastfetch --list-features
250265

251266
- name: run fastfetch
252-
run: time ./fastfetch -c presets/ci
267+
run: time ./fastfetch -c presets/ci.jsonc
253268

254269
- name: run fastfetch --format json
255-
run: time ./fastfetch -c presets/ci --format json
270+
run: time ./fastfetch -c presets/ci.jsonc --format json
256271

257272
- name: run flashfetch
258273
run: time ./flashfetch
@@ -316,10 +331,10 @@ jobs:
316331
run: cp /clang32/bin/{OpenCL,vulkan-1}.dll .
317332

318333
- name: run fastfetch
319-
run: time ./fastfetch -c presets/ci
334+
run: time ./fastfetch -c presets/ci.jsonc
320335

321336
- name: run fastfetch --format json
322-
run: time ./fastfetch -c presets/ci --format json
337+
run: time ./fastfetch -c presets/ci.jsonc --format json
323338

324339
- name: run flashfetch
325340
run: time ./flashfetch

CHANGELOG.md

Lines changed: 57 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,46 @@
1+
# 2.3.0
2+
3+
Config related changes:
4+
* The deprecated flag `--gen-config conf` is removed
5+
* Flag `--gen-config` now does the same thing as `--migrate-config`, which can be used as config migration and default config file generation. Flag `--migrate-config` is removed
6+
* Fastfetch now searches for config files in the order of `fastfetch --list-config-paths`, and won't load other config if one is found.
7+
* The undocumented flag `--load-user-config` is removed. As an alternative, `--config none` can be used to disable loading config files.
8+
* `--config` (previously named `--load-config`) is now supported for command line arguments only. If specified, other config files won't be loaded, which works like other programs.
9+
* Config files will always be loaded before other command line flags being parsed. That is to say, command line flags will always override options defined in config files.
10+
* the value of GPUType `integrated` contained a typo and was fixed. Existing config files may need to be updated.
11+
12+
We are deprecating flags based config files (will be removed in v3.0.0). We suggest you migrate to json based config files.
13+
14+
Features:
15+
* Support Oils and elvish shell version detection (Shell)
16+
* Support Windows Server Core (Windows)
17+
* Better ddcutil 2.x compatibility (Brightness, Linux)
18+
* Add completion support for fish (natively) and nushell (via [carapace-bin](https://github.com/rsteube/carapace-bin))
19+
* Support nix in macOS (Packages, macOS)
20+
* Print module description for `--list-modules`
21+
* Support `alacritty.toml` (TerminalFont)
22+
* Support board detection on macOS. It simplily prints machine model identifier as for now (Board, macOS)
23+
* Add general method to query product name (Host, macOS)
24+
* Use `libdrm` as a better fall back for detecting displays, which correctly detects current mode; supports refresh rate detection and maybe also faster than using `/sys/class/drm` (Display, Linux)
25+
* Support physical disk size detection (DiskIO)
26+
* Support physical disk name and type detection (DiskIO, FreeBSD)
27+
28+
Bugfixes:
29+
* End `va_list` before returning (@VoltrexKeyva)
30+
* Don't use background color when printing blocks (Color)
31+
* Fix lots of typos
32+
* Fix compatibility with Linux containers (Linux)
33+
* Don't report disabled monitors when using DRM (Linux)
34+
* Fix bad performance in some cases when using X11 (Display, Linux)
35+
* Fix some memory leaks
36+
* Fix used swap space detection (Swap, FreeBSD)
37+
* Don't leak fds to child processes (Linux)
38+
* Fix possible issues when reading procfs (Linux)
39+
40+
Logos:
41+
* Add Adelie, Ironclad
42+
* Update parch
43+
144
# 2.2.3
245

346
Features:
@@ -19,11 +62,11 @@ Features:
1962
* Improve detection of `Battery`
2063
* Detect cycle count on supported platforms
2164
* Detect temperature on Linux when supported
22-
* Status detection on macOS has been adjusted to be consistant with other platforms
65+
* Status detection on macOS has been adjusted to be consistent with other platforms
2366
* Linux binaries are built with imagemagick7 support
2467

2568
Bugfixes:
26-
* Fix unitialized variables (#609)
69+
* Fix uninitialized variables (#609)
2770
* Fix spelling of `--preserve-aspect-ratio` (#614)
2871

2972
Logos:
@@ -49,7 +92,7 @@ Changes:
4992
* Display keys `percent*` and `size*` in JSON config are restructured. e.g. `{ "sizeNdigits": 1 }` is now `{ "size": { "ndigits": 1 } }`
5093
* With the introduction of `--migrate-config`, the old flag based config file is deprecated, and will be removed in 3.0.0 (next major version)
5194
* Support of `--gen-config conf` is deprecated accordingly, and will be removed in 2.3.0 (next minor version)
52-
* The global flag `--allow-slow-operations` is splitted into some explicit flags in differnet modules
95+
* The global flag `--allow-slow-operations` is split into some explicit flags in different modules
5396
* `--packages-winget`: control whether `winget` packages count should be detected. Note it's a very slow operation, please enable it with caution.
5497
* `--chassis-use-wmi`: control whether `WMI` query should be used to detect chassis type, which detects more information, but slower. This flag only affects `--chassis-format` and `--format json`.
5598
* `--battery-use-setup-api`: control whether `SetupAPI` should be used on Windows to detect battery info, which supports multi batteries, but slower.
@@ -122,9 +165,9 @@ This release introduces a new output format: JSON result
122165

123166
Changes:
124167
* Users module detects and prints user login time by default. Specifying `--users-compact` to disable it
125-
* Fastfetch now requires yyjson 0.8.0 or later, which is embeded in fastfetch source tree. If you build fastfetch with `-DENABLE_SYSTEM_YYJSON` cmake option, you must upgrade your yyjson package
168+
* Fastfetch now requires yyjson 0.8.0 or later, which is embedded in fastfetch source tree. If you build fastfetch with `-DENABLE_SYSTEM_YYJSON` cmake option, you must upgrade your yyjson package
126169
* Reduced information supported by `--terminal-format`, `--shell-format`
127-
* Some config presets (`devinfo` and `verbose`) are obseleted and removed. They are barely maintained and can be replaced with `--format json` now.
170+
* Some config presets (`devinfo` and `verbose`) are obsolete and removed. They are barely maintained and can be replaced with `--format json` now.
128171
* Custom strings in `--module-key` and `--module-format` are no longer trimmed.
129172
* `/boot` is hidden by default (FreeBSD, Disk)
130173

@@ -204,7 +247,7 @@ Features:
204247
# 2.0.2
205248

206249
Bugfixes:
207-
* Workarund [a compiler bug of GCC](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85282) (Windows)
250+
* Workaround [a compiler bug of GCC](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85282) (Windows)
208251
* Fix presets not detected by file name (#529)
209252

210253
Logo:
@@ -216,7 +259,7 @@ First stable release of Fastfetch V2
216259

217260
Changes:
218261
* Unescape strings only when parsing `.conf` files
219-
* Previously: `$ NO_CONFIG=1 fastfetch --os-key \\\\ -s os -l none` prints `\: *`. Note the backslashs are unescaped twice (once by shell and once by fastfetch).
262+
* Previously: `$ NO_CONFIG=1 fastfetch --os-key \\\\ -s os -l none` prints `\: *`. Note the backslashes are unescaped twice (once by shell and once by fastfetch).
220263
* Now: `$ NO_CONFIG=1 fastfetch --os-key \\\\ -s os -l none` prints `\\: *`
221264
* Remove option shortcut `-c` (alias of `--color`), which is more commonly used as alias of `--config`
222265
* Rename `--recache` to `--logo-recache` (which is used for regenerate image logo cache). Remove option shortcut `-r` (alias of `--recache`).
@@ -272,7 +315,7 @@ Features:
272315
* Better CPU and Host detection for Android (Android)
273316
* Support yakuake terminal version & font detection (Terminal, Linux)
274317
* Add new option `--bright-color` which can be used to disable the default bright color of keys, title and ASCII logo.
275-
* Add module `Monitor` which prints physical parameters (native resolutions and demensions) of connected monitors
318+
* Add module `Monitor` which prints physical parameters (native resolutions and dimensions) of connected monitors
276319
* Support path with environment variables for `--logo-source` and `--load-config`.
277320

278321
Bugfixes:
@@ -360,7 +403,7 @@ Bugfixes:
360403
* Fix Windows drives detection in WSL (Disk)
361404

362405
Changes:
363-
* In order to make Icons module consistant between different platforms, `--icons-format` no longer supports individual GTK / QT icon params.
406+
* In order to make Icons module consistent between different platforms, `--icons-format` no longer supports individual GTK / QT icon params.
364407
* `--theme-format` no longer supports individual GTK / plasma theme params.
365408
* `--local-ip-*` and `--public-ip-*` have been changed to `--localip-*` and `--publicip-*`
366409
* `--localip-compact-type` is no longer supported. Fastfetch now display IPs as `--localip-compat-type multiline` by default, with `--local-compact true` can be set as an alias of `--localip-compact-type oneline`
@@ -383,7 +426,7 @@ Bugfixes:
383426
* Fix iTerm being detected as iTermServer-* sometimes
384427
* Fix sound device volume being incorrectly detected as muted sometimes (Sound)
385428
* Fix memleaks reported by LeakSanitizer (Linux)
386-
* Fix potential memory curruption bug in unicode.c (Windows)
429+
* Fix potential memory corruption bug in unicode.c (Windows)
387430

388431
Logo:
389432
* Update Windows 11 ASCII logo to look more visually consistent (#445)
@@ -419,7 +462,7 @@ Bugfixes:
419462
* Fix compiling errors (Windows)
420463

421464
Improvements:
422-
* Improve preformance (WmTheme amd Font, Windows and macOS)
465+
* Improve performance (WmTheme amd Font, Windows and macOS)
423466
* Enable nonblocking public-ip / weather detection (Android)
424467

425468
# 1.10.2
@@ -464,7 +507,7 @@ Other:
464507

465508
* Simplified wmtheme output format (Windows)
466509
* Improved GPU detection performance on Windows 11
467-
* Lastest Mac model identifier support (macOS)
510+
* Latest Mac model identifier support (macOS)
468511

469512
# 1.9.1
470513

@@ -546,7 +589,7 @@ Bugfixes:
546589
This release introduces Windows support! Fastfetch now fully support all major desktop OSes (Linux, macOS, Windows and FreeBSD)
547590

548591
Notable Changes:
549-
* Bios / Board / Chassis modules are splitted against Host module for performance reasons
592+
* Bios / Board / Chassis modules are split against Host module for performance reasons
550593
* Caching is removed. Option `--nocache` is removed accordingly
551594

552595
Features:
@@ -555,7 +598,7 @@ Features:
555598
* Adds a new flag `--stat`, which prints time usage for individual modules
556599
* Adds Wifi module which supports Windows and macOS
557600
* Adds data source option for logo printing
558-
* Detects Homebrew Cellar and Cask seperately
601+
* Detects Homebrew Cellar and Cask separately
559602
* Detects WSL version
560603
* Detects disk based on mount point
561604
* Exposes more chafa configs

0 commit comments

Comments
 (0)