diff --git a/flake.nix b/flake.nix index 50b132e..b978fb0 100644 --- a/flake.nix +++ b/flake.nix @@ -124,28 +124,22 @@ }) inputs.golink.overlay ]; + pkgs = import nixpkgs { + inherit overlays; + system = "x86_64-linux"; + config.allowUnfree = true; + }; userSecret = path: { file = path; owner = username; }; - commonConfig = {gui ? true}: {config, ...}: { + commonConfig = {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; @@ -166,9 +160,8 @@ }; }; workModules = [ - home-manager.nixosModules.home-manager agenix.nixosModules.default - (commonConfig {}) + commonConfig ({pkgs, ...}: { config = { nixpkgs.overlays = [ @@ -176,10 +169,6 @@ 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; @@ -204,6 +193,40 @@ 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"; @@ -233,29 +256,26 @@ "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 0cfb085..1638805 100644 --- a/justfile +++ b/justfile @@ -11,6 +11,12 @@ rebuild *args: 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 aac7688..956ce78 100644 --- a/machines/earlgrey/hardware.nix +++ b/machines/earlgrey/hardware.nix @@ -1,31 +1,35 @@ # 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, ... }: - { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") ../common/cifs.nix - ]; + config, + lib, + modulesPath, + ... +}: { + 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