nufetch is an extensible, Nix-native system information tool designed to allow nix-like configuration of the neofetch tool. It provides both NixOS and Home Manager modules, allowing you to declaratively configure and extend neofetch using Nix. With nufetch, you can easily enable or disable information fields, add custom fields, and ensure consistent configuration across your system or user environments.
- Nix Flake: Provides modules for both NixOS and Home Manager, making integration seamless.
- Extensible configuration: Enable or disable neofetch info fields, and add custom fields via Nix options.
- System-wide and user-specific configs: Configure neofetch globally (system-wide) or per-user.
- Consistent output: Ensures all users or environments get a reproducible, declarative neofetch configuration.
- Easy to use: Simple, declarative configuration using Nix modules.
- Automatic config generation: Generates the neofetch config file from your Nix options.
- Wrapper scripts: Installs a
nufetchwrapper and ensuresneofetchuses the generated config.
Add this repository as an input to your flake.nix:
inputs.nufetch.url = "github:gignsky/nufetch";Import the Nufetch NixOS module in your system configuration:
{
imports = [
inputs.nufetch.nixosModules.default
];
}Import the Nufetch Home Manager module in your user configuration:
{
imports = [
inputs.nufetch.homeManagerModules.default
];
}Add this to your configuration.nix to enable and configure nufetch system-wide:
{
programs.nufetch = {
enable = true;
os = true;
kernel = true;
uptime = false;
extraPrintInfoFields =''{
info "Public IP: " public_ip
'';
};
}This will:
- Install a
nufetchwrapper script so that runningnufetchorneofetchalways uses your generated config. - Place the config at
/etc/nufetch.conffor system-wide use.
Add this to your Home Manager configuration for per-user setup:
{
programs.nufetch = {
enable = true;
os = true;
kernel = true;
uptime = false;
extraPrintInfoFields =''{
info "Public IP: " public_ip
'';
};
}This will:
- Install a
nufetchwrapper script in your user environment. - Place the config at
$HOME/.config/neofetch/config.conffor user-specific use.
After rebuilding your system or user environment, simply run:
nufetchor
neofetchBoth commands will use your generated config (/etc/nufetch.conf for NixOS, or ~/.config/neofetch/config.conf for Home Manager).
This repo uses Nix Flakes for reproducible development environments.
# Enter the development shell
nix develop
# Build the project
nix build
# Run the tool
nix runContributions are welcome! Please open issues or pull requests on GitHub.
This project is licensed under the GNU General Public License v3.0. See LICENSE for details.