mirror of
https://github.com/zephrynis/nix-flake.git
synced 2026-02-18 20:21:53 +00:00
f1a48245089563183218b41b1bf652d0bb5109b9
Replaces nerdfonts.override with specific nerd-fonts packages for FiraCode, JetBrainsMono, and Iosevka in desktop and laptop configurations. Also corrects PulseAudio configuration by enabling it under services.pulseaudio instead of hardware.pulseaudio in common.nix.
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%