No description
Find a file
Peritia 7e5f29cf9f Version 1.1.0
Added:
- TUI
- A few comments
2025-08-11 14:12:14 +02:00
nyx Version 1.1.0 2025-08-11 14:12:14 +02:00
other Version 1.1.0 2025-08-11 14:12:14 +02:00
flake.nix Adding Importing functionality 2025-08-06 09:34:26 +02:00
README.md Version 1.1.0 2025-08-11 14:12:14 +02:00

Nyx: NixOS System Management Toolkit

Nyx is a modular toolkit that simplifies and automates various NixOS system management tasks, from enhanced rebuilds to cleanup and shell customization.


Features

  • Enhanced NixOS Rebuilds — via nyx-rebuild.nix
  • Automated System Cleanup — via nyx-cleanup.nix
  • Shell Customization & Tooling — banners and helpers via nyx-tool.nix
  • All-in-One Integration — enable everything with a single import: nyx.nix

Dependencies

Tool / Service Required Notes
NixOS / Nix Nyx is designed for NixOS or compatible Nix environments
sudo access Needed for system-level operations
Home Manager Integrates via home.nix
Git Required for autoPush* features (must be a Git repo)
nix-output-monitor Automatically provided by Nyx

Project Structure

Nyx-Tools
├── nyx
│   ├── bash
│   │   ├── nyx-cleanup.sh
│   │   ├── nyx-rebuild.sh
│   │   ├── nyx-tool.sh
│   │   └── nyx-tui.sh
│   ├── default.nix
│   ├── nyx-cleanup.nix
│   ├── nyx-rebuild.nix
│   ├── nyx-tool.nix
│   └── nyx-tui.nix
└── other/

How It Works

  • default.nix
    Importing the other Modules.

  • nyx-tool.nix
    Sets up shell visuals (e.g. banners) and Zsh helpers.

  • nyx-rebuild.nix
    Enhances nixos-rebuild with:

    • Git auto-push support
    • Optional code formatting before builds
    • Rebuild logging
  • nyx-cleanup.nix
    Automates system cleanup and tracks logs (optionally pushes to GitHub).

  • nyx-tui.nix
    Making a TUI for the other tools.


Quick Start

1. Add Nyx to your Flake

# flake.nix
{
  inputs.nyx.url = "github:Peritia-System/Nyx-Tools";

  outputs = inputs @ { nixpkgs, nyx, ... }:
  {
    nixosConfigurations.HOSTNAME = nixpkgs.lib.nixosSystem {
      modules = [ ./configuration.nix ];
    };
  };
}

2. Import Nyx into Home Manager

# home.nix
{
  config,
  inputs,
  ...
}:
{
  imports = [
    inputs.nyx.homeManagerModules.default
  ];
}

3. Enable Desired Modules

{
  nyx = {
    
    enable = true;
    inherit username nixDirectory;
    logDir = "/home/${username}/.nyx/logs";
    autoPush = false;

    nyx-rebuild = {
      enable = true;
      editor = "nvim";
      formatter = "alejandra";
      enableAlias = false;
      startEditor = false;
    };
    
    nyx-cleanup = {
      enable = true;
      keepGenerations = 5;
      enableAlias = false;
    };
    
    nyx-tool = {
      enable = true;
    };

    nyx-tui = {
      enable          = true;
      enableAlias     = false;
    };

  };
}

⚠️ Note: nixDirectory must be a full path to your flake repo (e.g., /home/${username}/NixOS/Nyx-Tools).

See other/example/example-home.nix for a working example.


Module Options

nyx.nyx-rebuild

Option Description Default
enable Enable the module false
startEditor Launch editor before rebuilding false
editor Editor to use (vim, nvim, etc.)
enableFormatting Auto-format Nix files before rebuild false
formatter Formatter to use (e.g., alejandra)
enableAlias Add CLI alias for rebuild false

nyx.nyx-cleanup

Option Description Default
enable Enable the module false
keepGenerations Number of generations to keep 5
enableAlias Add CLI alias for cleanup false

nyx.nyx-tui

Option Description Default
enable Enable the module false
enableAlias Add CLI alias for the tui false

nyx.nyx-tool

Option Description Default
enable Enables banners and shell tools false

💡 nyx-tool must be enabled for other modules to function properly.


Contributing

You're welcome to contribute:

  • New features & modules
  • Tooling improvements
  • Bug fixes or typos

Open an issue or pull request at:

👉 https://github.com/Peritia-System/Nyx-Tools


License

Licensed under the MIT License