Skip to content

quixaq/qfetch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

qfetch

A blazing fast, highly configurable and lightweight fetch tool written in Rust.

Installation

cargo

CONFIG_FILE_PATH=/path/to/file cargo install qfetch-cli

Manual Build

cargo build --release

You can optionally use CONFIG_FILE_PATH=/path/to/file before the build command if you want to use a custom path for it.

NixOS

Add qfetch to your nix flake inputs

inputs.qfetch.url = "github:quixaq/qfetch";

Add the module to nixosSystem

outputs = { nixpkgs, qfetch, ... }: {
  nixosConfigurations.<hostname> = nixpkgs.lib.nixosSystem {
    modules = [
      ./configuration.nix
      qfetch.nixosModules.default
    ];
  };
};

Configuration

General

Remember to use full hex codes in colors since expanding them is not implemented. For logo.include, the first logo will be used as fallback, also remember that every logo you include will be directly included in the binary so it may increase execution time. You can see the available logos in the logo dir.

cargo

Get the default config.yaml file from the repository and make changes there and point the CONFIG_FILE_PATH env variable to it. The modules are ordered in the way you order them in the config.

Manual Build

Modify the config.yaml file in the project dir and rebuild. The modules are ordered in the way you order them in the config.

NixOS

You can config directly in your configuration.nix. You'll need to set the index manually due to the way the config is handled. You can use floats and the numbers don't have to be in order since it's sorted before being injected into the project dir.

Example config:

qfetch.settings = {
  modules = {
    os = { enabled = true; key = "Distro"; }
    kernel.enabled = false;
    gpu.key = "Graphics";
  };
  
  colors = {
    title = "#ffffff";
  };
  
  logo = {
    enabled = true;
    include = [
      { id = "nixos" colors = [ "#ffafcb" "#123456" ]; }
    ];
  };
};

Benchmarks

qfetch with all modules enabled:

> hyperfine -N --warmup 2500 qfetch
Benchmark 1: qfetch
  Time (mean ± σ):       1.5 ms ±   0.1 ms    [User: 1.0 ms, System: 0.4 ms]
  Range (min … max):     1.3 ms …   2.0 ms    2200 runs

fastfetch will the same modules enabled:

> hyperfine -N --warmup 2500 fastfetch
Benchmark 1: fastfetch
  Time (mean ± σ):      48.4 ms ±   0.8 ms    [User: 23.7 ms, System: 24.3 ms]
  Range (min … max):    47.6 ms …  51.6 ms    62 runs

About

A blazing fast, highly configurable and lightweight fetch tool written in Rust.

Resources

License

Stars

Watchers

Forks

Packages