Personal NixOS config with MangoWC compositor, Starship prompt, and home-manager.
- Compositor: MangoWC (Wayland)
- Shell: Zsh + Starship (Rust, fast)
- Terminal: Kitty
- Editor: Neovim
- Hardware: ThinkPad E16 Gen 1 (AMD)
Prerequisites: NixOS already installed with flakes enabled.
# Backup your current config
sudo mv /etc/nixos /etc/nixos.backup
# Clone this repo
sudo git clone https://github.com/clifinger/nixos-config.git /etc/nixos
cd /etc/nixos
# Generate your hardware config
sudo nixos-generate-config --show-hardware-config > hardware-configuration.nix
# Review and adjust home-manager/julien/default.nix if needed
# Apply the configuration
sudo nixos-rebuild switch --flake .#nixos
# Set your password
passwd
# Reboot
rebootrebuild # alias for: sudo nixos-rebuild switch --flake .#nixoscd /etc/nixos
nix flake update
rebuildSystem-wide:
# Edit configuration.nix
environment.systemPackages = with pkgs; [
your-package
];User-only:
# Edit home-manager/julien/default.nix
home.packages = with pkgs; [
your-package
];Then rebuild.
.
├── flake.nix # Entry point
├── configuration.nix # System config
├── hardware-configuration.nix # Auto-generated
│
├── system/ # System modules
│ ├── boot.nix
│ ├── audio.nix
│ └── ...
│
├── home-manager/ # Home-manager config
│ ├── julien/ # User config
│ └── programs/ # All programs (zsh, kitty, mango, etc)
│
└── utils/ # Manual scripts
└── bitwarden-keys/
Simple and flat. System in system/, user in home-manager/.
Edit files in home-manager/programs/ then rebuild.
Edit home-manager/julien/default.nix then rebuild.
Edit configuration.nix or files in system/ then rebuild.
Check for errors:
nix flake checkRollback:
sudo nixos-rebuild switch --rollbackList generations:
sudo nix-env --list-generations --profile /nix/var/nix/profiles/systemClean old generations:
sudo nix-collect-garbage --delete-older-than 7dIf you have different screens, adapt the Kanshi configuration in home-manager/programs/kanshi.nix.
Get screen info:
wlr-randrCopy the output info (criteria, mode, position, scale) into your Kanshi profiles. Example:
{
profile.name = "your-setup";
profile.outputs = [
{
criteria = "Your Monitor Brand Model Serial";
scale = 1.0;
mode = "[email protected]";
position = "0,0";
status = "enable";
}
];
}Then rebuild.
- Auto-login enabled (getty)
- Sudo without password for wheel group
- Docker disabled by default (use
don/doffcommands) - Xanmod kernel for better performance
NixOS: 26.05 Unstable
State Version: 25.11