Initial NixOS flake: Hyprland (end-4 illogical-impulse), NVIDIA, gaming, dev tools

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C5ydBQk68JYw8HXzUDLAyV
This commit is contained in:
2026-07-18 15:41:54 +01:00
commit d14196dcde
10 changed files with 368 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
{ pkgs, ... }:
{
imports = [
./hardware-configuration.nix
../../modules/core.nix
../../modules/desktop.nix
../../modules/nvidia.nix
../../modules/gaming.nix
];
networking.hostName = "nixos-pc";
# systemd-boot lives on this install's OWN ESP (on the 1TB WD SSD) and only
# serves NixOS generations. rEFInd on the NVMe ESP stays the top-level OS
# picker and auto-detects this as a new entry — do not add Windows/Arch
# entries here.
boot.loader = {
systemd-boot = {
enable = true;
configurationLimit = 10;
};
efi.canTouchEfiVariables = true;
};
users.users.zephrynis = {
isNormalUser = true;
description = "zephrynis";
extraGroups = [ "wheel" "networkmanager" "video" "input" ];
shell = pkgs.fish; # end-4 dots are fish-centric
};
programs.fish.enable = true;
time.timeZone = "Europe/London";
i18n.defaultLocale = "en_GB.UTF-8";
# Set to the NixOS release of the ISO used at install time; never change afterwards.
system.stateVersion = "25.11";
}

View File

@@ -0,0 +1,26 @@
# PLACEHOLDER — on install day, overwrite this file with the one produced by
# nixos-generate-config --root /mnt
# (it lands in /mnt/etc/nixos/hardware-configuration.nix), then `git add` it —
# flakes only evaluate tracked files. The generated file adds the correct
# boot.initrd.availableKernelModules for this machine.
#
# The labels below match the mkfs commands in README.md (mkfs.ext4 -L nixos,
# mkfs.fat -n NIXBOOT), so this stub is bootable even before replacement.
{ ... }:
{
fileSystems."/" = {
device = "/dev/disk/by-label/nixos";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-label/NIXBOOT";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices = [ ]; # 128GB RAM — no swap
hardware.cpu.intel.updateMicrocode = true;
}