mirror of
https://github.com/zephrynis/nix-flake.git
synced 2026-02-18 20:21:53 +00:00
535b831bbf61e6432ff3e3272fd0c15b42c74913
Changed hostname to 'zeph-laptop' and updated user to 'zeph' with appropriate description. Switched display manager to SDDM and desktop environment to Plasma 6, removing GDM and Plasma 5. Clarified power management options, enabling TLP by default and providing comments for power-profiles-daemon.
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
-
Generate hardware configuration on your NixOS machine:
nixos-generate-config --show-hardware-config > hardware-configuration.nixCopy the output to
hosts/my-machine/hardware-configuration.nix -
Update configuration files:
- Change
my-machineto your actual hostname throughout the files - Update
yourusernameto your actual username - Adjust timezone, locale, and other personal settings
- Choose your desktop environment / window manager
- Change
-
Update flake inputs:
nix flake update -
Build and switch to the new configuration:
sudo nixos-rebuild switch --flake .#my-machine
Adding a New Machine
- Create a new directory under
hosts/with your machine's hostname - Generate and add the hardware configuration
- Create a
configuration.nixfor machine-specific settings - Add the new machine to
flake.nixundernixosConfigurations - Build with:
sudo nixos-rebuild switch --flake .#new-machine
Updating the System
# 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
Description
Languages
TypeScript
84.7%
Nix
9.1%
SCSS
5.3%
CSS
0.5%
Shell
0.4%