Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
e093c8a
Packaging: update debian stuff [ci skip]
CarterLi Jul 31, 2025
559905d
Changelog: fix typo [ci skip]
CarterLi Jul 31, 2025
78fb55c
Chore: remove sensitive data [ci skip]
CarterLi Jul 31, 2025
671b111
Wifi (macOS): disable using of `ipconfig` on 15.6 too
CarterLi Aug 1, 2025
afe2c85
Bar: add configurable elapsed bar borders for percent bars
CarterLi Aug 1, 2025
c6675f8
Bar: add customizable bar color options for percentage bars
CarterLi Aug 1, 2025
54c5bc5
Bar: refactor config to use nested objects and deprecates old fields
CarterLi Aug 1, 2025
4f8d8de
Doc: update changelog [ci skip]
CarterLi Aug 1, 2025
ba3e26f
Option: fix a possible null reference segfault
CarterLi Aug 1, 2025
fb267ac
Presets: add new config; fix old config
CarterLi Aug 1, 2025
6d86813
Doc: update changelog; fix typo
CarterLi Aug 1, 2025
3cef51e
JsonConfig: refactor string buffer JSON handling for robustness
CarterLi Aug 2, 2025
0b02543
JsonConfig: refactor JSON key handling to improve safety and consistency
CarterLi Aug 2, 2025
59289be
Percent: silense compiler warnings
CarterLi Aug 2, 2025
4a141c3
Disk: add missing JSON config options
CarterLi Aug 3, 2025
980e552
Display: allow `"compactType": null`; improve json schema
CarterLi Aug 3, 2025
22bfaf3
JsonSchema: small improvements
CarterLi Aug 3, 2025
094d736
Modules: remove all `parseCommandOptions` and related stuff
CarterLi Aug 3, 2025
c491c9e
Display: add `compactMode: null`; improve json schema
CarterLi Aug 3, 2025
dd4f006
GPU: support `"hideType": null`
CarterLi Aug 3, 2025
badae2b
JsonSchema: Improves JSON schema enums with oneOf objects containing …
CarterLi Aug 3, 2025
9b68674
OS (Linux): don't detect Bedrock linux when ran restricted
CarterLi Aug 3, 2025
582268f
Disk (Linux): ignore Bedrock Linux subvolumes
CarterLi Aug 3, 2025
6f8d276
Modules: add init and destroy option callbacks to module info
CarterLi Aug 3, 2025
5590828
Modules: export module info
CarterLi Aug 3, 2025
75d2c66
Modules: refactor module option handling for static allocation
CarterLi Aug 4, 2025
e753d4d
Doc: remove command line flags of modules
CarterLi Aug 4, 2025
fa4e11c
JsonConfig: write all flags when generating config file
CarterLi Aug 4, 2025
e32987c
JsonConfig: make all non-module keys case-sensitive
CarterLi Aug 5, 2025
655d11c
Chore: fix building on Windows
CarterLi Aug 5, 2025
137d5df
LocalIP (Windows): show only preferred IP when `showAllIPs` is not set
CarterLi Aug 5, 2025
5e770dc
LocalIP: consider preferred source address when retrieving default ro…
jannispl Aug 5, 2025
b20aea7
Netif (BSD): split different implementations
CarterLi Aug 6, 2025
d9455ad
Display: fix invalid `size.maxPrefix` default value in generated conf…
CarterLi Aug 6, 2025
a84c4dc
Netif: refactor API for dual-stack route detection
CarterLi Aug 7, 2025
be11013
LocalIP (BSD): fix building
CarterLi Aug 7, 2025
02c9997
NetIO (SunOS): fix build
CarterLi Aug 7, 2025
64568b3
Netif (Haiku): add preferred source addr
CarterLi Aug 7, 2025
8cfee9d
Netif: unifies BSD netif handling
CarterLi Aug 8, 2025
33983c5
LocalIP: improve preferred IPv6 address detection
CarterLi Aug 8, 2025
1b0a65e
Wifi: updates default WiFi percentage thresholds
CarterLi Aug 8, 2025
f96ddb4
LocalIP (BSD): fix compiling
CarterLi Aug 8, 2025
ed94b4c
Netif (SunOS): fix compiler warnings
CarterLi Aug 9, 2025
4588644
Networking (SunOS): fix compiler warnings
CarterLi Aug 9, 2025
2bb451d
LocalIP (Linux): fix compiler warnings
CarterLi Aug 9, 2025
1edc617
LocalIP (SunOS): add more if flags
CarterLi Aug 9, 2025
1bde2b3
LocalIP (SunOS): support `isIPv6AddressPreferred`
CarterLi Aug 9, 2025
f3c82ad
LocalIP (SunOS): add speed detection support
CarterLi Aug 9, 2025
a734713
LocalIP (Linux): fix building
CarterLi Aug 9, 2025
7ee0e87
CPU (macOS): use CPUID for freq detection on Intel
CarterLi Aug 9, 2025
f184f8d
GPU (FreeBSD): fix gpu driver detection when DRM is used
CarterLi Aug 9, 2025
bedb5eb
Netif (SunOS): work around a bug that fails to detect default route f…
CarterLi Aug 10, 2025
329cb22
Chore: remove unused functions
CarterLi Aug 10, 2025
1124342
Display (Linux): show brand of Xserver in WM section (#1888)
aequabit Aug 11, 2025
b0340d5
DisplayServer: merge `serverVender` into `wmProtocolName`
CarterLi Aug 11, 2025
eee98e5
OS (Linux): fix lliurex detection (#1882)
juanma1980 Aug 11, 2025
5ab51c0
Doc: don't recommand Ubuntu PPA [ci skip]
CarterLi Aug 11, 2025
1c8e2e3
JsonSchema: remove unused properties [ci skip]
CarterLi Aug 11, 2025
3345c1e
Percent: fix a copy-paste error
CarterLi Aug 11, 2025
060b692
Presets: add an example
CarterLi Aug 11, 2025
1469810
CommandLine: add `--gen-config-full`
CarterLi Aug 11, 2025
883923d
CI (Haiku): reduce errors when installing deps (hopefully)
CarterLi Aug 11, 2025
7f1063d
Revert "CPU (macOS): use CPUID for freq detection on Intel"
CarterLi Aug 11, 2025
1ec69d6
OS (Linux): tidy
CarterLi Aug 11, 2025
3276949
Doc: update README & Changelog
CarterLi Aug 11, 2025
3ef8483
README: HomeBrew -> Homebrew (#1891) [ci skip]
osalbahr Aug 12, 2025
a0265c3
CI: upgrade to `actions/checkout@v5`
CarterLi Aug 12, 2025
4004501
Packages: unifies Nix package detection code
CarterLi Aug 12, 2025
ebc60ac
Logo (Builtin): add ObsidianOS (#1890)
neoapps-dev Aug 12, 2025
e1c4365
Cursor (macOS): improves color detection and rounding for cursor info
CarterLi Aug 12, 2025
53ecf57
Doc: update changelog [ci skip]
CarterLi Aug 13, 2025
0b37ace
GPU (Windows): ignore software adapters; add verbose logs
CarterLi Aug 13, 2025
7446828
GPU (macOS): don't set `platformApi` to `Metal` when Metal API is not…
CarterLi Aug 13, 2025
61f2823
Global: fixes `-ffast-math` compatibility
CarterLi Aug 14, 2025
78530b4
Release: v2.50.0
CarterLi Aug 14, 2025
5d8edc0
Doc: update changelog [ci skip]
CarterLi Aug 14, 2025
9ebff9f
Chore: removes undocumented flag `--load-config`
CarterLi Aug 14, 2025
d477321
Fastfetch: adds support for reading JSON config from stdin
CarterLi Aug 14, 2025
e80bb48
Doc: update changelog
CarterLi Aug 14, 2025
0fe3db4
Separator: honors FQDN settings in Title module
CarterLi Aug 14, 2025
bd5b385
Flashfetch: disable decimal digits in Disk module
CarterLi Aug 14, 2025
bc37031
Doc: update changelog
CarterLi Aug 14, 2025
4092115
Doc: update changelog [ci skip]
CarterLi Aug 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
42 changes: 21 additions & 21 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:

steps:
- name: checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Install codespell
shell: bash
Expand All @@ -29,7 +29,7 @@ jobs:
contents: read
steps:
- name: checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: uname -a
run: uname -a
Expand Down Expand Up @@ -68,7 +68,7 @@ jobs:
ffversion: ${{ steps.ffversion.outputs.ffversion }}
steps:
- name: checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: uname -a
run: uname -a
Expand Down Expand Up @@ -137,7 +137,7 @@ jobs:
contents: read
steps:
- name: checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: uname -a
run: uname -a
Expand Down Expand Up @@ -198,7 +198,7 @@ jobs:
contents: read
steps:
- name: checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: run VM
uses: uraimo/run-on-arch-action@v3
Expand Down Expand Up @@ -237,7 +237,7 @@ jobs:
contents: read
steps:
- name: checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: run VM
uses: uraimo/run-on-arch-action@v3
Expand Down Expand Up @@ -273,7 +273,7 @@ jobs:
contents: read
steps:
- name: checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: run VM
uses: uraimo/run-on-arch-action@v3
Expand Down Expand Up @@ -308,7 +308,7 @@ jobs:
contents: read
steps:
- name: checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: run VM
uses: uraimo/run-on-arch-action@v3
Expand Down Expand Up @@ -343,7 +343,7 @@ jobs:
contents: read
steps:
- name: checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: run VM
uses: uraimo/run-on-arch-action@v3
Expand Down Expand Up @@ -374,7 +374,7 @@ jobs:
name: Musl-amd64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- name: setup alpine linux
uses: jirutka/setup-alpine@master
Expand Down Expand Up @@ -416,7 +416,7 @@ jobs:
contents: read
steps:
- name: checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: uname -a
run: uname -a
Expand Down Expand Up @@ -463,7 +463,7 @@ jobs:
contents: read
steps:
- name: checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: uname -a
run: uname -a
Expand Down Expand Up @@ -507,7 +507,7 @@ jobs:
name: SunOS-amd64
steps:
- name: checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: run VM
uses: vmactions/omnios-vm@v1
Expand Down Expand Up @@ -543,7 +543,7 @@ jobs:
contents: read
steps:
- name: checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: run VM
uses: cross-platform-actions/action@master
Expand Down Expand Up @@ -580,7 +580,7 @@ jobs:
contents: read
steps:
- name: checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: run VM
uses: cross-platform-actions/action@master
Expand Down Expand Up @@ -616,7 +616,7 @@ jobs:
contents: read
steps:
- name: checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: run VM
uses: cross-platform-actions/action@master
Expand Down Expand Up @@ -653,7 +653,7 @@ jobs:
contents: read
steps:
- name: checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: run VM
uses: vmactions/dragonflybsd-vm@v1
Expand Down Expand Up @@ -688,7 +688,7 @@ jobs:
contents: read
steps:
- name: checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: run VM
uses: cross-platform-actions/action@master
Expand All @@ -700,7 +700,7 @@ jobs:
shell: bash
run: |
uname -a
pkgman install -y git dbus_devel mesa_devel libelf_devel imagemagick_devel opencl_headers ocl_icd_devel vulkan_devel zlib_devel chafa_devel cmake gcc make pkgconfig python3.10
pkgman install -y git dbus_devel mesa_devel libelf_devel imagemagick_devel opencl_headers ocl_icd_devel vulkan_devel zlib_devel chafa_devel cmake gcc make pkgconfig python3.10 || pkgman install -y git dbus_devel mesa_devel libelf_devel imagemagick_devel opencl_headers ocl_icd_devel vulkan_devel zlib_devel chafa_devel cmake gcc make pkgconfig python3.10
cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DENABLE_EMBEDDED_PCIIDS=On -DENABLE_EMBEDDED_AMDGPUIDS=On .
cmake --build . --target package --verbose -j4
./fastfetch --list-features
Expand All @@ -726,7 +726,7 @@ jobs:
shell: msys2 {0}
steps:
- name: checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: setup-msys2
uses: msys2/setup-msys2@v2
Expand Down Expand Up @@ -788,7 +788,7 @@ jobs:
shell: msys2 {0}
steps:
- name: checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: setup-msys2
uses: msys2/setup-msys2@v2
Expand Down
49 changes: 47 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,48 @@
# 2.50.0

Changes:
* Keys in JSON configuration files are now case-sensitive, as stated in v2.49.0.
* This is a breaking change, but it should not affect most users as long as your config file passes JSON schema validation.
* All module config flags have been removed, as stated in v2.49.0.
* To configure modules via the command line, use: `echo '{"modules": [{"type":"custom","format":"Hello Fastfetch!"}]}' | fastfetch -c -`.
* The percent bar config `display.bar.*` options have been replaced with a more organized, nested object structure.
* `display.bar.charElapsed` has been renamed to `display.bar.char.elapsed`.
* `display.bar.charTotal` has been renamed to `display.bar.char.total`.
* `display.bar.borderLeft` has been renamed to `display.bar.border.left`.
* `display.bar.borderRight` has been renamed to `display.bar.border.right`.
* The undocumented flag `--load-config` has been removed.
* Use `--config` or `-c` instead.
* Flashfetch, a simplified fastfetch variant that used a hardcoded module list with direct function calls to reduce startup overhead, has been changed to a version that aims to match neofetch's behavior as closely as possible, for demonstration purposes.
* Flashfetch is intended to be built from source (like [st](https://st.suckless.org/)). We do not provide prebuilt binaries in distributions.

Features:
* Added support for reading JSON config from stdin using `--config -` or `-c -`.
* Added `display.bar.border.{leftElapsed,rightElapsed}` for using the border as part of the bar content. (#1875)
* `display.bar.border: null` has been added as a shorthand to disable bar borders.
* Added `display.bar.color.{elapsed,total,border}` to customize the color of the elapsed, total, and border sections of the percent bar.
* `display.bar.color: null` has been added as a shorthand to disable bar colors.
* Improved Bedrock Linux detection (#1881, OS / Disk, Linux)
* Added the command flag `--gen-config-full`, which generates a JSON config file containing all optional module options.
* Improved the default IP address display when `localip.showAllIPs` is not set (LocalIP)
* For IPv4, the preferred source address (if detected) is shown.
* For IPv6, the first GUA or ULA that is not deprecated or temporary is shown.
* Added support for interface speed detection on SunOS (LocalIP, SunOS)
* Added detection support for Xlibre (#1888, WM, Linux)
* Improved the accuracy of color detection (Cursor, macOS)
* Improved the proformance of `Nix` package manager detection on macOS by porting optimizations form Linux port (#1893, Packages, macOS)

Bugfixes:
* Fixed custom object inheriting a key from the previous custom object if the key is blank (#1477)
* Fixed a possible segfault when parsing color strings in the JSON config (#1878)
* Fixed GPU driver detection when DRM is used (GPU, FreeBSD)
* Fixed default route detection on DragonFly BSD (LocalIP, DFBSD)
* Fixed lliurex detection (#1882, OS, Linux)
* Fixed compatibility with `-ffast-math` (#1894)
* Fixed physical GPU sometimes being ignored (#1896, GPU, Windows)

Logos:
* Added ObsidianOS (#1890)

# 2.49.0

Deprecation Notice:
Expand Down Expand Up @@ -26,8 +71,8 @@ Features:
* Add `--{duration,percent,size,freq,temp}-space-before-unit [always|never]` options to add a space before the unit when printing duration, percent, size, frequency and temperature values
* Add `--duration-abbreviation` to abbreviate duration values in custom format
* For example: `1 day, 2 hours, 3 mins` will be displayed as `1d 2h 3m`
* Add `--percent-with` to pad the percent value with spaces to a fixed width
* For example: `--percent-with 3` will display ` 50%` instead of `50%`; useful for aligning percent values in custom format
* Add `--percent-width` to pad the percent value with spaces to a fixed width
* For example: `--percent-width 3` will display ` 50%` instead of `50%`; useful for aligning percent values in custom format

Bugfixes:
* Improve accuracy of Flatpak count detection (#1856, Packages, Linux)
Expand Down
9 changes: 5 additions & 4 deletions 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.49.0
VERSION 2.50.0
LANGUAGES C
DESCRIPTION "Fast neofetch-like system information tool"
HOMEPAGE_URL "https://github.com/fastfetch-cli/fastfetch"
Expand Down Expand Up @@ -474,7 +474,6 @@ set(LIBFASTFETCH_SRC
src/modules/wmtheme/wmtheme.c
src/modules/zpool/zpool.c
src/options/display.c
src/options/modules.c
src/options/logo.c
src/options/general.c
src/util/edidHelper.c
Expand Down Expand Up @@ -548,6 +547,7 @@ if(LINUX)
src/detection/opengl/opengl_linux.c
src/detection/os/os_linux.c
src/detection/packages/packages_linux.c
src/detection/packages/packages_nix.c
src/detection/poweradapter/poweradapter_linux.c
src/detection/processes/processes_linux.c
src/detection/gtk_qt/qt.c
Expand Down Expand Up @@ -896,7 +896,7 @@ elseif(OpenBSD)
elseif(APPLE)
list(APPEND LIBFASTFETCH_SRC
src/common/io/io_unix.c
src/common/netif/netif_bsd.c
src/common/netif/netif_apple.c
src/common/networking/networking_linux.c
src/common/processing_linux.c
src/common/sysctl.c
Expand Down Expand Up @@ -940,6 +940,7 @@ elseif(APPLE)
src/detection/opengl/opengl_apple.c
src/detection/os/os_apple.m
src/detection/packages/packages_apple.c
src/detection/packages/packages_nix.c
src/detection/poweradapter/poweradapter_apple.c
src/detection/processes/processes_bsd.c
src/detection/sound/sound_apple.c
Expand Down Expand Up @@ -1042,7 +1043,7 @@ elseif(SunOS)
list(APPEND LIBFASTFETCH_SRC
src/common/dbus.c
src/common/io/io_unix.c
src/common/netif/netif_bsd.c
src/common/netif/netif_apple.c
src/common/networking/networking_linux.c
src/common/processing_linux.c
src/detection/battery/battery_nosupport.c
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ Some distributions package outdated versions of fastfetch. Older versions receiv
<img src="https://repology.org/badge/vertical-allrepos/fastfetch.svg?columns=2" alt="Packaging status" align="right">
</a>

* Ubuntu: [`ppa:zhangsongcui3371/fastfetch`](https://launchpad.net/~zhangsongcui3371/+archive/ubuntu/fastfetch) (for Ubuntu 22.04 or newer)
* Debian: `apt install fastfetch` (for Debian 13 or newer)
* Debian / Ubuntu: Download `fastfetch-linux-<proper architecture>.deb` from [Github release page](https://github.com/fastfetch-cli/fastfetch/releases/latest) and double-click it (for Ubuntu 20.04 or newer and Debian 11 or newer).
* Arch Linux: `pacman -S fastfetch`
Expand All @@ -58,7 +57,7 @@ If fastfetch is not packaged for your distribution or an outdated version is pac

### macOS

* [HomeBrew](https://formulae.brew.sh/formula/fastfetch#default): `brew install fastfetch`
* [Homebrew](https://formulae.brew.sh/formula/fastfetch#default): `brew install fastfetch`
* [MacPorts](https://ports.macports.org/port/fastfetch/): `sudo port install fastfetch`

### Windows
Expand Down Expand Up @@ -95,7 +94,8 @@ See the Wiki: https://github.com/fastfetch-cli/fastfetch/wiki/Building
* Run with [all supported modules](https://github.com/fastfetch-cli/fastfetch/wiki/Support+Status#available-modules) to find what interests you: `fastfetch -c all.jsonc`
* View all data that fastfetch detects: `fastfetch -s <module1>[:<module2>][:<module3>] --format json`
* Display help messages: `fastfetch --help`
* Generate a config file based on command line arguments: `fastfetch --arg1 --arg2 --gen-config`
* Generate a minimal config file: `fastfetch [-s <module1>[:<module2>]] --gen-config [</path/to/config.jsonc>]`
* Use: `--gen-config-full` to generate a full config file with all optional options

## Customization

Expand Down
6 changes: 6 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
fastfetch (2.49.0) jammy; urgency=medium

* Update to 2.49.0

-- Carter Li <zhangsongcui@live.cn> Thu, 31 Jul 2025 14:32:59 +0800

fastfetch (2.48.0) jammy; urgency=medium

* Update to 2.48.0
Expand Down
2 changes: 1 addition & 1 deletion debian/files
Original file line number Diff line number Diff line change
@@ -1 +1 @@
fastfetch_2.48.0_source.buildinfo universe/utils optional
fastfetch_2.49.0_source.buildinfo universe/utils optional
Loading