Important
I USE NIXOS, BTW
This is my current dotfiles that I will use in the next few years or might be my last dotfiles repo, this repo is unified all of the tools i use, not only for NixOS, Android, WSL and Windows in limited sense, and maybe hopefully servers and Macs if i have money.
By combining both Chezmoi, NixOS, and Home-Manager, not only I benefit from NixOS/Home-Manager reproducability for my Linux/WSL/Android config, using Chezmoi allows me to use my dotfiles on setups that don't/can't use Nix like Windows or Random PCs/Servers that shouldn't be littered with Nix immutability.
This is how I structure my nix-configs currently, it might will have few more diretories in the future.
the naming scheme is auto generated by Chezmoi, so don't be surprised.
on the front you will have:
| Directory | Description |
|---|---|
AppData |
Windows equivalent of .config/ or .local I think |
dot_config |
Config files, for now it only have powershell |
dot_distrobox-recipe |
my recipe for distroboxes I might use, the command is long so having that is neat |
dot_scripts |
my scripts, it has bash and powershell, some of them are carry over from my old dotfiles |
dot_torrents |
we are a pirate!! |
dot_node-red |
node-red stuff for IoT |
mutable-configs |
configs that is mutable, not worth it to be carried to home directory since it will changed a lot, will be symlinked by the home-manager or other methods depend on what I need |
dot_nix-configs |
my actual NixOS configs |
private_dot_secrets |
well...encrypted files, configs, secrets |
private_dot_ssh |
obviously...my ssh key |
Templates |
templates of files...maybe not a lot that I added atm |
Wallpapers |
Waifu and car picture for Wallpapers |
then when it comes to my actual .nix-configs, the directories looks like this.
| Directory | Description |
|---|---|
aliases |
my aliases...also carried from my old dotfiles |
configs |
mostly my configuration files of packages, tried not to use nix for this so I can use it on non Nix systems |
droids |
configurations for Nix On Droid, NixOS but for Android (a Termux-based app) |
home |
my home-manager configs, tried to seperate from systems as much as possible |
image |
config for images for deploying NixOS to somewhere |
linux |
my systems configs for NixOS |
machines |
hardware-configuration.nix backup and also hardware tweak for any machines I use |
modules |
modules of nix configs, seperated by systems and home-manager ofc |
theming |
modules for my ricing, has Gnome, KDE Plasma 6, maybe Hyprland if I want a neckbeard |
This thing obviously can change overtime as this dotfiles grow, and I can forgot the directories.
-
Install Nix - To use this Dotfiles, you need Nix to install Chezmoi. You can install it using the Nix installer.
Then grab my configs:
nix-shell -p chezmoi git --run "chezmoi init dhupee" -
Drop your Age key - put the Age key where Chezmoi can read it and run chezmoi apply. That unlocks all the encrypted bits and installs my dotfiles.
Finally, from the .nix-configs directory, fire off:
sudo nixos-rebuild switch --flake .#nitro # if you're on NixOS home-manager switch --flake .#dhupee # always
Swap the flake names if you're not nitro/dhupee – look inside flake.nix for alternatives. If you're on a non‑NixOS distro, skip the nixos-rebuild and just use Home‑Manager.
Windows support is lighter than Linux/WSL, but Chezmoi makes it work. Setup takes four steps:
-
Install Scoop - This Dotfiles for Windows uses Scoop to install it's program, to install Scoop, run:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
After this, you should be able to run
scoop install chezmoito install chezmoi from there -
Place your Age key – Copy your
age.keyfile into your home directory (%USERPROFILE%). Chezmoi needs it to decrypt your encrypted files. -
Bootstrap Chezmoi – Open a terminal and initialise the repo:
chezmoi init dhupee
Apply the dotfiles – Run:
chezmoi apply
Install your applications – The dotfiles only handle configs; you supply the actual software. I recommend Scoop for most CLI tools and Winget for apps that need system integration.
Note
This setup is intentionally kept minimal compared to my NixOS machines, but it gives you consistent scripts, aliases, and shell customisation on Windows.
By design, Scoop isolates almost all instalation in Scoop folder in %USERPROFILE%, However if you want it to be deleted as clean as possible, do this few steps
-
Uninstall Scoop and all its apps
scoop uninstall scoop
-
Delete leftover directories (if they still exist)
Remove-Item -Recurse -Force "$env:USERPROFILE\scoop" -ErrorAction SilentlyContinue Remove-Item -Recurse -Force "$env:USERPROFILE\.config\scoop" -ErrorAction SilentlyContinue
-
Clean your
PATHand Scoop‑related environment variables Open System Properties → Environment Variables and remove:- Any user/system
Pathentries containingscoop(e.g.,%USERPROFILE%\scoop\shims). - Any user/system variables named
SCOOPorSCOOP_GLOBAL.
- Any user/system
-
Restart your terminal for changes to take effect.
Because Dotfiles is managed using Chezmoi, in order to remove dotfiles from BOTH Sources and Destination, run:
chezmoi destroyThen you can let it rip, remove Scoop or Nix, depending on the systems
- Home Manager
- Determinate Nix Installer
- Plasma Manager
- Nix On Droid
- NixOS WSL
- Spicetify Nix
- Nix Portable
- NixOS-Generator
- Scoop Package Manager
- Arch Wiki
- Awesome Nix
- Partitioning NixOS with Disko
- Nix Shorts, A collection of short notes about Nix, down to what is immediately needed for users.
- Nix.Dev
- Installing a Custom NixOS Image on a Raspberry Pi
- Python and NixOS: A match made in hell
- Nixpkgs Overlays
- Librephoenix's NixOS Config Guide for Nerds and Other Cool People Youtube Playlist
- NixOS profile specifically for Klipper Servers, for my 3D printer
- Live USB profile, packages as an custom ISO
