Moves module option structs out of global config and removes dynamic allocation, using static buffers and size assertions for safer, simpler management.
Refactors module initialization and destruction to work with isolated option structs, eliminating the need for the previous modules container and related code.
Unifies module option header usage and updates detection logic to leverage statically-sized option buffers, improving encapsulation and maintainability.
Simplifies module function signatures and reduces coupling between modules and config.
Enhances future extensibility and reliability by enforcing max size constraints and removing unnecessary indirections.
On NixOS, Hyfetch has been placed in a "wrapper script" in order to set the correct PATH that it needs to run correctly.
As a result, the actual Hyfetch executable has been renamed `.hyfetch-wrapped`, which results in this check failing to detect Hyfetch on NixOS properly.
With this patch the logic has been changed to check if the program name contains the string `hyfetch`, which should work for the NixOS case.
* Add support for old MacOS version, fix-1.
* Add support for old MacOS version, fix-2.
* Add support for old MacOS version with fixing metal gpu api.
* Update disk_bsd.c
* Update disk_bsd.c
* Update gpu_apple.m
* Update monitor_apple.m
* Update os_apple.m
* Update wifi_apple.m
* Update camera_apple.m
* Update camera_apple.m
---------
Co-authored-by: Carter Li <CarterLi@users.noreply.github.com>
Ignore <shell> (<char>term).
This is because Fig(<shell> (figterm)) migrated to CodeWhisperer(<shell> (cwterm)) and CodeWhisperer renamed to Q(<shell> (qterm)).
Future changes will all be ignored by this change.
Related: #676