Skip to content

customfetch v2.0.0-beta1 - Plugin-based Module Loader

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 08 Sep 14:13
· 5 commits to main since this release
v2.0.0-beta1
f087d81

For Summer of making

if you have problems installing on your machine, then use release v1.0.0 (Linux and Android only) or compile and install from source (recommended)

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.
  • Project Structure: The Android app has been moved to its own dedicated repository.

⚙️ Configuration & CLI

  • Config: Deprecated "removable" in favor of "external" in auto.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 in pci.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 and DEVICE_TEST flags.
  • Misc: Now uses a compile-time GUI_APP definition instead of a runtime config.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 and DEVICE_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