Welcome back! This repository manages the configuration for your Framework Laptop (Clean/FOSS) and Titan PC (Gaming/Dev). It uses Nix Flakes and Home Manager to keep everything reproducible.
~/nixos-config/
├── flake.nix # The "Switchboard" (Defines Laptop vs PC systems)
├── flake.lock # Locks package versions (don't edit manually)
├── wallpaper.png # Shared wallpaper
├── README.md # You are here!
├── shared/
│ ├── configuration.nix # SHARED system settings (Stylix, Timezone, User, Fonts)
│ └── home.nix # SHARED user apps (Zed, Git, Firefox, VS Code FOSS)
└── hosts/
├── framework/ # LAPTOP Specifics
│ ├── configuration.nix # Hostname, Date Format (No seconds), Pure config
│ └── hardware.nix # Laptop hardware scan
└── titan/ # PC Specifics
├── configuration.nix # Steam, VR, Clock with Seconds
└── hardware.nix # PC hardware scan
I have set up shell aliases to make rebuilding faster. These auto-copy any errors to the clipboard so you can paste them into an AI or search engine easily.
| Command | Action |
|---|---|
rbt |
Rebuild Titan (PC). Applies hosts/titan config. |
rbf |
Rebuild Framework (Laptop). Applies hosts/framework config. |
rb |
Simple rebuild (tries to detect system, no auto-copy). |
nh clean all --keep 3 |
Garbage collect old generations (saves space). |
- File:
shared/home.nix - VS Code Strategy: We only pre-install Open Source extensions (Themes, Languages) here to avoid license errors.
- Proprietary Extensions: (Copilot, Pylance) are NOT in the config. Install them manually inside VS Code. They will persist in
~/.vscode-oss/but won't be synced via Nix.
- Titan (PC):
hosts/titan/configuration.nix- Contains: Steam, ALVR, SideQuest, and Clock Seconds.
- Framework (Laptop):
hosts/framework/configuration.nix- Contains: Only the basics. Strict FOSS settings.
- File:
shared/configuration.nix - Change:
stylix.base16Schemeor thewallpaper.pngfile.
If you see an "unfree license" error, you are likely trying to install a proprietary package (like Spotify or Steam) without allowing it.
- Fix: Add the package name to
nixpkgs.config.allowUnfreePredicateinshared/configuration.nix.
- Common extensions: Add them to
shared/home.nixusingpkgs.vscode-extensions. - Proprietary extensions: Don't add them to Nix. Just install them in the GUI.
- ALVR: Installed on Titan automatically. Open firewall ports are handled by the module.
- Steam: Installed on Titan only.