Configuration files for NixOS + Home Manager.
				
			
		| assets | ||
| config/wezterm | ||
| home-manager | ||
| modules | ||
| nixos | ||
| overlays | ||
| pkgs | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| nixpkgs.nix | ||
| README.md | ||
| shell.nix | ||
NixOS & Home-Manager Configuration
My NixOS and Home-Manager config files. Based upon Misterio77's starter configs.
My other configs:
Alternatively jade provides the plumbing for a desktop environment like experience.
To be used as a simple home-manager import.
This repo is often neglected and doesn't necesarrily follow best practices.
I recommend only using this repo for inspiration and instead use this boilerplate
Structure
.
├── flake.lock                          # Pinned dependencies.
├── flake.nix                           # Entrypoint for hosts and home configurations.
├── nixpkgs.nix                         # A nixpkgs instance.
├── shell.nix                           # Shell for bootstrapping.
├── assets                              # Various assets.
├── config                              # Legacy configuration files.
├── home-manager                        # Home Manager configurations.
│   ├── user.nix                        # User configuration.
│   ├── programs                        # Program configurations.
│   └── services                        # Service configurations.
├── modules                             # Modules I haven't upstreamed yet.
│   ├── home-manager                    # Reuseable Home Manager modules.
│   └── nixos                           # Reuseable NixOS modules.
├── nixos                               # NixOS configurations.
│   └── hostname                        # Directory per host.
│       ├── configuration.nix           # Server configuration.
│       └── hardware-configuration.nix  # Generated hardware configuration.
├── overlays                            # Patches and version overides.
└── pkgs                                # Custom packages.
Installation
# Clone the configuration files and link them into the NixOS directory
git clone https://github.com/sajenim/dotfiles.nix.git
ln -s ~/dotfiles.nix/ /etc/nixos
# We must be in the repo to access the flake
cd /etc/nixos
# Apply the system configuration
sudo nixos-rebuild switch --flake .#hostname
# Apply the user configuration
home-manager switch --flake .#user@hostname
FAQ
- What is nix?
Nix is a tool that takes a unique approach to package management and system configuration. - Nix benefits
Nix is reproducible, declarative and reliable. - Why flakes?
Flakes allow you to specify your code's dependencies (e.g. remote Git repositories) in a declarative way, simply by listing them inside a flake.nix file. 
