Initial NixOS flake-based multi-host setup

Add a NixOS system configuration using flakes, supporting multiple hosts (desktop, laptop, my-machine) with shared and per-host settings. Includes Home Manager integration, user-level and system-level package management, and example hardware configuration placeholders. Provides a README with setup instructions and a .gitignore for common Nix and editor artifacts.
This commit is contained in:
2025-10-26 19:50:35 +00:00
parent 8087609033
commit 10f0bc388d
12 changed files with 721 additions and 0 deletions

76
README.md Normal file
View File

@@ -0,0 +1,76 @@
# NixOS System Configuration
This is a NixOS flake configuration for managing your system setup, ricing, and applications across multiple devices.
## Structure
```
.
├── flake.nix # Main flake configuration
├── flake.lock # Locked dependency versions
├── system/
│ └── common.nix # Shared system configuration
├── hosts/
│ └── my-machine/ # Per-machine configurations
│ ├── configuration.nix # Machine-specific settings
│ └── hardware-configuration.nix # Hardware-specific settings
└── home/
└── home.nix # User-level configuration (dotfiles, packages)
```
## Initial Setup
1. **Generate hardware configuration** on your NixOS machine:
```bash
nixos-generate-config --show-hardware-config > hardware-configuration.nix
```
Copy the output to `hosts/my-machine/hardware-configuration.nix`
2. **Update configuration files**:
- Change `my-machine` to your actual hostname throughout the files
- Update `yourusername` to your actual username
- Adjust timezone, locale, and other personal settings
- Choose your desktop environment / window manager
3. **Update flake inputs**:
```bash
nix flake update
```
4. **Build and switch to the new configuration**:
```bash
sudo nixos-rebuild switch --flake .#my-machine
```
## Adding a New Machine
1. Create a new directory under `hosts/` with your machine's hostname
2. Generate and add the hardware configuration
3. Create a `configuration.nix` for machine-specific settings
4. Add the new machine to `flake.nix` under `nixosConfigurations`
5. Build with: `sudo nixos-rebuild switch --flake .#new-machine`
## Updating the System
```bash
# Update flake inputs
nix flake update
# Rebuild system
sudo nixos-rebuild switch --flake .#my-machine
```
## Customization Ideas
- Add window manager configurations (i3, bspwm, Hyprland, etc.)
- Configure terminal emulators (Alacritty, Kitty, WezTerm)
- Set up status bars (Polybar, Waybar)
- Add custom themes and color schemes
- Configure rofi, dunst for notifications
- Set up wallpaper management with nitrogen or variety
## Resources
- [NixOS Manual](https://nixos.org/manual/nixos/stable/)
- [Home Manager Manual](https://nix-community.github.io/home-manager/)
- [NixOS Wiki](https://nixos.wiki/)