mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-10-27 23:30:47 +01:00
Global: fixes a lot bugs found by AI
This commit is contained in:
@@ -6,8 +6,10 @@ Changes:
|
||||
* ImageMagick 6 support is deprecated. It is kept only for old Debian and Ubuntu releases that don't have ImageMagick 7 available, and is intended to be removed in a future release. Users are encouraged to upgrade to ImageMagick 7 when possible.
|
||||
* The `--logo-recache` option has been replaced by `--logo-cache <bool|regen>`, and the `logo.recache` JSON property has been renamed to `logo.cache`. (Logo)
|
||||
* `--logo-cache true` (the default) reuses a cached rendering when it is valid, and writes it back on a cache miss; `false` ignores the image logo cache completely, reading nothing from it and writing nothing to it; `regen` does what `--logo-recache true` used to do. `logo.cache` accepts a boolean, or the string `"regen"`.
|
||||
* Load average detection on GNU/Hurd now uses `getloadavg()` instead of reading `/proc/loadavg`, sharing the Solaris implementation. (Loadavg, GNU/Hurd)
|
||||
|
||||
Features:
|
||||
* Added Bluetooth Core 6.0, 6.1, 6.2 and 6.3 to the `BluetoothRadio` version table, so an adapter reporting LMP version 14, 15, 16 or 17 now prints its version instead of the vendor name alone. (BluetoothRadio)
|
||||
* Added rum overlay package counting on RakuOS, exposed as `{rum}`. (Packages, Linux)
|
||||
* Improved image logo support
|
||||
* Backend rewritten
|
||||
@@ -91,6 +93,65 @@ Bugfixes:
|
||||
* Increased the terminal response wait time to 1s to improve compatibility with slower terminals. (General)
|
||||
* Fixed the `PublicIp` and `Weather` modules exiting with "can only be used once due to internal limitations" on the round after a failed request when `--dynamic-interval` is used, instead of retrying. (PublicIp / Weather)
|
||||
* Fixed the `Display`, `Monitor`, `WM`, `DE`, `Media`, `Player`, `Shell` and `Terminal` modules replaying the first round's result when `--dynamic-interval` is used. The detection results that are cached for the whole run are now dropped between rounds, so these modules detect again on every round. (Display / Monitor / WM / DE / Media / Player / Shell / Terminal)
|
||||
* Fixed the `Command` module printing the internal marker `[BUG] command queue is empty` when it is selected with `--structure`; it now reports that module options are unsupported and exits with an error. (Command)
|
||||
* Fixed `condition.succeeded` being evaluated differently in the prepare and the print pass, which could make a module print another module's output. (General)
|
||||
* Fixed negative values for numeric options wrapping around to huge unsigned ones, which made `separator.times` write four billion characters and `waitTime` sleep for about 50 days. (Separator / CpuUsage / NetIO / DiskIO / LoadAvg)
|
||||
* Fixed the module index wrapping around at 256 in the `command.splitLines` output. (Command)
|
||||
* Fixed carriage returns not being stripped from the `command.splitLines` output on Windows. (Command, Windows)
|
||||
* Fixed the `logo` module's JSON `type` never containing `"normal"`. (Logo)
|
||||
* Fixed the JSON schema describing `custom.key` as the opposite of what the module does. (Custom)
|
||||
* Fixed the JSON schema rejecting the `custom` and `logo` module types, the `GNU` and `Unknown` systems and the `sh` and `Unknown` architectures. (General)
|
||||
* Fixed the JSON schema giving `command` a description different from the module registry. (Command)
|
||||
* Added a JSON result to the `custom` module. (Custom)
|
||||
* Fixed the `gpu` and `top` modules both declaring default order 36. (General)
|
||||
* Removed the `kernel` format variable `{display-version}`, which was declared but never passed. (Kernel)
|
||||
* Fixed `editor` detection treating a failure as a success and printing an empty or half-filled line without an error. (Editor)
|
||||
* Fixed the `display` module's `order` option being ignored by `--format json`. (Display)
|
||||
* Fixed compact mode printing `120Hz` where the normal mode prints `120 Hz`. (Display)
|
||||
* Fixed the `display` module sorting the process-wide display server result in place, which reordered it for every other consumer. (Display)
|
||||
* Removed 14 `*_nosupport.c` files that no platform block referenced. (General)
|
||||
* Fixed the `media` module leaking a downloaded cover file on every run. (Media)
|
||||
* Fixed the JSON schema for `packages.disabled` rejecting 8 names the parser accepts, and dropping the build-time default. (Packages)
|
||||
* Fixed the JSON schema declaring `percent` for the `cpucache`, `cursor`, `datetime`, `editor` and `font` modules, which the parser rejects, and added the missing declaration for `wifi`. (General)
|
||||
* Fixed the `custom` module's JSON `error` field being a dangling pointer when a script failed. (Custom)
|
||||
* Fixed the `vulkan` module writing `deviceId` twice into every GPU object of its JSON result. (Vulkan)
|
||||
* Fixed the `opencl` and `vulkan` modules writing `memory.*.used` from the total. (OpenCL / Vulkan)
|
||||
* Fixed the `gpu` module's `hideType` filter being applied to the console output but not to `--format json`. (GPU)
|
||||
* Fixed the `gpu` module's OpenGL fallback reporting all four memory fields as `0` instead of "unset", which made a format string print `0 B` and the percentage print `nan%`. (GPU)
|
||||
* Fixed the `de` module not reporting a version for GNOME Classic. (DE, Linux)
|
||||
* Fixed the `de` module's Trinity version detection never matching, as the display server reports `Trinity` or `TDE` rather than the lowercase `trinity` the dispatch compared against. (DE, Linux)
|
||||
* Fixed the JSON schema pointing `keyColor` and `keyWidth` at non-existent `display.color.key` and `display.keyWidth` paths. (General)
|
||||
* Fixed the JSON schema rejecting an empty module `key`, which the parser accepts and treats as "use the default name". (General)
|
||||
* Fixed the JSON schema for `separator.times` having no upper bound, so values the runtime rejects passed validation. (Separator)
|
||||
* Fixed the JSON schema declaring `showPeCoreCount` as defaulting to `false` when the runtime defaults it to `true`. (CPU)
|
||||
* Fixed the JSON schema for `cpucache` not declaring the `compact` option, which made a valid configuration fail validation. (CPUCache)
|
||||
* Fixed the JSON schema for `cpu` omitting the x86-only `{code-name}` and `{technology}` format variables. (CPU)
|
||||
* Added the missing `{threads}` format variable to the `processes` module, which its default output already printed. (Processes)
|
||||
* Added the missing `{kernel-release}` format variable to the `os` module. (OS)
|
||||
* Fixed the `poweradapter` module documenting `{model}` while passing the value as `{model-name}`, so the documented variable was never substituted. (PowerAdapter)
|
||||
* Fixed the JSON schema for `processes` omitting `{threads}`. (Processes)
|
||||
* Fixed the `datetime` module's `{day-in-year}` variable wrapping around at day 256 and printing a wrong value for the rest of the year. (DateTime)
|
||||
* Fixed the `datetime` module's `{hour-12}` variable being `0`-`11` while `{hour-12-pretty}` is `01`-`12`, so the two disagreed at midnight and noon. (DateTime)
|
||||
* Fixed the `colors` module using out-of-range `paddingLeft` and `block.width` values instead of reporting them: `paddingLeft: -1` made the run write four billion spaces without ever finishing, and `block.width` was truncated to a byte (`256` printed nothing, `300` printed 44 cells). (Colors)
|
||||
* Fixed the `vulkan` module's JSON result missing `instanceVersion`, which the detection layer already provides. (Vulkan)
|
||||
* Fixed the `vulkan` module reporting every device that is not discrete as `Integrated`, so virtual and `OTHER` devices are no longer indistinguishable from a real integrated GPU. (Vulkan)
|
||||
* Fixed the `camera` and `wifi` modules printing "Not support on this platform" instead of "Not supported on this platform" on platforms that have no implementation. (Camera / Wifi)
|
||||
* Fixed the `colors` module reading a `block.range` element that is not an integer as `0`, so `[1.5, 3]` and `["x", 3]` printed the colours of `[0, 3]` without reporting anything. (Colors)
|
||||
* Fixed the `bluetooth` module numbering a machine's only adapter (`Bluetooth 1`) instead of using the bare module name, which every other multi-entry module gets right. (Bluetooth)
|
||||
* Fixed the `camera` module leaving `colorspace` uninitialized in its macOS backend, so a device reporting a colour space outside the known list produced a garbage string. (Camera, macOS)
|
||||
* Added the missing `battery` field to the `gamepad` module's JSON result, which the detection layer already provides and the console output already prints. (Gamepad)
|
||||
* Fixed the `gamepad` module leaking the name and the serial of every device when all of them are filtered out by `ignores`. (Gamepad)
|
||||
* Fixed the `dns` module appending an uninitialized entry on Windows when an adapter reports a DNS server whose address family is neither IPv4 nor IPv6. (DNS, Windows)
|
||||
* Added the missing `globalReservation` object (`used` / `total`) to the `btrfs` module's JSON result. The detection layer had been reading `allocation/global_rsv_size` and `allocation/global_rsv_reserved` into fields that neither the JSON nor a format variable exposed. (Btrfs)
|
||||
* Fixed the `btrfs` module storing the free part of the global reservation as its used part. (Btrfs)
|
||||
* Fixed the `keyboard` module leaking the name and the serial of every device that is filtered out by `ignores`. (Keyboard)
|
||||
* Fixed the `keyboard` module reporting "No mouse support on this platform" instead of "No keyboard support on this platform" on platforms that have no implementation. (Keyboard)
|
||||
* Fixed the `localip` module's `{is-default-route}` variable printing the internal bit field (`2`, `4`, `6`) instead of the families the interface carries the default route for (`ipv4`, `ipv6`, `ipv4,ipv6`). (LocalIp)
|
||||
* Fixed the `sound` module always reporting itself as failed, which suppressed every following module gated on `condition.succeeded`. (Sound)
|
||||
* Fixed the `top` module rejecting `sort: "threads"`, which the JSON schema documents and `--gen-config` emits. (Top)
|
||||
* Fixed the `display.temp` validation errors naming the long-removed `display.temperature` key, which the config parser rejects. (General)
|
||||
* Fixed a memory leak in the `wifi` module on Windows when the BSS list comes back empty. (Wifi, Windows)
|
||||
* Fixed `--gen-config` hanging forever when stdout is redirected to `NUL` or MSYS2's `/dev/null`. On Windows `isatty()` reports a character device rather than a console, so a redirected run was mistaken for an interactive one. (General, Windows)
|
||||
* Some internal cleanups and optimizations.
|
||||
|
||||
Logos:
|
||||
|
||||
Reference in New Issue
Block a user