<h1 style="display: flex; justify-content: space-between;">
<span>
nxfetch
</span>
<span>
<a href="https://builds.sr.ht/~sntx/nxfetch?"><img src="https://builds.sr.ht/~sntx/nxfetch.svg" alt="nxfetch status"></a>
</span>
</h1>
A minimal, fast and batteries included fetcher!
> ```sh
> nxfetch
> ```
> 
## Installation
<details>
<summary>Cargo</summary>
```sh
cargo install --git https://git.sr.ht/~sntx/nxfetch --locked
```
</details>
<details>
<summary>Cargo (manual)</summary>
```sh
git clone https://git.sr.ht/~sntx/nxfetch && cd nxfetch
cargo install --path . --locked
```
</details>
<details>
<summary>Nix Shell</summary>
```sh
nix shell sourcehut:~sntx/nxfetch
```
</details>
## Usage
```txt
Usage: nxfetch [OPTIONS] [MODULES]...
Arguments:
[MODULES]... A list of module names nxfetch should display [possible values: title, user, host, os, kernel, uptime, shell, cpu, memory, colours, colours-bright, empty]
Options:
--no-module-names
Whether to hide the module names
-l, --logo <LOGO>
Path to text file with ascii art to use as the logo
--no-logo
Whether to hide the logo
--padding-before <PADDING_BEFORE>
Padding before the fetch [default: 2]
--padding-between <PADDING_BETWEEN>
Padding between the logo and the text [default: 2]
-r, --raw
Only print raw module output (same as `--no-logo --no-module-names --padding-before 0`, takes precedence over those args)
-h, --help
Print help
-V, --version
Print version
```
## Performance
nxfetch 0.2.0 has been tested with [hyperfine](https://lib.rs/crates/hyperfine).
You can test nxfetch against other popular fetchers by running:
```sh
nix run .#benchmark
```
```sh
$ nix run .#benchmark
Benchmark 1: nxfetch
Time (mean ± σ): 2.4 ms ± 0.3 ms [User: 0.5 ms, System: 1.4 ms]
Range (min … max): 1.7 ms … 3.7 ms 1256 runs
Benchmark 2: afetch
Time (mean ± σ): 6.2 ms ± 0.4 ms [User: 3.4 ms, System: 2.7 ms]
Range (min … max): 5.2 ms … 8.8 ms 380 runs
Benchmark 3: bunnyfetch
Time (mean ± σ): 5.1 ms ± 0.5 ms [User: 1.7 ms, System: 3.4 ms]
Range (min … max): 4.1 ms … 8.5 ms 493 runs
Benchmark 4: fastfetch
Time (mean ± σ): 70.3 ms ± 4.5 ms [User: 26.1 ms, System: 29.4 ms]
Range (min … max): 64.2 ms … 86.5 ms 43 runs
Benchmark 5: inxi
Time (mean ± σ): 734.7 ms ± 12.1 ms [User: 247.8 ms, System: 126.4 ms]
Range (min … max): 721.0 ms … 753.4 ms 10 runs
Benchmark 6: neofetch
Time (mean ± σ): 953.6 ms ± 18.9 ms [User: 320.3 ms, System: 244.2 ms]
Range (min … max): 917.6 ms … 976.6 ms 10 runs
Benchmark 7: pfetch
Time (mean ± σ): 196.9 ms ± 12.5 ms [User: 93.2 ms, System: 45.5 ms]
Range (min … max): 180.2 ms … 222.7 ms 15 runs
Benchmark 8: profetch
Time (mean ± σ): 4.4 ms ± 0.4 ms [User: 1.7 ms, System: 2.1 ms]
Range (min … max): 3.3 ms … 6.3 ms 613 runs
Benchmark 9: yafetch
Time (mean ± σ): 275.7 ms ± 13.9 ms [User: 104.7 ms, System: 44.8 ms]
Range (min … max): 252.9 ms … 298.7 ms 10 runs
Summary
nxfetch ran
1.84 ± 0.25 times faster than profetch
2.11 ± 0.29 times faster than bunnyfetch
2.57 ± 0.32 times faster than afetch
29.16 ± 3.60 times faster than fastfetch
81.70 ± 10.05 times faster than pfetch
114.42 ± 13.35 times faster than yafetch
304.85 ± 32.45 times faster than inxi
395.73 ± 42.35 times faster than neofetch
```
## Further Examples
> ```sh
> nxfetch --no-logo
> ```
> 
> ```sh
> nxfetch --raw uptime
> ```
> `12h1m40s`
## License
This repository is GPL-3.0-or-later licensed.