Fully reproducible NixOS configuration using Flakes and Home Manager.
- Modular architecture - Hardware profiles, services, and user configs are separated
- Nushell + Starship - Modern shell with informative prompt
- Pinnacle - Wayland compositor configured in Lua
- Neovim + Lazy.nvim - Extensible editor setup
- Reproducible - Single command deploys entire system
# Clone (if not already in place)
git clone https://github.com/silent-brad/anti_bloat ~/anti_bloat
cd ~/anti_bloat
# Build and switch
sudo nixos-rebuild switch --flake .#thinkpad-x220| Path | Purpose |
|---|---|
flake.nix | Entry point, inputs |
hosts/ | Machine-specific configs |
hardware/ | Hardware modules (profiles, peripherals, monitors) |
modules/ | Reusable NixOS modules |
home/ | Home Manager user configs |
packages/ | Custom package definitions |
wallpapers/ | Wallpaper collection |
secrets/ | User secrets (gitignored, see .example files) |
docs/ | Documentation |
ThinkPad X220 Tablet with Intel i5-2520M, Intel HD Graphics.
Hardware modules included:
- ThinkPad X220 profile (ACPI, touchpad)
- Intel GPU
- Canon G6000 printer
- Ultrabase dock
| Command | Purpose |
|---|---|
sudo nixos-rebuild switch --flake .#thinkpad-x220 | Apply system changes |
sudo nixos-rebuild test --flake .#thinkpad-x220 | Test without making permanent |
sudo nixos-rebuild build --flake .#thinkpad-x220 | Build only |
nix flake update | Update all flake inputs |
nix flake update hyprlua | Update specific input |
All user-specific values live in secrets/secrets.nix.
This file is gitignored and imported by Nix at build time. A secrets.lua is
generated from it for Neovim.
cp secrets/secrets.nix.example secrets/secrets.nix
# Then edit with your real valuesThese are consumed by:
home/editors/neovim— generatessecrets.luainto nvim config for the OpenRouter providerhome/desktop/eww— reads the generatedsecrets.luafor the OpenRouter credits widgethome/default.nix— readsgit_username/git_emailfor Git confighosts/*/default.nix— readshostname