Declarative NixOS configuration with Home Manager for daily personal use.
Some NixOS dotfiles I've come across seem to be missing basic things you'd expect from a daily-use computer.
Like, are you really using just a WM, Vim, Git, and a browser? What about an office suite, a video player, a file explorer or literally anything else? We live in a capitalist world.
This configuration is my attempt at building a complete, practical desktop setup for everyday use, not just a minimal environment for writing code.Everyday convenience matters to me: opening files in the right applications, previewing them in the file manager, taking and annotating screenshots, sharing files between devices, etc.
I mostly use open-source software, though.
I use Nix to keep my setup reproducible, but I still configure some applications / features imperatively. Those manual settings are documented alongside the configuration.I use AI mainly for questions and guidance while working on these dotfiles. If a file is vibecoded, I will explicitly note it in the comments.
- Everyday applications for files, documents, media, creative work and communication
- Fully configured desktop experience with Hyprland and Noctalia Shell
- Theme management with Noctalia Shell for wallpapers, GTK, Qt5/6, KColorScheme, btop, Alacritty, Fastfetch, Hyprland, VSCodium, Obsidian, Vesktop, LibreWolf, and OBS Studio
- Useful aliases in the shell
- Ergonomic keybindings in Hyprland
- Declarative configs for a lot of apps, including LibreWolf, VSCodium, Obsidian, Zed, Anki, Nemo, etc.
- Daily incremental Btrfs backups with seven-day retention
- Flake-based, mostly modular system
- Supports multiple hosts and users (not sure if I need multiple users for now tho)
- Secret management with sops-nix
- My own packages
nixos-dotfiles
├── assets # Static assets: screenshots, wallpapers, etc.
├── hosts # per-host configuration
│ └── desktop
│ ├── settings # Host-specific settings
│ ├── home.nix # Home Manager configuration for this host
│ ├── system.nix # NixOS configuration for this host
│ └── hardware-configuration.nix
├── lib # Helpers
│ └── mkNixos.nix
├── modules # Reusable system and user modules
│ ├── cli
│ ├── core
│ │ ├── btrfs
│ │ ├── fonts
│ │ ├── nix
│ │ ├── packages # Base system packages
│ │ ├── security
│ │ └── system
│ ├── desktop
│ │ ├── hypr # hypr ecosystem
│ │ │ └── hyprland
│ │ ├── ly
│ │ ├── mime
│ │ ├── noctalia
│ │ └── theme
│ ├── editors
│ ├── games
│ ├── hardware
│ │ ├── audio
│ │ └── nvidia
│ ├── programs
│ │ ├── browsers
│ │ ├── media
│ │ └── messengers
│ └── shell
│ └── fish
├── pkgs # Custom packages (Standalone flake)
│ ├── google-sans
│ ├── ida-pro
│ ├── ida-pro-mcp
│ ├── il2cpp-inspector-redux
│ ├── flake.nix
│ └── README.md
├── services # Reusable services
├── users # per-user configuration
│ └── repinek
│ ├── settings # User-specific settings
│ ├── home.nix # Home Manager configuration for this user
│ └── system.nix # NixOS configuration for this user
└── flake.nix
Warning
This is my personal configuration, created only for me, for my personal hardware and workflow.
DO NOT COPY & PASTE IT BLINDLY
Use it only as a reference to build and configure your own config.
If you know what you are doing and just want to look around:
git clone https://github.com/repinek/nixos-dotfiles.git
cd nixos-dotfilesNot needed right now, just ideas for when I have free time
- Try quickshell
- Do something with Obsidian (I don't like it after native apps, maybe switch it to something like NeoVim with plugins or Zed)
- Try Niri one day
- proxypin, httptoolkit, reqable* (or anything else for traffic capturing)
There are also several FIXME and TODO comments.
This project is licensed under the MIT License.
See the LICENSE file for details.
- datsfilipe dotfiles - The architecture is heavily inspired by these dotfiles
- Ruject nixos-infra - Some modules and architectural ideas were adapted from this project



