diff --git a/flake.lock b/flake.lock index 40308bd..df930f5 100644 --- a/flake.lock +++ b/flake.lock @@ -3,16 +3,16 @@ "brew-src": { "flake": false, "locked": { - "lastModified": 1711985568, - "narHash": "sha256-VLeP9HGQwfkiuHDp648PXGCkogr3ktYm0q9Yj+i0lGQ=", + "lastModified": 1716195221, + "narHash": "sha256-u+zjC7efKD3gBD9aKXsUTEhRhBQhYlP+KPFp1QbsgOo=", "owner": "Homebrew", "repo": "brew", - "rev": "bd1155be8f50998429a795c15a69c8fe75250510", + "rev": "e0bc557e7b991cb23583679e1cf1c8a92b793aeb", "type": "github" }, "original": { "owner": "Homebrew", - "ref": "4.2.16", + "ref": "4.3.1", "repo": "brew", "type": "github" } @@ -24,11 +24,11 @@ ] }, "locked": { - "lastModified": 1715222527, - "narHash": "sha256-bRmQjmjgle7ENv3gWwQMuL48DU2EZd4xkauiXQIXzas=", + "lastModified": 1717354014, + "narHash": "sha256-WwQo3TGnEbpp3tPqHHqqiXK3jXD9oykdhKaxrv9UzKs=", "owner": "aksiksi", "repo": "compose2nix", - "rev": "d20f7ace1e8d51b537ea02b67a0ff02b9c6f26ff", + "rev": "3cc5f141667c1dd434570ab6cb2dbac5739edc52", "type": "github" }, "original": { @@ -61,11 +61,11 @@ ] }, "locked": { - "lastModified": 1716168343, - "narHash": "sha256-82oT27w9smpItZ+PyN2C0PjIwZYbIocwXSM4u1igXuc=", + "lastModified": 1717637172, + "narHash": "sha256-geTO9YL1V9zYGxupuZvKFWxh6II9sH2bjI1dmEVhVYQ=", "owner": "nix-community", "repo": "disko", - "rev": "6f01b9710bc4d3bf006eb8df928b4b15e0430901", + "rev": "713aa3df481782719aed4d8c20ad31a9effe3564", "type": "github" }, "original": { @@ -97,11 +97,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -133,16 +133,16 @@ ] }, "locked": { - "lastModified": 1715381426, - "narHash": "sha256-wPuqrAQGdv3ISs74nJfGb+Yprm23U/rFpcHFFNWgM94=", + "lastModified": 1717527182, + "narHash": "sha256-vWSkg6AMok1UUQiSYVdGMOXKD2cDFnajITiSi0Zjd1A=", "owner": "nix-community", "repo": "home-manager", - "rev": "ab5542e9dbd13d0100f8baae2bc2d68af901f4b4", + "rev": "845a5c4c073f74105022533907703441e0464bc3", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-23.11", + "ref": "release-24.05", "repo": "home-manager", "type": "github" } @@ -154,11 +154,11 @@ ] }, "locked": { - "lastModified": 1716204319, - "narHash": "sha256-3KL5dRGk89SUaeODFO6B9lxymCVav3UzqsNxOzAbwVY=", + "lastModified": 1716993688, + "narHash": "sha256-vo5k2wQekfeoq/2aleQkBN41dQiQHNTniZeVONWiWLs=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "e1cacc63e6e324ae95e65e8aaea62dec74686208", + "rev": "c0d5b8c54d6828516c97f6be9f2d00c63a363df4", "type": "github" }, "original": { @@ -172,11 +172,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1688307440, - "narHash": "sha256-7PTjbN+/+b799YN7Tk2SS5Vh8A0L3gBo8hmB7Y0VXug=", + "lastModified": 1716329735, + "narHash": "sha256-ap51w+VqG21vuzyQ04WrhI2YbWHd3UGz0e7dc/QQmoA=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "b06bab83bdf285ea0ae3c8e145a081eb95959047", + "rev": "eac4f25028c1975a939c8f8fba95c12f8a25e01c", "type": "github" }, "original": { @@ -208,11 +208,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1712182779, - "narHash": "sha256-DchWIKi4c7Jl7CJXVzOxVetxy+SqnlAY3QuUNy8z+aE=", + "lastModified": 1716838497, + "narHash": "sha256-tkceXNn87z+uC08gvQCl7olSCS782EWdflgq0FkSKiw=", "owner": "zhaofengli-wip", "repo": "nix-homebrew", - "rev": "445f7989e096fb90902eed4256b04d8b57c8b358", + "rev": "31e9c8105a3ffdc03829c8c195d385500760d309", "type": "github" }, "original": { @@ -221,6 +221,22 @@ "type": "github" } }, + "nixos-hardware": { + "locked": { + "lastModified": 1717574423, + "narHash": "sha256-cz3P5MZffAHwL2IQaNzsqUBsJS+u0J/AAwArHMAcCa0=", + "owner": "NixOS", + "repo": "nixos-hardware", + "rev": "d6c6cf6f5fead4057d8fb2d5f30aa8ac1727f177", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "master", + "repo": "nixos-hardware", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1687274257, @@ -254,11 +270,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1716061101, - "narHash": "sha256-H0eCta7ahEgloGIwE/ihkyGstOGu+kQwAiHvwVoXaA0=", + "lastModified": 1717265169, + "narHash": "sha256-IITcGd6xpNoyq9SZBigCkv4+qMHSqot0RDPR4xsZ2CA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e7cc61784ddf51c81487637b3031a6dd2d6673a2", + "rev": "3b1b4895b2c5f9f5544d02132896aeb9ceea77bc", "type": "github" }, "original": { @@ -281,11 +297,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1715707461, - "narHash": "sha256-I/zNUXjd+3UmKG8qFRFrpXpWUTlIeqN8Tp5/e3aQccs=", + "lastModified": 1717095070, + "narHash": "sha256-KCPHcPHmt0RaZ0NBJBYacWtNV62/REd7HrPsrw6DTTI=", "owner": "stackbuilders", "repo": "nixpkgs-terraform", - "rev": "8d7d08686e54bd75d86642b3abe1d6c7ef41a0e9", + "rev": "437209631ec33193afdffcf41a657cde5e68f35f", "type": "github" }, "original": { @@ -296,11 +312,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1716190602, - "narHash": "sha256-xYRimrR0duWvokWQEvB87bSsICeCvvX9DxpUOzCfsDE=", + "lastModified": 1717646450, + "narHash": "sha256-KE+UmfSVk5PG8jdKdclPVcMrUB8yVZHbsjo7ZT1Bm3c=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5a5ac83292c7842072318f57d68a48474f8bd34d", + "rev": "818dbe2f96df233d2041739d6079bb616d3e5597", "type": "github" }, "original": { @@ -312,11 +328,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1688049487, - "narHash": "sha256-100g4iaKC9MalDjUW9iN6Jl/OocTDtXdeAj7pEGIRh4=", + "lastModified": 1716330097, + "narHash": "sha256-8BO3B7e3BiyIDsaKA0tY8O88rClYRTjvAp66y+VBUeU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4bc72cae107788bf3f24f30db2e2f685c9298dc9", + "rev": "5710852ba686cc1fd0d3b8e22b3117d43ba374c2", "type": "github" }, "original": { @@ -328,16 +344,16 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1716218643, - "narHash": "sha256-i/E7gzQybvcGAYDRGDl39WL6yVk30Je/NXypBz6/nmM=", + "lastModified": 1717555607, + "narHash": "sha256-WZ1s48OODmRJ3DHC+I/DtM3tDRuRJlNqMvxvAPTD7ec=", "owner": "nixos", "repo": "nixpkgs", - "rev": "a8695cbd09a7ecf3376bd62c798b9864d20f86ee", + "rev": "0b8e7a1ae5a94da2e1ee3f3030a32020f6254105", "type": "github" }, "original": { "owner": "nixos", - "ref": "release-23.11", + "ref": "nixos-24.05", "repo": "nixpkgs", "type": "github" } @@ -351,6 +367,7 @@ "nix-darwin": "nix-darwin", "nix-flatpak": "nix-flatpak", "nix-homebrew": "nix-homebrew", + "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs_3", "nixpkgs-terraform": "nixpkgs-terraform", "nixpkgs-unstable": "nixpkgs-unstable", @@ -365,11 +382,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1716087663, - "narHash": "sha256-zuSAGlx8Qk0OILGCC2GUyZ58/SJ5R3GZdeUNQ6IS0fQ=", + "lastModified": 1717455931, + "narHash": "sha256-8Q6mKSsto8gaGczXd4G0lvawdAYLa5Dlh3/g4hl5CaM=", "owner": "mic92", "repo": "sops-nix", - "rev": "0bf1808e70ce80046b0cff821c019df2b19aabf5", + "rev": "d4555e80d80d2fa77f0a44201ca299f9602492a0", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index dc2b467..9776b92 100644 --- a/flake.nix +++ b/flake.nix @@ -3,7 +3,7 @@ inputs = { # Where we get most of our software. Giant mono repo with recipes # called derivations that say how to build software. - nixpkgs.url = "github:nixos/nixpkgs/release-23.11"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable"; compose2nix = { @@ -25,7 +25,7 @@ # Manages things in home directory home-manager = { - url = "github:nix-community/home-manager/release-23.11"; + url = "github:nix-community/home-manager/release-24.05"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -41,6 +41,8 @@ # Manage Homebrew itself nix-homebrew.url = "github:zhaofengli-wip/nix-homebrew"; + nixos-hardware.url = "github:NixOS/nixos-hardware/master"; + nixpkgs-terraform = { url = "github:stackbuilders/nixpkgs-terraform"; inputs.nixpkgs.follows = "nixpkgs"; @@ -56,10 +58,10 @@ }; # end inputs outputs = inputs@{ self, nixpkgs, nixpkgs-unstable, compose2nix, disko, genebean-omp-themes, - home-manager, nix-darwin, nix-flatpak, nix-homebrew, nixpkgs-terraform, sops-nix, ... }: let + home-manager, nix-darwin, nix-flatpak, nix-homebrew, nixos-hardware, nixpkgs-terraform, sops-nix, ... }: let # creates a macOS system config - darwinHostConfig = system: hostname: username: nix-darwin.lib.darwinSystem { + darwinHostConfig = { system, hostname, username, additionalModules, additionalSpecialArgs }: nix-darwin.lib.darwinSystem { pkgs = import nixpkgs { inherit system; config = { @@ -68,7 +70,7 @@ }; overlays = [ nixpkgs-terraform.overlays.default ]; }; - specialArgs = { inherit inputs hostname username; }; + specialArgs = { inherit inputs hostname username; } // additionalSpecialArgs; modules = [ nix-homebrew.darwinModules.nix-homebrew { nix-homebrew = { @@ -92,11 +94,11 @@ ./modules/system/common/all-darwin.nix # system-wide stuff ./modules/hosts/darwin/${hostname} # host specific stuff - ]; # end modules + ] ++ additionalModules; # end modules }; # end darwinSystem # creates a nixos system config - nixosHostConfig = system: hostname: username: nixpkgs.lib.nixosSystem { + nixosHostConfig = { system, hostname, username, additionalModules, additionalSpecialArgs }: nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs compose2nix hostname username; pkgs = import nixpkgs { inherit system; @@ -106,7 +108,7 @@ }; overlays = [ nixpkgs-terraform.overlays.default ]; }; - }; + } // additionalSpecialArgs; modules = [ disko.nixosModules.disko @@ -126,10 +128,10 @@ sops-nix.nixosModules.sops # system wide secrets management ./modules/system/common/all-nixos.nix # system-wide stuff ./modules/hosts/nixos/${hostname} # host specific stuff - ]; + ] ++ additionalModules; }; # end nixosSystem - linuxHomeConfig = system: hostname: username: home-manager.lib.homeManagerConfiguration { + linuxHomeConfig = { system, hostname, username, additionalModules, additionalSpecialArgs }: home-manager.lib.homeManagerConfiguration { extraSpecialArgs = { inherit genebean-omp-themes hostname username; pkgs = import nixpkgs { inherit system; @@ -139,7 +141,7 @@ }; overlays = [ nixpkgs-terraform.overlays.default ]; }; - }; + } // additionalSpecialArgs; modules = [ ./modules/home-manager/hosts/${hostname}/${username}.nix { @@ -149,24 +151,80 @@ }; } sops-nix.homeManagerModules.sops - ]; + ] ++ additionalModules; }; # end homeManagerConfiguration in { - darwinConfigurations = { - AirPuppet = darwinHostConfig "x86_64-darwin" "AirPuppet" "gene"; - Blue-Rock = darwinHostConfig "x86_64-darwin" "Blue-Rock" "gene.liverman"; - mightymac = darwinHostConfig "aarch64-darwin" "mightymac" "gene.liverman"; + # Darwin (macOS) hosts + darwinConfigurations = { + AirPuppet = darwinHostConfig { + system = "x86_64-darwin"; + hostname = "AirPuppet"; + username = "gene"; + additionalModules = []; + additionalSpecialArgs = {}; }; - - nixosConfigurations = { - hetznix01 = nixosHostConfig "aarch64-linux" "hetznix01" "gene"; - nixnuc = nixosHostConfig "x86_64-linux" "nixnuc" "gene"; - rainbow-planet = nixosHostConfig "x86_64-linux" "rainbow-planet" "gene"; + Blue-Rock = darwinHostConfig { + system = "x86_64-darwin"; + hostname = "Blue-Rock"; + username = "gene.liverman"; + additionalModules = []; + additionalSpecialArgs = {}; }; + mightymac = darwinHostConfig { + system = "aarch64-darwin"; + hostname = "mightymac"; + username = "gene.liverman"; + additionalModules = []; + additionalSpecialArgs = {}; + }; + }; # end darwinConfigurations - homeConfigurations = { - gene = linuxHomeConfig "x86_64-linux" "mini-watcher" "gene"; - }; + # NixOS hosts + nixosConfigurations = { + # bigboy = nixosHostConfig { + # system = "x86_64-linux"; + # hostname = "bigbox"; + # username = "gene"; + # additionalModules = [ + # nixos-hardware.nixosModules.lenovo-thinkpad-p52 + # ]; + # additionalSpecialArgs = {}; + # }; + hetznix01 = nixosHostConfig { + system = "aarch64-linux"; + hostname = "hetznix01"; + username = "gene"; + additionalModules = []; + additionalSpecialArgs = {}; + }; + nixnuc = nixosHostConfig { + system = "x86_64-linux"; + hostname = "nixnuc"; + username = "gene"; + additionalModules = []; + additionalSpecialArgs = {}; + }; + rainbow-planet = nixosHostConfig { + system = "x86_64-linux"; + hostname = "rainbow-planet"; + username = "gene"; + additionalModules = [ + nixos-hardware.nixosModules.dell-xps-13-9360 + ]; + additionalSpecialArgs = {}; + }; + }; # end nixosConfigurations + + # Home Manager (only) users + homeConfigurations = { + gene = linuxHomeConfig { + system = "x86_64-linux"; + hostname = "mini-watcher"; + username = "gene"; + additionalModules = []; + additionalSpecialArgs = {}; + }; + }; # end homeConfigurations }; } diff --git a/modules/home-manager/common/all-cli.nix b/modules/home-manager/common/all-cli.nix index 198231d..1f80631 100644 --- a/modules/home-manager/common/all-cli.nix +++ b/modules/home-manager/common/all-cli.nix @@ -247,7 +247,7 @@ in { zsh = { enable = true; enableCompletion = true; - enableAutosuggestions = true; + autosuggestion.enable = true; history.save = 1000000; history.size = 1000000; initExtra = '' diff --git a/modules/hosts/darwin/mightymac/default.nix b/modules/hosts/darwin/mightymac/default.nix index daeeb46..fe5495b 100644 --- a/modules/hosts/darwin/mightymac/default.nix +++ b/modules/hosts/darwin/mightymac/default.nix @@ -27,7 +27,10 @@ "kind" "kubernetes-cli" "lima" + "opentofu" + "node_exporter" "podman" + "telegraf" ]; casks = [ "asana" diff --git a/modules/hosts/nixos/rainbow-planet/default.nix b/modules/hosts/nixos/rainbow-planet/default.nix index 340404a..3f48967 100644 --- a/modules/hosts/nixos/rainbow-planet/default.nix +++ b/modules/hosts/nixos/rainbow-planet/default.nix @@ -14,6 +14,8 @@ }; }; + environment.sessionVariables.NIXOS_OZONE_WL = "1"; + environment.systemPackages = with pkgs; [ # host specific apps boinc @@ -64,6 +66,8 @@ }; hyprland.enable = true; + ssh.askPassword = "ssh-askpass"; + # common programs that really should be in another file # required for setting to be picked up by xfce4-terminal xfconf.enable = true; @@ -71,6 +75,11 @@ services = { boinc.enable = true; + desktopManager.plasma6.enable = true; + displayManager.sddm = { + enable = true; + wayland.enable = true; + }; fwupd.enable = true; gnome.gnome-keyring.enable = true; # Provides secret storage gvfs.enable = true; # Used by Nautilus @@ -85,19 +94,22 @@ ]; useRoutingFeatures = "client"; }; + thermald.enable = true; xserver = { enable = true; # Enable the X11 windowing system. # Configure keymap in X11 - layout = "us"; - xkbVariant = ""; - - displayManager = { - gdm = { - enable = true; - wayland = true; - }; + xkb = { + layout = "us"; + variant = ""; }; + + # displayManager = { + # gdm = { + # enable = true; + # wayland = true; + # }; + # }; desktopManager.gnome.enable = true; }; }; diff --git a/modules/hosts/nixos/rainbow-planet/hardware-configuration.nix b/modules/hosts/nixos/rainbow-planet/hardware-configuration.nix index 4e6b1a3..e72494d 100644 --- a/modules/hosts/nixos/rainbow-planet/hardware-configuration.nix +++ b/modules/hosts/nixos/rainbow-planet/hardware-configuration.nix @@ -11,6 +11,10 @@ boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-intel" ]; + boot.kernelParams = [ + "i915.enable_fbc=1" + "i915.enable_psr=2" + ]; boot.extraModulePackages = [ ]; fileSystems."/" = diff --git a/modules/system/common/all-nixos.nix b/modules/system/common/all-nixos.nix index 4e9bed4..971f938 100644 --- a/modules/system/common/all-nixos.nix +++ b/modules/system/common/all-nixos.nix @@ -24,7 +24,7 @@ ]; }; - fonts.fontDir.enable = false; + fonts.fontDir.enable = true; fonts.packages = with pkgs; [ font-awesome (nerdfonts.override {