Flake Experiment

This commit is contained in:
2026-02-04 14:58:17 -07:00
parent ffc042d536
commit d80a9be891
4 changed files with 62 additions and 11 deletions

View File

@@ -3,6 +3,7 @@
NIXOS_DIR := /etc/nixos NIXOS_DIR := /etc/nixos
REPO_DIR := $(shell pwd) REPO_DIR := $(shell pwd)
SETTINGS := settings.nix SETTINGS := settings.nix
HOSTNAME := $(shell grep 'hostname =' $(SETTINGS) | cut -d '"' -f 2)
# Colors for output # Colors for output
GREEN := \033[0;32m GREEN := \033[0;32m
@@ -11,12 +12,12 @@ RED := \033[0;31m
NC := \033[0m # No Color NC := \033[0m # No Color
help: help:
@echo "NixOS Config" @echo "NixOS Config (Flake)"
@echo "" @echo ""
@echo " make init - first time setup" @echo " make init - first time setup"
@echo " make hw - generate hardware-configuration.nix" @echo " make hw - generate hardware-configuration.nix"
@echo " make rebuild - rebuild nixos" @echo " make rebuild - rebuild nixos configuration"
@echo " make update - upgrade + rebuild" @echo " make update - update flake inputs and rebuild"
@echo " make purge - garbage collect" @echo " make purge - garbage collect"
@echo " make link - symlink to /etc/nixos" @echo " make link - symlink to /etc/nixos"
@echo " make unlink - remove symlink" @echo " make unlink - remove symlink"
@@ -48,17 +49,24 @@ unlink:
fi fi
rebuild: rebuild:
sudo nixos-rebuild switch @# Ensure hardware-configuration.nix is tracked by git (flake requirement), even if ignored
@if [ -f hardware-configuration.nix ]; then \
git add -f -N hardware-configuration.nix; \
fi
@echo "Rebuilding system for $(HOSTNAME)..."
sudo nixos-rebuild switch --flake .#$(HOSTNAME)
update: update:
sudo nixos-rebuild switch --upgrade @echo "Updating flake inputs..."
nix flake update
@$(MAKE) --no-print-directory rebuild
purge: purge:
sudo nix-collect-garbage -d sudo nix-collect-garbage -d
sudo /run/current-system/bin/switch-to-configuration boot sudo /run/current-system/bin/switch-to-configuration boot
check: check:
nix-instantiate '<nixpkgs/nixos>' -A system --dry-run nix flake check
hw: hw:
sudo nixos-generate-config --show-hardware-config > hardware-configuration.nix sudo nixos-generate-config --show-hardware-config > hardware-configuration.nix

22
common.nix Normal file
View File

@@ -0,0 +1,22 @@
{ config, pkgs, ... }:
{
imports = [
# Import Modules
./modules/boot.nix
./modules/networking.nix
./modules/locale.nix
./modules/desktop.nix
./modules/audio.nix
./modules/users.nix
./modules/programs.nix
./modules/hardware.nix
./modules/services.nix
./modules/home.nix
];
nix.settings.experimental-features = [ "nix-command" "flakes" ];
# xdg.portal.config.common.default = [ "gnome" ];
system.stateVersion = "25.11";
}

26
flake.nix Normal file
View File

@@ -0,0 +1,26 @@
{
description = "NixOS Configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
home-manager = {
url = "github:nix-community/home-manager/release-25.11";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, home-manager, ... }@inputs:
let
settings = import ./settings.nix;
system = "x86_64-linux";
in {
nixosConfigurations."${settings.hostname}" = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = { inherit inputs; };
modules = [
./configuration.nix
home-manager.nixosModules.home-manager
];
};
};
}

View File

@@ -1,7 +1,6 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
let let
home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz";
settings = import ../settings.nix; settings = import ../settings.nix;
homeModules = [ homeModules = [
./home/session.nix ./home/session.nix
@@ -16,10 +15,6 @@ let
]; ];
in in
{ {
imports = [
(import "${home-manager}/nixos")
];
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;