Enable binary disk capacity units with:
```toml
[disk]
use_binary_prefix = true
```
Or pass `--disk_use_binary_prefix` (alias `--disk-use-binary-prefix`). The CLI flag takes precedence over a false config setting. Decimal units remain the default.
Used, Free, and Total use the existing binary conversion helper. For example, 536,870,912,000 bytes changes from `537GB` to `500GiB`. Percentages, sorting by raw byte values, I/O rates, and network units retain their existing behavior.
The change passes the option from argument/config parsing through application settings and collected disk data to cell formatting. Four regression tests cover option precedence and both CLI spellings, collection-to-cell wiring, unit boundaries, missing values, percentages, I/O behavior, and sorting.
This apparently changes the preference directory to use `RoamingAppData` rather than `LocalAppData` (https://codeberg.org/dirs/dirs-rs#7); I don't think this affects me though as I don't find any usage of it.
This adds very basic GPU support for getting process usage for Intel GPUs on Linux. Note this PR does not handle memory/VRAM usage for now. The implementation is basically a clone of the AMD GPU one.
Doing this as refactoring work before I start working on supporting Intel GPUs, which are expected to share the same collection code. This should have no functional change.
This PR makes it so that we should hopefully avoid waking up NVIDIA GPUs while gathering info (on Linux only). It mostly follows how we were doing it for AMD devices, which required a bit of refactoring to get it to work with the NVML library I was using.
Note that, as mentioned above, it does not change behaviour for Windows (or other OSes that work with NVIDIA GPUs) at the moment, as I need to use some fairly OS-specific logic to get it to work on each platform from the looks of it.
Unfortunately, I no longer have any Nvidia-based machines to test with, let alone laptops with Optimus... so this may be hard to verify whether it works on my end.
Pins curl and xz-utils versions for the netbsd pre-build script. This pins it to the most recent versions as of writing.
Note: may be worth exploring just making a custom image that has this rather than doing it each time beforehand.
I had made it so it only used stable, which was generally right but not always (e.g. I downgrade Rust version like right now).
Note this had no effect on actually building the binaries as those use cross.
Run zizmor again. Replaces action-gh-release with just `gh release` and pins the image version for almalinux. Also a driveby fix for docs regarding permissions.
This adds the ability to run with `--network_start_zeroed` or the `start_zeroed` config option, which will zero out the total network usage so that bottom starts with it at zero, rather than the total network usage reported by the OS since boot.