Skip to content

alyraffauf/nixcfg

Repository files navigation

🐧 nixcfg

Welcome to my nixcfg!

This repository contains my NixOS and Home-Manager configurations, along with custom modules and packages. It is modular, declarative, and tailored for multi-device setups.



✨ Features

  • Encryption: Encrypted boot drives with Secure Boot, LUKS, and TPM decryption.
  • Hardware Configuration: Robust hardware support for all hosts.
  • Home-Manager: Unified management of user environments.
  • Hyprland: Dynamic tiling Wayland compositor and window manager.
  • Modular Configuration: Organized and reusable modules for simplicity.
  • Multi-Device Support: Written with multiple hosts in mind.
  • Stylix: Auto-generated base16 themes for the whole desktop.

📂 Repository Structure

.
├── flake.nix          # Main entry point
├── home/              # home-manager configurations
├── hosts/             # NixOS host configurations
├── modules/           # Modules for NixOS and home-manager
├── overlays/          # Custom Nixpkgs overlays
├── pkgs/              # Custom packages
├── secrets/           # Encrypted secrets
└── README.md          # This README

Key Files and Directories

  • flake.nix: Central file linking all configurations using Nix Flakes.
  • home/: User-specific home-manager configurations.
  • hosts/: Host configurations for NixOS.
  • modules/: Modules for NixOS and home-manager.
  • overlays/: Defines custom overlays to extend or override Nixpkgs.
  • pkgs/: Houses custom or patched package definitions.
  • secrets/: Securely stores encrypted credentials or sensitive data.

🚀 Getting Started

Prerequisites

  • A working Nix installation with Flakes enabled.
  • Familiarity with NixOS, Home-Manager, and declarative configurations.

Clone the Repository

git clone https://github.com/alyraffauf/nixcfg.git
cd nixcfg

Apply the Configuration

For NixOS systems:

sudo nixos-rebuild switch --flake .#<hostname>

For Home-Manager setups:

home-manager switch --flake .

Replace <hostname> with the desired system configuration from your modules.


🤝 Contributing

While this is a personal project, I’m open to feedback or suggestions.
Feel free to open an issue or share ideas that could improve this setup!


📜 License

This repository is licensed under the GNU General Public License.


🙌 Acknowledgments

  • nixpkgs: 'nough said.
  • agenix: secrets storage and orchestration.
  • disko: declarative partitions and disk configuration.
  • home-manager: declarative dotfile and user package management.
  • hyprland: great dynamic tiling wayland compositor.
  • lanzaboote: secure boot for NixOS.
  • nur: extra packages from the nix user repository.
  • stylix: system-wide color schemes and typography.

⭐ Stargazers Over Time

Stargazers over time