Skip to content

Commit 0291f35

Browse files
authored
Merge pull request #520 from fastfetch-cli/dev
Release v2.0.0 (beta)
2 parents 92588e1 + 550011c commit 0291f35

File tree

866 files changed

+28476
-10611
lines changed

Some content is hidden

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

866 files changed

+28476
-10611
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 50 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,36 @@ assignees: ''
77

88
---
99

10+
<!-- We will try hard to solve the issue. However since platforms and hardwares vary greatly, it can be hard to find the root cause is. Providing following information may help us greatly. Thanks in advance -->
11+
1012
# General description of bug:
1113

14+
* What happened:
15+
* What should happen:
16+
* Did it work in an older version: <!-- if yes, which version -->
17+
* Where did you get the binary: <!-- Github Release / Github Actions / Installed with a package manager (What package manager) / Built from source yourself -->
18+
* Does this issue still occurs in [the latest dev build](https://github.com/fastfetch-cli/fastfetch/actions/)?
1219

13-
# Often helpful questions:
14-
* Does the issue occur across multiple terminal emulators? [Y/N]
15-
* Does the issue occur across multiple shells? (bash, zsh, fish, etc) [Y/N]
20+
# Often helpful information:
1621

1722
Output of `fastfetch --version`:
1823
```
1924
//paste here
2025
```
2126

22-
Output of `fastfetch --load-config devinfo`:
27+
The content of the configuration file you use (if any)
2328
```
2429
//paste here
2530
```
2631

27-
Output of `fastfetch --load-config devinfo-verbose`:
32+
Output of `env NO_CONFIG=1 fastfetch --load-config all --show-errors --stat --multithreading false --disable-linewrap false --hide-cursor false`:
2833
<!--
2934
Note that this output will contain you public IP. If it is not relevant for the issue, feel free to remove it before uploading.
35+
36+
If you get the following error: `Error: couldn't find config: [...]`, copy the files in [presets](../../presets/) to `/usr/share/fastfetch/presets/` or `~/.local/share/fastfetch/presets/`.
37+
If this isn't possible (or too much work) for you, post the output of `env NO_CONFIG=1 fastfetch --show-errors --stat --multithreading false --disable-linewrap false --hide-cursor false`.
3038
-->
39+
3140
```
3241
//paste here
3342
```
@@ -37,7 +46,39 @@ Output of `fastfetch --list-features`:
3746
//paste here
3847
```
3948

40-
<!--
41-
If you get the following error: `Error: couldn't find config: [...]`, copy the files in [presets](../../presets/) to `/usr/share/fastfetch/presets/` or `~/.local/share/fastfetch/presets/`.
42-
If this isn't possible (or too much work) for you, post the output of `fastfetch --show-errors --multithreading false --disable-linewrap false`.
43-
-->
49+
## If fastfatch crashed
50+
51+
Paste the stacktrace here. You may get it with:
52+
53+
```
54+
$ gdb /path/to/fastfetch
55+
$ run
56+
$ bt
57+
```
58+
59+
If you are able to identify which module crashed, the strace can be helpful too
60+
61+
```
62+
$ strace /path/to/fastfetch --multithreading false --structure {MODULE} --pipe
63+
```
64+
65+
If you cannot do the instructions above, please upload the core dump file:
66+
67+
## If my image logo didn't show / work
68+
69+
<!-- Please make sure the terminal does support the image protocol you used. Note Gnome terminal doesn't support any image protocols -->
70+
71+
* The image protocol you used:
72+
* The terminal you used:
73+
* Upload the image file here, or paste the image URL:
74+
* Does it work with `--logo-width {WIDTH} --logo-height {HEIGHT}`?
75+
76+
## If fastfetch behaves incorrectly on shell starting
77+
78+
<!-- NOTE for zsh / p10k users:
79+
There are known incompatibility between fastfetch and p10k instant prompt.
80+
The p10k doc clearly states that you should NOT print anything to stdout after p10k-instant-prompt is initialized.
81+
You should either put `fastfetch` before initialization of p10k-instant-prompt (recommended), remove it or use `fastfetch --pipe false` -->
82+
83+
* The bug is reproduceable with fresh / clean shell configuration (i.e. `fastfetch` is the single line of `.zshrc` or `~/.config/fish/config.fish`):
84+
* Does `sleep 1` before running `fastfetch` work?

.github/workflows/ci.yml

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,19 @@ jobs:
1313
fail-fast: false
1414
matrix:
1515
os: [ubuntu-22.04, ubuntu-20.04]
16-
compiler: [gcc, clang]
16+
compiler: [gcc, clang, "musl-gcc"]
1717
enableFeatures: [ON, OFF]
18+
exclude:
19+
# The feature libraries are all build against glibc, so they can't be used with musl
20+
- compiler: "musl-gcc"
21+
enableFeatures: ON
1822
runs-on: ${{ matrix.os }}
1923
steps:
2024
- name: checkout repository
2125
uses: actions/checkout@v3
2226

2327
- name: install required packages
24-
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 libcjson-dev
28+
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
2529

2630
- name: configure project
2731
env:
@@ -35,7 +39,7 @@ jobs:
3539
run: ctest
3640

3741
- name: run fastfetch
38-
run: ./fastfetch --disable-linewrap false --hide-cursor false --show-errors true --load-config presets/all
42+
run: ./fastfetch --disable-linewrap false --hide-cursor false --show-errors --no-buffer --load-config presets/all
3943

4044
- name: run flashfetch
4145
run: ./flashfetch
@@ -53,7 +57,7 @@ jobs:
5357
uses: actions/checkout@v3
5458

5559
- name: install required packages
56-
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 libcjson-dev
60+
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
5761

5862
- name: Initialize CodeQL
5963
uses: github/codeql-action/init@v2
@@ -73,7 +77,7 @@ jobs:
7377
run: ./fastfetch --list-features
7478

7579
- name: run fastfetch
76-
run: time ./fastfetch --disable-linewrap false --hide-cursor false --show-errors true --load-config presets/all
80+
run: time ./fastfetch --disable-linewrap false --hide-cursor false --show-errors --no-buffer --load-config presets/all
7781

7882
- name: run flashfetch
7983
run: time ./flashfetch
@@ -110,7 +114,7 @@ jobs:
110114
languages: c
111115

112116
- name: configure project
113-
run: cmake -DSET_TWEAK=Off -DBUILD_TESTS=On .
117+
run: cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DCMAKE_OSX_ARCHITECTURES='arm64;x86_64' .
114118

115119
- name: build project
116120
run: cmake --build . --target package
@@ -122,7 +126,7 @@ jobs:
122126
run: ./fastfetch --list-features
123127

124128
- name: run fastfetch
125-
run: time ./fastfetch --disable-linewrap false --hide-cursor false --show-errors true --load-config presets/all
129+
run: time ./fastfetch --disable-linewrap false --hide-cursor false --show-errors --no-buffer --load-config presets/all
126130

127131
- name: run flashfetch
128132
run: time ./flashfetch
@@ -155,7 +159,7 @@ jobs:
155159
cmake -DSET_TWEAK=Off -DBUILD_TESTS=On .
156160
cmake --build . --target package
157161
./fastfetch --list-features
158-
time ./fastfetch --disable-linewrap false --hide-cursor false --show-errors true --load-config presets/all
162+
time ./fastfetch --disable-linewrap false --hide-cursor false --show-errors --no-buffer --load-config presets/all
159163
time ./flashfetch
160164
ctest
161165
@@ -183,7 +187,7 @@ jobs:
183187
with:
184188
msystem: CLANG64
185189
update: true
186-
install: git zip mingw-w64-clang-x86_64-cmake mingw-w64-clang-x86_64-clang mingw-w64-clang-x86_64-vulkan-loader mingw-w64-clang-x86_64-opencl-icd mingw-w64-clang-x86_64-cjson
190+
install: git zip mingw-w64-clang-x86_64-cmake mingw-w64-clang-x86_64-clang mingw-w64-clang-x86_64-vulkan-loader mingw-w64-clang-x86_64-opencl-icd
187191

188192
- name: print msys version
189193
run: uname -a
@@ -203,13 +207,13 @@ jobs:
203207
uses: github/codeql-action/analyze@v2
204208

205209
- name: copy necessary dlls
206-
run: cp /clang64/bin/{libcjson,OpenCL,vulkan-1}.dll .
210+
run: cp /clang64/bin/{OpenCL,vulkan-1}.dll .
207211

208212
- name: list features
209213
run: ./fastfetch --list-features
210214

211215
- name: run fastfetch
212-
run: time ./fastfetch --disable-linewrap false --hide-cursor false --show-errors true --load-config presets/all
216+
run: time ./fastfetch --disable-linewrap false --hide-cursor false --show-errors --no-buffer --load-config presets/all
213217

214218
- name: run flashfetch
215219
run: time ./flashfetch
@@ -244,7 +248,7 @@ jobs:
244248
with:
245249
msystem: CLANG32
246250
update: true
247-
install: git zip mingw-w64-clang-i686-cmake mingw-w64-clang-i686-clang mingw-w64-clang-i686-vulkan-loader mingw-w64-clang-i686-opencl-icd mingw-w64-clang-i686-cjson
251+
install: git zip mingw-w64-clang-i686-cmake mingw-w64-clang-i686-clang mingw-w64-clang-i686-vulkan-loader mingw-w64-clang-i686-opencl-icd
248252

249253
- name: print msys version
250254
run: uname -a
@@ -264,10 +268,10 @@ jobs:
264268
uses: github/codeql-action/analyze@v2
265269

266270
- name: copy necessary dlls
267-
run: cp /clang32/bin/{libcjson,OpenCL,vulkan-1}.dll .
271+
run: cp /clang32/bin/{OpenCL,vulkan-1}.dll .
268272

269273
- name: run fastfetch
270-
run: time ./fastfetch --disable-linewrap false --hide-cursor false --show-errors true --load-config presets/all
274+
run: time ./fastfetch --disable-linewrap false --hide-cursor false --show-errors --no-buffer --load-config presets/all
271275

272276
- name: run flashfetch
273277
run: time ./flashfetch

CHANGELOG.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,63 @@
1+
# 2.0.0 (beta)
2+
3+
Fastfetch v2 introduces a new configuration file format: JSON config. Please refer to <https://github.com/fastfetch-cli/fastfetch/wiki/Configuration> for details.
4+
5+
Changes:
6+
* Drop the dependency of cJSON. We now use [yyjson](https://ibireme.github.io/yyjson/doc/doxygen/html/index.html) to parse JSON documents.
7+
* Remove `--shell-version` and `--terminal-version`. They are always enabled (Terminal / Shell)
8+
* Remove `--*-error-format`, which seems to be useless
9+
* Remove `--display-detect-name`. Display name is always detected, and will be printed if multiple displays are detected
10+
* Deprecate `--set` and `--set-keyless`; they may be removed in future releases. Use JSON config with Custom module instead
11+
* Remove the special handling of Command module (it can be set once in the triditional `config.conf`). Use JSON config with Command module instead
12+
* Change `--wm-theme-*` to `--wmtheme-*`. Affect `key` and `format` (WMTheme)
13+
* Change `--terminal-font-*` to `--terminalfont-*`. Affect `key` and `format` (TerminalFont)
14+
* Module `Command` uses `/bin/sh` as the default shell on systems other than Windows (Command)
15+
* Fix M2 CPU temperature detection (CPU, macOS)
16+
* Detect monitor name when available, instead of using DRM connector name (Display / Brightness, Linux)
17+
18+
Features:
19+
* FreeBSD support is improved greatly, and actually tested in a physical machine
20+
* Add `--no-buffer` option for easier debugging. CMake option `ENABLE_BUFFER` is removed and always enabled.
21+
* Support `--*-key-color` option to change the key color of specified module
22+
* Support `--colors-symbol` and `--colors-padding-left` (Colors)
23+
* Add LM (Login Manager) module. Currently requires systemd installed (thus Linux only)
24+
* Add `--wmi-timeout` option (Windows)
25+
* Add `--logo-type small` to search for small logos
26+
* Support detecting brightness of external displays with DDC/CI (guard behind `--allow-slow-operations`) (Brightness)
27+
* Add option `--size-ndigits` and `--size-max-prefix` (#494)
28+
* Add option `--processing-timeout` to the timeout when waiting for child processes.
29+
* Public IP module prints the IP location if `--publicip-url` is not set (PublicIP)
30+
* Add option `--localip-default-route-only` (LocalIP)
31+
* Add option `--weather-location` (Weather)
32+
* Support iTerm non-ascii font detection (Terminal, macOS)
33+
* Add option `--title-color-user`, `--title-color-at` and `--title-color-host` (Title)
34+
* Add Exherbo logo and package manager count (Packages, Linux, #503)
35+
* Add module `Terminal Size` which prints the number of terminal width and height in charactors and pixels
36+
* Add new option `--temperature-unit`
37+
* Better CPU and Host detection for Android (Android)
38+
* Support yakuake terminal version & font detection (Terminal, Linux)
39+
* Add new option `--bright-color` which can be used to disable the default bright color of keys, title and ASCII logo.
40+
* Add module `Monitor` which prints physical parameters (native resolutions and demensions) of connected monitors
41+
* Support path with environment variables for `--logo-source` and `--load-config`.
42+
43+
Bugfixes:
44+
* Fix possible hanging (TerminalFont, #493)
45+
* Fix heap-buffer-overflow reading (DisplayServer, Linux)
46+
* Fix false errors when built without libnm support (Wifi, Linux)
47+
* Properly detect CPU on POWER (CPU, Linux)
48+
* Fix compatibility with Fig (Terminal, macOS)
49+
* Fix option `--title-fqdn` doesn't work (Title)
50+
* Fix used spaces calculation (Disk, Linux / BSD / macOS, #508)
51+
* Fix `--brightness-format` (Brightness)
52+
* Fix specifying `--set-keyless` with the same key second time won't override the value set before (#517)
53+
* Fix specifying `--color` second time won't clear the value set before (#517)
54+
55+
Logo:
56+
* Change the special handling of `kitty` protocol with `.png` image file to a new image protocol `kitty-direct`. This is the fastest image protocol because fastfetch doesn't need to pre-encode the image to base64 or something and the image content doesn't need to be transmitted via tty. Note:
57+
1. Although konsole was said to support `kitty` image protocol, it doesn't support `kitty-direct`
58+
2. wezterm support more image formats other than `.png` (tested with `.jpg` and `.webp`)
59+
* Port all logos supported by neo(wo)fetch. Fastfetch now has 350 builtin logos in total.
60+
161
# 1.12.2
262

363
Features:

0 commit comments

Comments
 (0)