A modern, minimal NixOS desktop powered by Niri, built for reproducibility, customization, and everyday development.
⚠️ WarningI am still learning NixOS, so this configuration may not follow best practices and could contain mistakes. Please review the files carefully before using them, and always back up your existing configuration.
Feel free to fork this project, contribute, and expand it for your own needs.
2026-07-16.13-28-30.mp4
Wallpapers from SleepyCatHey's CozyPixels repository
Noctalia Shell is my personal NixOS desktop configuration built around the Niri scrollable tiling Wayland compositor.
This repository contains everything needed to recreate my setup, including:
- NixOS system configuration
- Home Manager configuration
- Flake configuration
- Application configurations
- Wallpapers
- Shell and terminal customization
- Desktop environment tweaks
- Gaming and performance optimizations
This is an active work-in-progress repository. I update it regularly as I improve my NixOS configuration, experiment with new features, or refactor existing modules. Expect frequent changes, improvements, and occasional breaking changes.
Feel free to use this repository as inspiration or as a starting point for your own setup.
This configuration is primarily designed for my laptop:
- ASUS ROG Strix Gaming Laptop
- AMD Integrated Graphics
- NVIDIA Dedicated GPU (NVIDIA PRIME Offloading)
Some modules are hardware-specific and may not work correctly on other systems.
If your system has a similar hybrid graphics setup (AMD iGPU + NVIDIA dGPU), you may find the configuration in:
modules/graphics.nix
useful. It contains tweaks for NVIDIA PRIME offloading and gaming performance.
Launch applications on the dedicated NVIDIA GPU using:
nvidia-offload <application>Example:
nvidia-offload prismlauncherYou can verify that the application is running on the dedicated GPU with:
nvidia-smiIf your hardware differs, you may need to modify or remove this module.
This config sets up a few Fish shell abbreviations to make rebuilding faster:
| Abbreviation | Expands to |
|---|---|
rb |
sudo nixos-rebuild switch --flake ~/nixos-config#nixos |
rba |
sudo nixos-rebuild dry-activate --flake ~/nixos-config#nixos |
These are defined in modules/shell.nix under programs.fish.shellAbbrs. Add your own by extending that block.
This config also installs a few modern CLI replacements as system packages:
eza— a modern replacement forlsbat— acatreplacement with syntax highlightingzoxide— a smartercdthat learns your habitsfastfetch— a fast system info tool
This repository is intended for learning and personal use. I cannot guarantee that these configurations will work on your hardware without modifications.
Always review the configuration before applying it to your system.
- Niri
- Noctalia Shell
- Alacritty
- Fish/Zsh
- Fastfetch
- NVIDIA PRIME
- Gaming optimizations
- Unity Hub
- Prism Launcher
- Steam
- Obsidian
- Firefox
Good thing you asked! It's just as simple as you think. Open nixos-config/modules/packages.nix with a code editor. From there, list the package you want to install. You can check the package name here before installation.
Here's a demo on how to install packages:
2026-07-16.13-46-41.mp4
Found a bug or have a suggestion? Open an issue.
Well, technically I would recommend a fresh install of NixOS to ensure a conflict-free system. However, if you do know your way around it, then feel free!
- Update README with screenshots and features
- Have a workflow with nix-shell
- Including a custom command that can run any project temporarily, and deletes cache when project is closed to avoid clutter
Thanks to the NixOS community and everyone who shares their configurations online.
This project is licensed under the MIT License.