My personal NixOS configuration featuring the River window manager on Wayland using Home Manager.
.
├── assets/ # Wallpapers and screenshots
├── docs/ # Configuration documentation
│ ├── KEYBINDS.md
│ └── SECRETS.md
├── flake.nix # Entry point, global variables
├── hosts/ # Per-machine configuration
│ ├── laptop/
│ │ ├── default.nix
│ │ ├── boot.nix
│ │ ├── hardware-configuration.nix
│ │ └── hardware.nix
│ └── server/
│ ├── default.nix
│ ├── boot.nix
│ ├── hardware-configuration.nix
│ └── harwdare.nix
├── modules/
│ ├── home/ # Home Manager modules
│ │ ├── desktop/
│ │ ├── editors/
│ │ ├── files/
│ │ ├── packages/
│ │ ├── shell/
│ │ ├── terminal/
│ │ └── theme/
│ └── nixos/ # NixOS modules
│ ├── boot/
│ └── core/
├── profiles/ # Module bundles per use case
│ ├── desktop.nix
│ └── minimal.nix
├── secrets/ # Secrets handled by SOPS
├── shells/ # Nix dev shells
└── README.md| Components | |
|---|---|
| OS | NixOS 25.11 (Xantusia) |
| WM | River (wayland) |
| Terminal | Foot |
| Shell | Bash |
| Editor | Vim - NeoVim - VSCodium |
| File Manager | yazi - Thunar |
| Status Bar | waybar |
| Launcher | Wofi |
| Browser | Brave |
All three scenarios assume you have booted into a NixOS live environment or an existing NixOS system. The configuration uses flakes, so nix with flakes support is required throughout.
If your current nix version does not have flakes enabled, add this flag to every nix command used below:
--extra-experimental-features 'nix-command flakes'
Or enable it permanently in your current session:
export NIX_CONFIG="experimental-features = nix-command flakes"This assumes you have just finished partitioning and mounting your drives and have generated a hardware-configuration.nix via nixos-generate-config.
- Clone the repository
git clone https://github.com/luantorv/nixconf.git /mnt/etc/nixos
cd /mnt/etc/nixos- Copy your hardware configuration
cp /etc/nixos/hardware-configuration.nix hosts/laptop/hardware-configuration.nix- Adjust global variables
Edit flake.nix and set your username and home directory:
globalVars = {
username = "youruser";
homeDirectory = "/home/youruser";
system = "x86_64-linux";
wallpaperDir = "/home/youruser/Images/Wallpapers"; # Absolute path
wallpaperRelativePath = "Images/Wallpapers"; # Relavite to the home
};- Install
nixos-install --flake /mnt/etc/nixos#laptop- Reboot
rebootAfter rebooting, the repository will be at /etc/nixos. Future rebuilds are done from there.
This assumes NixOS is already running and you want to replace your current configuration with this one.
- Clone the repository
git clone https://github.com/luantorv/nixconf.git ~/nixconf
cd ~/nixconf- Copy your hardware configuration
cp /etc/nixos/hardware-configuration.nix hosts/laptop/hardware-configuration.nix- Adjust global variables
Edit flake.nix and set your username and home directory:
globalVars = {
username = "youruser";
homeDirectory = "/home/youruser";
system = "x86_64-linux";
wallpaperDir = "/home/youruser/Images/Wallpapers"; # Absolute path
wallpaperRelativePath = "Images/Wallpapers"; # Relavite to the home
};- Apply
sudo nixos-rebuild switch --flake .#laptop- (Optional) Move to
/etc/nixos
If you want the configuration to live in the conventional location:
sudo mv ~/nixconf /etc/nixosFuture rebuilds:
cd /etc/nixos && sudo nixos-rebuild switch --flake .#laptopThis scenario applies if you are running NixOS (or another Linux distribution) and only want to manage your user environment, without this flake touching system-level configuration.
Note
This configuration uses Home Manager as a NixOS module. Running it standalone requires minor adjustments. See the note at the end of this section.
- Install Home Manager (standalone)
nix run home-manager/master -- init --switch- Clone the repository
git clone https://github.com/luantorv/nixconf.git ~/nixconf
cd ~/nixconf- Adjust global variables
Edit flake.nix and set your username and home directory.
- Apply
home-manager switch --flake .#youruserThis requires adding a homeConfigurations output to
flake.nixthat points directly to the desired profile's home modules, since the standalone mode does not go throughnixosModules.home-manager. The system-level modules (modules/nixos/) will have no effect in this scenario.
- Pull the latest changes and rebuild:
git pull
sudo nixos-rebuild switch --flake .#laptopTo update flake inputs (nixpkgs, home-manager, etc.) before rebuilding:
nix flake update
sudo nixos-rebuild switch --flake .#laptopProject-specific development environments are available under shells/. Enter one with:
nix develop ~/nixconf#default
nix develop ~/nixconf#python
nix develop ~/nixconf#node
nix develop ~/nixconf#rust
nix develop ~/nixconf#latexRunning nix develop without a target drops you into the default shell.
You can find a guide to the keybinds used in river here.
All wallpapers available in wallpapers were extracted from wallhaven.
The wallpapers in this repository are the property of their respective authors. I do not claim ownership of any artwork shared here.
If you recognize any of these works and know the original artist, or if you are the creator of an image and would like it to be specifically credited (or removed), please reach out directly via any of my contact methods
The image for swaylock-effects were extracted from nixos-artwork GitHub repository.
This project is primarily designed for personal use. Feel free to adapt it, fork it, or break it.





