- Hyprland (Hypridle, Hyprlock, Hyprpaper, Mako, Rofi, Swaync, Waybar)
- Nix Flakes
- Theme handled by Stylix
- Automatic light and dark themes
- Multiple hosts
- Home config as a Nix Module
- Home Impermanence (on Akatosh)
- Secrets Management
hosts
├── akatosh
│ ├── default.nix
│ ├── hardware-configuration.nix
│ └── sops.nix
├── common
│ ├── global
│ ├── optional
│ ├── secrets.yaml
│ └── users
└── magnus
├── default.nix
├── hardware-configuration.nix
└── sops.nix
magnus
: Main Systemakatosh
: Laptop (disk managed with disko with impermanence for NixOS)
The setup is rather classic, most of the system configuration is shared between hosts.
home
└── louis
├── akatosh.nix
├── features
│ ├── cli
│ ├── default.nix
│ ├── desktop
│ ├── dev
│ ├── gaming
│ ├── gui
│ ├── impermanence.nix
│ ├── misc
│ └── virtualization
├── global
│ ├── default.nix
│ ├── home-manager.nix
│ ├── options
│ └── tools
└── magnus.nix
There are some tools enabled by default (home/louis/global/tools.nix
, helix
) but most features are optional.
Features are enabled using options defined in (home/louis/global/options
). See magnus.nix
:
home-config = {
cli.commonTools.enable = true; # eza, bat, wget, ...
gui = {
kitty.enable = true;
schizofox.enable = true; # "super ultra privacy friendly firefox config"
social.enable = true;
utils.enable = true; # spotify, file manager, calibre, ...
};
dev = {
vscode.enable = true;
devTools.enable = true; # tokei, tmux, ...
};
desktop.hyprland.enable = true; # Gnome is also an option
virtualization.enable = true; # qemu, ...
# other options exists (gaming, ...)
};
Style is handled by Stylix:
Theme and wallpaper auto switch from light to dark on sunset using darkman and nix specialisations.
Here are some random examples:
- Schizofox
- Nextcloud
- Helix/NixVim
- Some VSCode extensions
- LMStudio
- Git signing keys
- Have experimental features (nix-commands and flakes) enabled in your initial configuration
- Clone the repo
- Replace all occurences of
louis
by your username - Replace all occurences of
magnus
orhircine
by your hostname (only hircine uses impermanence) - Either remove secrets management through
sops
or replace them with your own secrets. A hashed password could be considered as being enough so don't bother with secrets if you don't have any. (that's in./hosts/common/users/USERNAME/default.nix
) - Replace
hardware-config.nix
with your own file produced bynixos-generate-config
.
- you should already have changed
magnus
's config to be yours - You should probably follow this algorithm:
- Comment out all features in
./home/USERNAME/HOSTNAME.nix
- For each feature, see what it enables, remove what you don't want, then enable it or not
- You should be good to rebuild :
sudo nixos-rebuild --flake .#HOSTNAME boot
thenreboot now
.