Compare commits
9 Commits
4467dea9eb
...
c42a8a7fdf
Author | SHA1 | Date | |
---|---|---|---|
c42a8a7fdf | |||
823d721ac7 | |||
eda9b91af4 | |||
581a63a196 | |||
c32c800237 | |||
d3200def3b | |||
15db902e00 | |||
a9bf46a138 | |||
6bca877aee |
54
flake.lock
generated
54
flake.lock
generated
@@ -20,11 +20,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750974272,
|
||||
"narHash": "sha256-VaeQzSzekMvP+/OhwNZP4kzs4paWk5+20N0MFLTn+cs=",
|
||||
"lastModified": 1750372185,
|
||||
"narHash": "sha256-lVBKxd9dsZOH1fA6kSE5WNnt8e+09fN+NL/Q3BjTWHY=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "aquamarine",
|
||||
"rev": "dd921421391e75793d0cc674dc15eca16b46a089",
|
||||
"rev": "7cef49d261cbbe537e8cb662485e76d29ac4cbca",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -78,11 +78,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750792728,
|
||||
"narHash": "sha256-Lh3dopA8DdY+ZoaAJPrtkZOZaFEJGSYjOdAYYgOPgE4=",
|
||||
"lastModified": 1749154018,
|
||||
"narHash": "sha256-gjN3j7joRvT3a8Zgcylnd4NFsnXeDBumqiu4HmY1RIg=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "366f00797b1efb70f2882d3da485e3c10fd3d557",
|
||||
"rev": "7aae0ee71a17b19708b93b3ed448a1a0952bf111",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -137,11 +137,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750621377,
|
||||
"narHash": "sha256-8u6b5oAdX0rCuoR8wFenajBRmI+mzbpNig6hSCuWUzE=",
|
||||
"lastModified": 1750371717,
|
||||
"narHash": "sha256-cNP+bVq8m5x2Rl6MTjwfQLCdwbVmKvTH7yqVc1SpiJM=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprgraphics",
|
||||
"rev": "b3d628d01693fb9bb0a6690cd4e7b80abda04310",
|
||||
"rev": "15c6f8f3a567fec9a0f732cd310a7ff456deef88",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -166,11 +166,11 @@
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751214576,
|
||||
"narHash": "sha256-88TyGNyk+uSsIXhTjS+YmL/4pMaH6M9NYkHadR7fEkU=",
|
||||
"lastModified": 1750589353,
|
||||
"narHash": "sha256-+3W7HI8ZzVqhjaws8++TFaUX8JP2eq9Uzn/KHA/qr0U=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland",
|
||||
"rev": "ee8978b961b9b02ed41bd7b6d1e91cc607b6b530",
|
||||
"rev": "dd33128c2f127f39c30cca72addb1970b8936d07",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -313,11 +313,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751061882,
|
||||
"narHash": "sha256-g9n8Vrbx+2JYM170P9BbvGHN39Wlkr4U+V2WLHQsXL8=",
|
||||
"lastModified": 1750371096,
|
||||
"narHash": "sha256-JB1IeJ41y7kWc/dPGV6RMcCUM0Xj2NEK26A2Ap7EM9c=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprutils",
|
||||
"rev": "4737241eaf8a1e51671a2a088518071f9a265cf4",
|
||||
"rev": "38f3a211657ce82a1123bf19402199b67a410f08",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -353,11 +353,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1751011381,
|
||||
"narHash": "sha256-krGXKxvkBhnrSC/kGBmg5MyupUUT5R6IBCLEzx9jhMM=",
|
||||
"lastModified": 1750365781,
|
||||
"narHash": "sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "30e2e2857ba47844aa71991daa6ed1fc678bcbb7",
|
||||
"rev": "08f22084e6085d19bcfb4be30d1ca76ecb96fe54",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -369,11 +369,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1751011381,
|
||||
"narHash": "sha256-krGXKxvkBhnrSC/kGBmg5MyupUUT5R6IBCLEzx9jhMM=",
|
||||
"lastModified": 1750365781,
|
||||
"narHash": "sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "30e2e2857ba47844aa71991daa6ed1fc678bcbb7",
|
||||
"rev": "08f22084e6085d19bcfb4be30d1ca76ecb96fe54",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -385,11 +385,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1751211869,
|
||||
"narHash": "sha256-1Cu92i1KSPbhPCKxoiVG5qnoRiKTgR5CcGSRyLpOd7Y=",
|
||||
"lastModified": 1750400657,
|
||||
"narHash": "sha256-3vkjFnxCOP6vm5Pm13wC/Zy6/VYgei/I/2DWgW4RFeA=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b43c397f6c213918d6cfe6e3550abfe79b5d1c51",
|
||||
"rev": "b2485d56967598da068b5a6946dadda8bfcbcd37",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -409,11 +409,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750779888,
|
||||
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
|
||||
"lastModified": 1749636823,
|
||||
"narHash": "sha256-WUaIlOlPLyPgz9be7fqWJA5iG6rHcGRtLERSCfUDne4=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
|
||||
"rev": "623c56286de5a3193aa38891a6991b28f9bab056",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@@ -16,7 +16,7 @@
|
||||
networking.hostName = "hurricane";
|
||||
|
||||
# Network security specific to host
|
||||
networking.firewall.allowedTCPPorts = [];
|
||||
networking.firewall.allowedTCPPorts = [3000];
|
||||
networking.firewall.allowedUDPPorts = [];
|
||||
|
||||
# Intel GPU support
|
||||
|
@@ -13,9 +13,6 @@
|
||||
./hm/hyprpaper.nix
|
||||
];
|
||||
|
||||
# Encrypted drive
|
||||
boot.initrd.luks.devices."luks-1728f038-43a6-4e0d-b7dd-19a4c1083605".device = "/dev/disk/by-uuid/1728f038-43a6-4e0d-b7dd-19a4c1083605";
|
||||
|
||||
networking.hostName = "wildfire";
|
||||
|
||||
# AMD GPU support
|
||||
|
@@ -22,7 +22,9 @@
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."luks-be9995ed-6b36-4f4d-a374-28a85fc50ed8".device = "/dev/disk/by-uuid/be9995ed-6b36-4f4d-a374-28a85fc50ed8";
|
||||
# Encrypted drive
|
||||
boot.initrd.luks.devices."luks-1728f038-43a6-4e0d-b7dd-19a4c1083605".device = "/dev/disk/by-uuid/1728f038-43a6-4e0d-b7dd-19a4c1083605"; # SWAP partition
|
||||
boot.initrd.luks.devices."luks-be9995ed-6b36-4f4d-a374-28a85fc50ed8".device = "/dev/disk/by-uuid/be9995ed-6b36-4f4d-a374-28a85fc50ed8"; # main partition
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/B7CE-982B";
|
||||
|
@@ -5,7 +5,9 @@
|
||||
pkgs-unstable,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
}: let
|
||||
colors = import ./gruvbox-theme.nix;
|
||||
in {
|
||||
imports = [
|
||||
# Import Home Manager as a NixOS module for user-specific configurations
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
@@ -65,9 +67,25 @@
|
||||
# BOOT CONFIGURATION
|
||||
# ================================
|
||||
boot = {
|
||||
# Use systemd-boot (modern UEFI bootloader)
|
||||
loader.systemd-boot.enable = true;
|
||||
loader.efi.canTouchEfiVariables = true;
|
||||
loader = {
|
||||
efi = {
|
||||
canTouchEfiVariables = true;
|
||||
efiSysMountPoint = "/boot";
|
||||
};
|
||||
# Use GRUB (modern UEFI bootloader)
|
||||
grub = {
|
||||
enable = true;
|
||||
efiSupport = true;
|
||||
device = "nodev";
|
||||
enableCryptodisk = false; # ← GRUB lives on the unencrypted ESP
|
||||
configurationLimit = 15; # Keep up to 15 generations of GRUB configuration files
|
||||
memtest86.enable = true; # Enable memtest86 for hardware testing
|
||||
|
||||
# Styling
|
||||
backgroundColor = "${colors.gruvbox.bg0}";
|
||||
#splashImage = "";
|
||||
};
|
||||
};
|
||||
# Always use the latest kernel for best hardware support
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
};
|
||||
@@ -161,8 +179,24 @@
|
||||
# Allow installation of proprietary/unfree software
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# Enable modern Nix features (flakes and new CLI)
|
||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
||||
nix = {
|
||||
settings.experimental-features = ["nix-command" "flakes"]; # Enable modern Nix features (flakes and new CLI)
|
||||
|
||||
# Optimise the Nix store automatically to recover space
|
||||
optimise = {
|
||||
automatic = true;
|
||||
dates = ["03:45"];
|
||||
persistent = true; # Run missed optimisations
|
||||
};
|
||||
|
||||
# Garbage collect the Nix store automatically to recover space
|
||||
gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 60d";
|
||||
persistent = true; # Run missed GC
|
||||
};
|
||||
};
|
||||
|
||||
# ================================
|
||||
# AUTOMATIC MAINTENANCE
|
||||
|
@@ -2,13 +2,6 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Days of nix generations to keep
|
||||
KEEP_DAYS=60
|
||||
# extra buffer before we trigger a GC
|
||||
BUFFER_DAYS=30
|
||||
# minimum number of generations to keep
|
||||
KEEP_MIN=5
|
||||
|
||||
# Check for force flag
|
||||
FORCE_REBUILD=false
|
||||
if [[ "$1" == "-f" || "$1" == "--force" ]]; then
|
||||
@@ -67,18 +60,3 @@ current=$(nixos-rebuild list-generations | grep current)
|
||||
|
||||
# Commit all changes witih the generation metadata
|
||||
git commit -am "$NIXOS_HOST: $current"
|
||||
|
||||
# Clean up old generations if conditions are met
|
||||
gens=$(nixos-rebuild list-generations | tail -n +2)
|
||||
# If there are less than KEEP_MIN generations, exit
|
||||
(( $(wc -l <<<"$gens") <= KEEP_MIN )) && exit 0
|
||||
|
||||
# Get the oldest generation
|
||||
old=$(awk 'END{print $2" "$3}' <<<"$gens")
|
||||
# Calculate the age of the oldest generation in days
|
||||
age=$(( ( $(date +%s) - $(date -d "$old" +%s) )/86400 ))
|
||||
# If the age is greater than KEEP_DAYS+BUFFER_DAYS, delete the oldest generation
|
||||
(( age > KEEP_DAYS+BUFFER_DAYS )) || exit 0
|
||||
sudo nix-collect-garbage --delete-older-than ${KEEP_DAYS}d &>logs/nixos-gc.log || (cat logs/nixos-gc.log | grep --color error && exit 1)
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user