Releases: Toni500github/customfetch
customfetch v2.0.0-beta1 - Plugin-based Module Loader
Caution
This is a beta version.
if you have problems on your machine, or want to use the native android app, then use release v1.0.0 (Linux and Android only)
Well, as of right now 7 months and 246 new commits from v1.0.0 to v2.0.0-beta1.
It surely has took many days and months to release this. From having breakdowns and absent willing to work on customfetch, I still wanted to look forward for the future of customfetch because it was my first ever project that took so much work for bringing it to life.
What's in this beta release?
This beta is all about two things: getting started on macOS support and an excitingly experimental plugin support.
Adding full macOS support is a big job that's still in progress. Instead of waiting for that to be completely finished, I wanted to release this version now so you can test the main new plugin-based module loader.
This new system lets you create or add external plugins to display almost any info you can think of, like live weather, GitHub stats, or anything else, right alongside your system information. It's a level of customization that really sets custom fetch apart.
So, jump in, try making a plugin, and see what you can add to your fetch!
What's Changed
✨ Major Features & Enhancements
- Plugin-based Modules Loader: Introduced a new plugin-based system for loading external info modules. (by @Toni500github in #4)
- Platform Support: Added macOS support (some modules are still a Work in Progress).
- Android Refactor: Major refactoring of the Android widget, moving C++ code to pure Kotlin.
- GUI Improvements:
- Added support for light colors.
- Added GTK CSS support for theming.
- Added the application icon/logo to the GUI.
- New Arguments:
- Added
--debug
flag for debugging. - Added
--disallow-command-tag
flag for security. - Improved
--help
and--how-it-works
documentation.
- Added
- Project Structure: The Android app has been moved to its own dedicated repository.
⚙️ Configuration & CLI
- Config: Deprecated
"removable"
in favor of"external"
inauto.disk.display-types
. - Config: Fixed configuration overwrite from command-line arguments.
- Args: The
--loop-ms
command now exits with the 'q' key and has a default increased from 50ms to 200ms. - Args: Migrated from system getopt to the
getopt_port
library.
🐛 Bug Fixes
- GUI: Fixed a crash related to empty strings and checking for
$
at the start. - GUI: Improved escaping of
&
characters. - Query: Fixed system uptime calculation on Android.
- Display: Prevented opening the same source-path twice.
- Assets: Fixed several ASCII art files that had incorrect single backslash escapes.
- Misc: Fixed a crash related to very large
all_ids
strings inpci.ids.hpp
.
🔧 Build System & Project
- Build: Added an install and uninstall target and fixed the CMake build.
- Build: Forced linking with static libraries such as with
{fmt}
. - Workflows: Added a CMake GitHub workflow.
- Licensing: Added the FastFetch license and updated the copyright year.
- Logos: Added official project logos and icons.
- Versioning: Adopted a
--version
system inspired by Hyprland.
📦 Dependencies & Codebase
- Misc: Replaced custom command execution functions with the cross-platform
tiny-process-library
. - Misc: Removed the
VENDOR_TEST
andDEVICE_TEST
flags. - Misc: Now uses a compile-time
GUI_APP
definition instead of a runtimeconfig.gui
setting.
🛠️ Workarounds & Misc.
- Misc: Creates a temporary Linux/macOS ASCII art as a fallback when unable to get the distro path.
- Misc: Various other minor fixes and improvements.
- Tests: Added new tests (adapted from TabAUR).
⚠️ Experimental & Unstable
- Config: Added support for
%
in offset values (marked as super unstable and might be removed).
Click to expand for detailed commit list
What's Changed
- Plugin-based Modules Loader by @Toni500github in #4
- c73c036 project: add macos support (some things WIP)
- 87802fe misc: create a temponary file when unable to get distro path
- f0fb491 misc: add fastfetch license + update copyright license year
- cc2b4aa misc: steal version system from Hyprland (I kinda contributed to that tho)
- 483be29 config: make offset accept % (super unstable might remove it)
- fef7fac cda59d2 (and more) android widget: trying to refactor c++ code to pure kotlin
- df9cf5c gui: add light colors in pango
- df9cf5c gui: fix crash with empty string and checking for $ at the start, also try to escape more &
- df9cf5c config: deprecate "removable" in favor of "external" in auto.disk.display-types
- b73e4bb config: fix overwrite from arguments
- f2ec92d query: system: fix uptime on android
- 407ac75 args: add --debug
- 3e905ae misc: use compile-time
GUI_APP
instead of runtime config.gui - fbfb610 174abee android app: move it to https://github.com/Toni500github/customfetch-android-app
- 0b19507 project: add official logos/icons
- d230340 tests: add these (stolen from TabAUR)
- 6d27025 workflow: add cmake.yml + cmake: fix build and add install target
- 254f42f build: add icon prefix + improve uninstall targets
- 65ef7ba gui: add icon logo
- 7f4464c aeed450 args: add --disallow-command-tag
- 89950f0 doc: refactor --help and --how-it-works
- e4bd61d display: don't open the same source-path twice
- 261e467 assets: fix some ascii art that have single backslash escape
- e43a38b gui: add gtk css support
- b19b52f 65e9e0d workaround: a conflict between the Radeon RX 5500 XT and the (Oland PRO?) Radeon R7 340
- 5cf6c68 args: exit --loop-ms with 'q' and increase from 50 to 200 ms
- 51742e7 makefile: force link with fmt static library
- 7827407 misc: remove
VENDOR_TEST
andDEVICE_TEST
- f6a56cf docs: fix some -h incorrections
- 907d567 44361a1 misc: fix some things
- 1600cf1 misc: ditch selfmade command execute functions in favour of cross-platform tiny-proccess-library
- 59c57c0 args: migrate GNU getopt to
getopt_port
- 0104997 misc: fix crash with really big
all_ids
string in pci.ids.hpp
Full Changelog: v1.0.0...v2.0.0-beta1
customfetch v1.0.0 - Android support and widget app
Warning
If you are looking for the new Plugin-based module loader release, checkout release v2.0.0-beta1
4 months and 143 commits since v0.10.2 released, damn this project fell down from its prime where there would be a big release every month...
Ahahah, jokes apart, I didn't actually left behind customfetch at all, instead what I was doing in these 4 months was to create an unique feature that you have never saw before: a neofetch-like program in an android widget app.
You may have saw fast/neofetch running in termux, but
This is the first android application I have ever developed and indeed it took 4 months because of it, but to be honest I'm starting to like developing applications for android. Some may criticize, but the application was created with android views instead of composable, because that's the first thing I have learnt and I got the hand of it and I actually enjoy writting XML (sometimes) 🙃
Also an important change is separating the GUI mode, -g or --gui, into its own binary GUI app called custmofetch-gui
.
This is because if you had compiled in the past customfetch with GUI_MODE
, the execution in the terminal would be much slower and the linker won't let you do it if you didn't have gtk3 installed.
After this release, i'll take some days of breaks for relaxing a bit.
Thank you so much for the patience and support <3
Changes
Breaking
- add android support 92d95eb (and more commits)
- add native android widget application #1 (and more commits)
- rename Unix reference such as CF_UNIX and
src/query/unix
to Linux 5b8f9de - separate the GUI mode into it's own binary
customfetch-gui
3be3710
Features
- parse: support module-only variants in info tags (e.g,
$<ram>
instead of$<ram.ram>
) e4ce245 - parse: add extended module member names (e.g.,
$<title_separator>
) 1f87a09 - query: cpu: add
$<cpu.temp>
and variants. 8c30dc3 97c466d - query: battery: add new battery info module e5efb1c e267365
- query: theme: fix theme queries because of code static members d43dd9d
- query: auto: add new
$<auto.disk>
module name 537f3de - build: add cmake as the new build system 848e18d
- build: add
usr-dist
target in the makefile 808dad1 - args: change some argument names and add boolean support (e.g., true) e33490a
- args: add
--loop-ms
and--list-logos
(thanks @Quartzitechunk for the idea) options 47d0006 d2c0b65 - args: add
--override
for configuration 62754c7 - misc: add translations support 553848b
- makefile: install configuration examples 4e001c2
- debian: add and reformat actual changelog 1b7b1a3 f2273d0
Fixes
- doc: fix wrap-lines behavior 353fd00
- misc: re-enable cursor if program dies (when wrap-lines is disabled) 4bc402c
- query (misc): use systemInfo_t for multiple disk, gpu, theme queries 80e92c5
- misc: fix typos and --list-modules 0115673
Changes
- doc: move the config explaination to
--how-it-works
3f74f07 - parse: deprecate the
builtin
module name e4ce245
Updates
- libs: update
pci.ids.hpp
8202a9d - libs: fmt: remove
printf.h
andxchar.h
(unused) f0dde0c - libs: update {fmt} and toml++ 2ff0a75
Full Changelog: v0.10.2...v1.0.0
customfetch v0.10.2
This release doesn't bring (almost) anything new/fixed but I have decided to rename the binaries and references from cufetch
-> customfetch
because I don't want people to get confused about the binary name. cufetch
now will be only a symlink instead.
Please refer to version v0.10.0 for all the new features and fixes
Breaking
- project: rename
cufetch
->customfetch
19313a4
Feature
- parse: add
os.name_id
a3c7cd6
Fixes
- main: fix
ascii-logo-type
a3c7cd6 - assets: fix debian_small.txt c516c2a
- makefile: fix
make dist GUI_MODE=1
Changes
- assets: move the
config-examples
andscreenshots
in root directory 85c739f - misc: update
screenshots/cbonsai.png
and configs 140daf3
Full Changelog: v0.10.1...v0.10.2
customfetch v0.10.1
bugfix release but with a crucial bug fix that has been here since the start: utf8 (unicode) logos aligning calculations!!!!!1
Highlights
- display: fully fix alignment with all unicode logos 20bb39a
- parse: fix regression about
$()
and other tags a55edc6
Others/Misc
Changes
- parse: make GUI only hexcolor options accept the hashtag
#
d5e3526
why? well if you are using neovim or other IDEs and have preview hex color builtin, then you can directly do it as if you are doing normally
before:
after:
Updates:
Full Changelog: v0.10.0...v0.10.1
customfetch v0.10.0
It's been almost a month and half since v0.9.3.
107 commits with soooo many new features and improvements. This is the nicest feature release by far.
I hope yall will enjoy using customfetch as a new way of customizing your system infos.
Breaking
- assets: fix ALL current ascii arts (173f355 538a7a6)
- parse: add recursive tags support (318bf8a b43f160)
- display: add no-line wrapping c79316f
- display: add image as logo in terminal (e873f7b 9de6850 4a7ffe7)
Features
- query: theme: add
USE_DCONF
(c17a248 e57dfb1 e57dfb1 bfb2dd1) - parse (args): add
--no-color
and--layout-line
9ad21de - query: theme: add
theme-gsettings
895ff98 - query: theme: add
theme.cursor
69625a1 - parse: add SI and IEC byte units f77e8be
- query: user: add
user.wm_version
fa3e271 - config: add
percentage-color
5418c8b - gui: make
bg-image
accept gifs too 25f06d1 - config: add
--color
as a config setting (alias-colors
) a120a87 - parse: add more color option modes (f874e37 eb6fdb4)
- parse (gui): add
\e[38
and\e[48
ANSI code color converter (only in rgb way) d9ee1fb - query: user: fast detect konsole version d287eeb
- query: theme: add support for
gtkrc-v.0-kde
andgtkrc-v.0-kde4
(thanks @BurntRanch) 0f9f888 - display: parse the distro ASCII art colors when using
--source-path
and specify--distro
5153646 - config: add
NO_COLOR
eviroment variable support f3d0359 - util: add
get_data_path()
for looking the data dirs instead of hardcode/usr/share
dc61c31 - config and args: add
logo-position
d171c33
Fixes
- query: user: fix/improve terminal version detection b3a8238
- query: user: some little changes and fixes to terminal query 50e0989
- query: user: workaround for terminals on NixOS that doesn't have "wrapped" at the end 31a7c6d
- parse (gui): fix color parsing by closing the
<span>
tag before a new one 6857ba5 - parse: fix aligning if failed to parse color 693822a
- gui: fix resizing of window when
bg-image
or logo is image 4a76a46
Changes
- rename info modules names
user.term
andtheme.cursor
touser.terminal
andtheme.cursor_name
1673321 theme.cursor
will auto displaytheme.cursor_size
if not(unknow)
69625a1- query: convert
float
values todouble
dbc93b4 - misc: update
LICENSE
to BSD-3 Clause af69d2b - query: gpu: separate vendor from name + add vendor_long b2f2887
- parse: refactor the parser (thanks again @lapinozz) b43f160
Updates
Full Changelog: v0.9.3...v0.10.0
customfetch v0.9.3
This is just a bugfix release for GUI and ASCII arts
Fixes
- parse (ascii art): fully fix alignment and GUI mode with escaping in some ascii arts f928a24
- parse: fix ASCII arts that has commands such as
cbonsai
9c636cc - assets: fix most ascii arts 72c749c
Improvement
- make customfetch compilable in C++17 4363eb8
Full Changelog: v0.9.2...v0.9.3
customfetch v0.9.2
This release is really good ngl, added many changes, features and improvements.
I just wanted to release it before starting school and because idk what to add for now.
Changed the "vocabulary" and made it stable
- renamed components -> tags (
$<>
$()
etc.) - renamed submodule -> module members (
$<module.member>
)
Highlights
- changed "vocabulary" and improved documentation 8259f7c f6040b7 43e9335 9bdf67e
- add conditional tag
$[]
36de78b - add percentage tag
$%%
784acc6 24de72a
Features
- add sep-reset-after 05f45e1 59cb489
- add mountdir and device members in
disk
module cecb8e5 - add
builtin
module eb0909a - add
_perc
modules members fordisk
,ram
andswap
784acc6 ac592d7 - gui: parse distro ascii art for getting auto colors instead of using always white e38d5ca
- query lsb-release as backup in
os
module members b76baf6 - detect st version from binary be28ba4
Fixes
- fix path with
ascii-logo-type
71b65e5
Improvement
- libs: update {fmt} 92babc4
- makefile: don't add optimization flag if already set 865c734
- Improved documentation and grammar
Changes
- separate
ram.swap
members modules to it's own moduleswap
784acc6 - rename sep_title to title_sep eb0909a
Full Changelog: v0.9.0...v0.9.2
customfetch v0.9.0
Wanted to make this release for some fixes that I think are quite importants (no security risks)
Highlights
- 41f859f fix the regression (bug) of the
${0}
and${1}
components from previous release for the layout too - 3091d0a fully fix aligning ascii art and layout
- 846809e fix bug for gui mode where span tags would be replaced with
<span>
Features
- 2c96c90 add multiple color options in hexcodes colors
- 5cbeeae install cufetch.desktop (only if compiled with
GUI_MODE=1
) - 35bebfc add
--sep-reset
and--sep-title
- 412e587 add
$<user.sep_title>
- fb159ea add
uninstall
to Makefile
Fixes
- 5cbeeae fix prettify_wm_name()
Full Changelog: v0.8.8...v0.9.0
customfetch v0.8.8
(I had to re-release v0.8.8 for commit a016458 to fix those functions)
I wanted to release this version to fix bug in GUI mode for some logos like debian and because i'll be away for 3 days.
In this version I fixed some bugs in the GUI mode and now the packages will be compiled with Ubuntu 20.04, so you won't get the error about GLIBC versions older than 2.34.
Highlight
- 124081c fix regression (bug) when the source logo has
${1}
or${0}
at start in GUI mode
Features
- 3016062 add
$<os.initsys_version>
- (17d190a 4de3742) add
logo-padding-left
- (aa7ab83 f488e9d) add
ascii-logo-type
- abc8f93 add
layout-padding-top
- d104819 add pkg managers specific paths
- 56ee3ba prettify DE name
- f4649cb add -KiB variants for RAM and Disk
Improvements
- 43d8a0c improve
$<user.wm_name>
query
Full Changelog: v0.8.6...v0.8.8
customfetch v0.8.6
This is the 1st alpha release of customfetch. I hope you like :D
Please report any bugs that happens, it's still in WIP, but pretty stable