diff --git a/flake.nix b/flake.nix index b978fb079b5ea6c2517f9fc7b78e3b54221a9f5e..50b132e138ceaad1dcc8fe9e812193860cabb3e4 100644 --- a/flake.nix +++ b/flake.nix @@ -124,22 +124,28 @@ templ = inputs.templ.packages.${prev.system}.templ; }) inputs.golink.overlay ]; - pkgs = import nixpkgs { - inherit overlays; - system = "x86_64-linux"; - config.allowUnfree = true; - }; userSecret = path: { file = path; owner = username; }; - commonConfig = {config, ...}: { + commonConfig = {gui ? true}: {config, ...}: { config = { nixpkgs.overlays = overlays; # TODO Remove when apps are updated nixpkgs.config.permittedInsecurePackages = [ "electron-25.9.0" ]; + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + users.${username}.imports = + if gui + then [./apps/gui] + else [./apps/nogui]; + extraSpecialArgs = { + flakePath = "/home/${username}/.config/nixpkgs"; + }; + }; age.secrets = { ssh-config = userSecret ./secrets/shared/ssh-config.age; ssh-config-work = userSecret ./secrets/shared/ssh-config-work.age; @@ -160,8 +166,9 @@ }; }; }; workModules = [ + home-manager.nixosModules.home-manager agenix.nixosModules.default - commonConfig + (commonConfig {}) ({pkgs, ...}: { config = { nixpkgs.overlays = [ @@ -169,6 +176,10 @@ (_: _: { py39 = import nixpkgs-py39 {inherit (pkgs) system;}; }) ]; + home-manager.users.${username}.programs = { + git.package = pkgs.gitSVN; + firefox.profiles.default.bookmarks = [(import ./apps/gui/firefox/work.nix)]; + }; age.secrets = { netrc = { file = ./secrets/work/netrc.age; @@ -193,40 +204,6 @@ ]; username = "jolheiser"; in { - homeConfigurations = let - commonModules = [ - { - home = { - inherit username; - homeDirectory = "/home/${username}"; - }; - } - ./apps/gui - ]; - in { - "jolheiser" = home-manager.lib.homeManagerConfiguration { - inherit pkgs; - modules = commonModules; - }; - "work" = home-manager.lib.homeManagerConfiguration { - inherit pkgs; - modules = - commonModules - ++ [ - { - nixpkgs.overlays = [ - (_: _: { - py39 = import nixpkgs-py39 {inherit (pkgs) system;}; - }) - ]; - programs = { - git.package = pkgs.gitSVN; - firefox.profiles.default.bookmarks = [(import ./apps/gui/firefox/work.nix)]; - }; - } - ]; - }; - }; nixosConfigurations = { "chai" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; @@ -256,26 +233,29 @@ }; "matcha" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ + home-manager.nixosModules.home-manager agenix.nixosModules.default ./machines/matcha - commonConfig + (commonConfig {}) ]; }; "genmaicha" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ + home-manager.nixosModules.home-manager nixos-hardware.nixosModules.framework-13-7040-amd agenix.nixosModules.default ./machines/genmaicha - commonConfig + (commonConfig {}) ]; }; "sencha" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ + home-manager.nixosModules.home-manager agenix.nixosModules.default ./machines/sencha - commonConfig + (commonConfig {}) ]; }; }; diff --git a/justfile b/justfile index 1638805a0c9e2b8f3fc235f898a6a3fb99203f3d..0cfb0855951c9e4507091c294bf017497c8ecf3b 100644 --- a/justfile +++ b/justfile @@ -11,12 +11,6 @@ # Rebuild the current machine switch *args: @just rebuild switch {{args}} -hm: - @home-manager switch --flake . - -work: - @home-manager switch --flake '.#work' - # Rebuild the current machine for next boot boot *args: @just rebuild boot {{args}} diff --git a/machines/earlgrey/hardware.nix b/machines/earlgrey/hardware.nix index 956ce789db191da3100a3258600b3c4e6630c7ef..aac7688fdbbfc1dda2869cfac580272f6bb01135 100644 --- a/machines/earlgrey/hardware.nix +++ b/machines/earlgrey/hardware.nix @@ -1,35 +1,31 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + { - config, - lib, - modulesPath, - ... -}: { - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ../common/cifs.nix - ]; + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") ../common/cifs.nix + ]; - boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod"]; - boot.initrd.kernelModules = []; - boot.kernelModules = ["kvm-amd"]; - boot.extraModulePackages = []; + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; - fileSystems."/" = { - device = "/dev/disk/by-uuid/e2274508-9989-4f6b-9bcf-a0d246f292f9"; - fsType = "ext4"; - }; + fileSystems."/" = + { device = "/dev/disk/by-uuid/e2274508-9989-4f6b-9bcf-a0d246f292f9"; + fsType = "ext4"; + }; boot.initrd.luks.devices."luks-1121cd25-7c4c-47ee-b04a-2cab0cd251ea".device = "/dev/disk/by-uuid/1121cd25-7c4c-47ee-b04a-2cab0cd251ea"; - fileSystems."/boot" = { - device = "/dev/disk/by-uuid/86CA-6DF6"; - fsType = "vfat"; - }; + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/86CA-6DF6"; + fsType = "vfat"; + }; - swapDevices = []; + swapDevices = [ ]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's