diff --git a/enviroments/common/default.nix b/enviroments/common/default.nix index 8b18f78..cd8d588 100644 --- a/enviroments/common/default.nix +++ b/enviroments/common/default.nix @@ -4,7 +4,7 @@ ... }: { imports = [ - ../../users + ./users ]; nix = { diff --git a/enviroments/common/users/default.nix b/enviroments/common/users/default.nix new file mode 100644 index 0000000..ab0baa9 --- /dev/null +++ b/enviroments/common/users/default.nix @@ -0,0 +1,9 @@ +{...}: { + imports = [ + ./leyla + ./ester + ./eve + ]; + + users.mutableUsers = false; +} diff --git a/users/ester/default.nix b/enviroments/common/users/ester/default.nix similarity index 98% rename from users/ester/default.nix rename to enviroments/common/users/ester/default.nix index ec5449c..0ebd7d1 100644 --- a/users/ester/default.nix +++ b/enviroments/common/users/ester/default.nix @@ -1,7 +1,6 @@ { lib, config, - pkgs, inputs, ... }: let diff --git a/users/eve/default.nix b/enviroments/common/users/eve/default.nix similarity index 98% rename from users/eve/default.nix rename to enviroments/common/users/eve/default.nix index 46c9a8a..fa40112 100644 --- a/users/eve/default.nix +++ b/enviroments/common/users/eve/default.nix @@ -1,7 +1,6 @@ { lib, config, - pkgs, inputs, ... }: let diff --git a/users/leyla/default.nix b/enviroments/common/users/leyla/default.nix similarity index 100% rename from users/leyla/default.nix rename to enviroments/common/users/leyla/default.nix diff --git a/flake.nix b/flake.nix index 4485df3..4ebc7ec 100644 --- a/flake.nix +++ b/flake.nix @@ -34,7 +34,7 @@ }; # firefox-addons = { - # url = "gitlab.com:rycee/nur-expressions?dir=pkgs/firefox-addons"; + # url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; # inputs.nixpkgs.follows = "nixpkgs"; # }; @@ -59,32 +59,13 @@ }; }; - outputs = { - nixpkgs, - disko, - # impermanence, - nixos-hardware, - home-manager, - lix-module, - ... - } @ inputs: let - home-manager-config = { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.backupFileExtension = "backup"; - home-manager.extraSpecialArgs = {inherit inputs;}; - }; - systems = [ - "aarch64-darwin" - "aarch64-linux" - "x86_64-darwin" - "x86_64-linux" - ]; - forEachSystem = nixpkgs.lib.genAttrs systems; - forEachPkgs = lambda: forEachSystem (system: lambda nixpkgs.legacyPackages.${system}); - - callPackage = nixpkgs.lib.callPackageWith (nixpkgs // {lib = lib;}); - lib = callPackage ./util {} // nixpkgs.lib; + outputs = {...} @ inputs: let + util = import ./util {inherit inputs;}; + forEachPkgs = util.forEachPkgs; + mkSystem = util.mkSystem; + # mkHome = util.mkHome; + # callPackage = nixpkgs.lib.callPackageWith (nixpkgs // {lib = lib;}); + # lib = callPackage ./lib {} // nixpkgs.lib; in { packages = forEachPkgs (import ./pkgs); @@ -108,44 +89,15 @@ }; }); + # homeConfigurations = { + # "leyla@horizon" = mkHome "leyla" "horizon"; # "x86_64-linux" ./homes/leyla; + # }; + nixosConfigurations = { # Leyla Laptop - horizon = nixpkgs.lib.nixosSystem { - specialArgs = {inherit inputs lib;}; - modules = [ - lix-module.nixosModules.default - ./overlays - home-manager.nixosModules.home-manager - home-manager-config - ./hosts/horizon/configuration.nix - nixos-hardware.nixosModules.framework-11th-gen-intel - ]; - }; - # Leyla Desktop - twilight = nixpkgs.lib.nixosSystem { - specialArgs = {inherit inputs lib;}; - modules = [ - lix-module.nixosModules.default - ./overlays - home-manager.nixosModules.home-manager - home-manager-config - ./hosts/twilight/configuration.nix - ]; - }; - # NAS Service - defiant = nixpkgs.lib.nixosSystem { - specialArgs = {inherit inputs lib;}; - modules = [ - lix-module.nixosModules.default - ./overlays - # impermanence.nixosModules.impermanence - disko.nixosModules.disko - home-manager.nixosModules.home-manager - home-manager-config - ./hosts/defiant/disko-config.nix - ./hosts/defiant/configuration.nix - ]; - }; + horizon = mkSystem "horizon"; + twilight = mkSystem "twilight"; + defiant = mkSystem "defiant"; }; }; } diff --git a/homes/default.nix b/homes/default.nix new file mode 100644 index 0000000..8b44126 --- /dev/null +++ b/homes/default.nix @@ -0,0 +1,5 @@ +{ + leyla = import ./leyla; + ester = import ./ester; + eve = import ./eve; +} diff --git a/users/ester/home.nix b/homes/ester/default.nix similarity index 99% rename from users/ester/home.nix rename to homes/ester/default.nix index 773c13c..3edfca4 100644 --- a/users/ester/home.nix +++ b/homes/ester/default.nix @@ -1,7 +1,6 @@ { pkgs, lib, - config, osConfig, ... }: let diff --git a/users/eve/home.nix b/homes/eve/default.nix similarity index 100% rename from users/eve/home.nix rename to homes/eve/default.nix diff --git a/users/leyla/home.nix b/homes/leyla/default.nix similarity index 100% rename from users/leyla/home.nix rename to homes/leyla/default.nix diff --git a/homes/leyla/firefox.nix b/homes/leyla/firefox.nix new file mode 100644 index 0000000..b9c2153 --- /dev/null +++ b/homes/leyla/firefox.nix @@ -0,0 +1,304 @@ +{ + lib, + osConfig, + # buildFirefoxXpiAddon, + pkgs, + inputs, + ... +}: let + cfg = osConfig.nixos.users.leyla; +in { + # programs.firefox = { + # enable = cfg.isDesktopUser; + # profiles.leyla = { + + # settings = { + # "browser.search.defaultenginename" = "Searx"; + # "browser.search.order.1" = "Searx"; + # }; + + # search = { + # force = true; + # default = "Searx"; + # engines = { + # "Nix Packages" = { + # urls = [{ + # template = "https://search.nixos.org/packages"; + # params = [ + # { name = "type"; value = "packages"; } + # { name = "query"; value = "{searchTerms}"; } + # ]; + # }]; + # icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + # definedAliases = [ "@np" ]; + # }; + # "NixOS Wiki" = { + # urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }]; + # iconUpdateURL = "https://nixos.wiki/favicon.png"; + # updateInterval = 24 * 60 * 60 * 1000; # every day + # definedAliases = [ "@nw" ]; + # }; + # "Searx" = { + # urls = [{ template = "https://search.jan-leila.com/?q={searchTerms}"; }]; + # iconUpdateURL = "https://nixos.wiki/favicon.png"; + # updateInterval = 24 * 60 * 60 * 1000; # every day + # definedAliases = [ "@searx" ]; + # }; + # }; + # }; + + # extentions = with inputs.firefox-addons.packages."x86_64-linux"; [ + # bitwarden + # terms-of-service-didnt-read + # multi-account-containers + # shinigami-eyes + + # ublock-origin + # sponsorblock + # dearrow + # df-youtube + # return-youtube-dislikes + + # privacy-badger + # decentraleyes + # clearurls + # localcdn + + # snowflake + + # deutsch-de-language-pack + # dictionary-german + + # # ( + # # buildFirefoxXpiAddon rec { + # # pname = "italiano-it-language-pack"; + # # version = "132.0.20241110.231641"; + # # addonId = "langpack-it@firefox.mozilla.org"; + # # url = "https://addons.mozilla.org/firefox/downloads/file/4392453/italiano_it_language_pack-${version}.xpi"; + # # sha256 = ""; + # # meta = with lib; + # # { + # # description = "Firefox Language Pack for Italiano (it) – Italian"; + # # license = licenses.mpl20; + # # mozPermissions = []; + # # platforms = platforms.all; + # # }; + # # } + # # ) + # # ( + # # buildFirefoxXpiAddon rec { + # # pname = "dizionario-italiano"; + # # version = "5.1"; + # # addonId = "it-IT@dictionaries.addons.mozilla.org"; + # # url = "https://addons.mozilla.org/firefox/downloads/file/1163874/dizionario_italiano-${version}.xpi"; + # # sha256 = ""; + # # meta = with lib; + # # { + # # description = "Add support for Italian to spellchecking"; + # # license = licenses.gpl3; + # # mozPermissions = []; + # # platforms = platforms.all; + # # }; + # # } + # # ) + # ]; + + # settings = { + # # Disable irritating first-run stuff + # "browser.disableResetPrompt" = true; + # "browser.download.panel.shown" = true; + # "browser.feeds.showFirstRunUI" = false; + # "browser.messaging-system.whatsNewPanel.enabled" = false; + # "browser.rights.3.shown" = true; + # "browser.shell.checkDefaultBrowser" = false; + # "browser.shell.defaultBrowserCheckCount" = 1; + # "browser.startup.homepage_override.mstone" = "ignore"; + # "browser.uitour.enabled" = false; + # "startup.homepage_override_url" = ""; + # "trailhead.firstrun.didSeeAboutWelcome" = true; + # "browser.bookmarks.restore_default_bookmarks" = false; + # "browser.bookmarks.addedImportButton" = true; + + # # Usage Experiance + # "browser.startup.homepage" = "about:home"; + # "browser.download.useDownloadDir" = false; + # "browser.uiCustomization.state" = builtins.toJSON { + # "currentVersion" = 20; + # "newElementCount" = 6; + # "dirtyAreaCache" = [ + # "nav-bar" + # "PersonalToolbar" + # "toolbar-menubar" + # "TabsToolbar" + # "unified-extensions-area" + # "vertical-tabs" + # ]; + # "placements" = { + # "widget-overflow-fixed-list" = []; + # "unified-extensions-area"= [ + # "ublock0_raymondhill_net-browser-action" + # "sponsorblocker_ajay_app-browser-action" + # "dearrow_ajay_app-browser-action" + # "privacy_privacy_com-browser-action" + # "addon_simplelogin-browser-action" + # ]; + # "nav-bar" = [ + # "back-button" + # "forward-button" + # "stop-reload-button" + # "urlbar-container" + # "downloads-button" + # "unified-extensions-button" + # "reset-pbm-toolbar-button" + # ]; + # "toolbar-menubar" = [ + # "menubar-items" + # ]; + # "TabsToolbar" = [ + # "firefox-view-button" + # "tabbrowser-tabs" + # "new-tab-button" + # "alltabs-button" + # ]; + # "vertical-tabs" = []; + # "PersonalToolbar" = [ + # "import-button" + # "personal-bookmarks" + # ]; + # }; + # "seen" = [ + # "save-to-pocket-button" + # "developer-button" + # "privacy_privacy_com-browser-action" + # "sponsorblocker_ajay_app-browser-action" + # "ublock0_raymondhill_net-browser-action" + # "addon_simplelogin-browser-action" + # "dearrow_ajay_app-browser-action" + # ]; + # }; + # "browser.newtabpage.activity-stream.feeds.topsites" = false; + # "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; + # "browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts" = false; + # "browser.newtabpage.blocked" = lib.genAttrs [ + # # Facebook + # "4gPpjkxgZzXPVtuEoAL9Ig==" + # # Reddit + # "gLv0ja2RYVgxKdp0I5qwvA==" + # # Amazon + # "K00ILysCaEq8+bEqV/3nuw==" + # # Twitter + # "T9nJot5PurhJSy8n038xGA==" + # ] (_: 1); + # "signon.rememberSignons" = false; + # "identity.fxaccounts.enabled" = false; + + # # Security + # "privacy.trackingprotection.enabled" = true; + # "dom.security.https_only_mode" = true; + + # # Disable telemetry + # "app.shield.optoutstudies.enabled" = false; + # "browser.discovery.enabled" = false; + # "browser.newtabpage.activity-stream.feeds.telemetry" = false; + # "browser.newtabpage.activity-stream.telemetry" = false; + # "browser.ping-centre.telemetry" = false; + # "datareporting.healthreport.service.enabled" = false; + # "datareporting.healthreport.uploadEnabled" = false; + # "datareporting.policy.dataSubmissionEnabled" = false; + # "datareporting.sessions.current.clean" = true; + # "devtools.onboarding.telemetry.logged" = false; + # "toolkit.telemetry.archive.enabled" = false; + # "toolkit.telemetry.bhrPing.enabled" = false; + # "toolkit.telemetry.enabled" = false; + # "toolkit.telemetry.firstShutdownPing.enabled" = false; + # "toolkit.telemetry.hybridContent.enabled" = false; + # "toolkit.telemetry.newProfilePing.enabled" = false; + # "toolkit.telemetry.prompted" = 2; + # "toolkit.telemetry.rejected" = true; + # "toolkit.telemetry.reportingpolicy.firstRun" = false; + # "toolkit.telemetry.server" = ""; + # "toolkit.telemetry.shutdownPingSender.enabled" = false; + # "toolkit.telemetry.unified" = false; + # "toolkit.telemetry.unifiedIsOptIn" = false; + # "toolkit.telemetry.updatePing.enabled" = false; + # }; + + # bookmarks = [ + # { + # name = "Media"; + # url = "https://jellyfin.jan-leila.com/"; + # # url = "https://media.jan-leila.com/"; + # keyword = ""; + # tags = [""]; + # } + # { + # name = "Drive"; + # url = "https://drive.jan-leila.com/"; + # keyword = ""; + # tags = [""]; + # } + # { + # name = "Git"; + # url = "https://git.jan-leila.com/"; + # keyword = ""; + # tags = [""]; + # } + # { + # name = "Home Automation"; + # url = "https://home-assistant.jan-leila.com/"; + # keyword = ""; + # tags = [""]; + # } + # { + # name = "Mail"; + # url = "https://mail.protonmail.com"; + # keyword = ""; + # tags = [""]; + # } + # { + # name = "Open Street Map"; + # url = "https://www.openstreetmap.org/"; + # keyword = ""; + # tags = [""]; + # } + # { + # name = "Password Manager"; + # url = "https://vault.bitwarden.com/"; + # keyword = ""; + # tags = [""]; + # } + # { + # name = "Mastodon"; + # url = "https://mspsocial.net"; + # keyword = ""; + # tags = [""]; + # } + # { + # name = "Linked In"; + # url = "https://www.linkedin.com/"; + # keyword = ""; + # tags = [""]; + # } + # { + # name = "Job Search"; + # url = "https://www.jobsinnetwork.com/?state=cleaned_history&language%5B%5D=en&query=react&locations.countryCode%5B%5D=IT&locations.countryCode%5B%5D=DE&locations.countryCode%5B%5D=NL&experience%5B%5D=medior&experience%5B%5D=junior&page=1"; + # keyword = ""; + # tags = [""]; + # } + # { + # name = "React Docs"; + # url = "https://react.dev/"; + # keyword = ""; + # tags = [""]; + # } + # # Template + # # { + # # name = ""; + # # url = ""; + # # keyword = ""; + # # tags = [""]; + # # } + # ]; + # }; + # }; +} diff --git a/users/leyla/packages.nix b/homes/leyla/packages.nix similarity index 100% rename from users/leyla/packages.nix rename to homes/leyla/packages.nix diff --git a/users/leyla/vscode.nix b/homes/leyla/vscode.nix similarity index 98% rename from users/leyla/vscode.nix rename to homes/leyla/vscode.nix index 1a118db..02411ad 100644 --- a/users/leyla/vscode.nix +++ b/homes/leyla/vscode.nix @@ -23,7 +23,7 @@ in { open-vsx = extensions.open-vsx; vscode-marketplace = extensions.vscode-marketplace; in { - enable = true; + enable = cfg.isDesktopUser; package = pkgs.vscodium; diff --git a/hosts/defiant/configuration.nix b/hosts/defiant/configuration.nix index 76dba60..06724b4 100644 --- a/hosts/defiant/configuration.nix +++ b/hosts/defiant/configuration.nix @@ -1,15 +1,11 @@ # server nas { - pkgs, inputs, + pkgs, ... }: { imports = [ - inputs.home-manager.nixosModules.default - inputs.sops-nix.nixosModules.sops - - ./hardware-configuration.nix - + inputs.disko.nixosModules.disko ../../enviroments/server ]; diff --git a/hosts/defiant/default.nix b/hosts/defiant/default.nix new file mode 100644 index 0000000..36e1b6f --- /dev/null +++ b/hosts/defiant/default.nix @@ -0,0 +1,8 @@ +# server nas +{...}: { + imports = [ + ./configuration.nix + ./disko-config.nix + ./hardware-configuration.nix + ]; +} diff --git a/hosts/horizon/configuration.nix b/hosts/horizon/configuration.nix index 15a52e9..d176522 100644 --- a/hosts/horizon/configuration.nix +++ b/hosts/horizon/configuration.nix @@ -1,10 +1,6 @@ -# leyla laptop {inputs, ...}: { imports = [ - inputs.home-manager.nixosModules.default - inputs.sops-nix.nixosModules.sops - - ./hardware-configuration.nix + inputs.nixos-hardware.nixosModules.framework-11th-gen-intel ../../enviroments/client ]; @@ -13,12 +9,12 @@ leyla = { isDesktopUser = true; }; - ester = { - isDesktopUser = true; - }; - eve = { - isDesktopUser = true; - }; + # ester = { + # isDesktopUser = true; + # }; + # eve = { + # isDesktopUser = true; + # }; }; # enabled virtualisation for docker diff --git a/hosts/horizon/default.nix b/hosts/horizon/default.nix new file mode 100644 index 0000000..1263215 --- /dev/null +++ b/hosts/horizon/default.nix @@ -0,0 +1,7 @@ +# leyla laptop +{...}: { + imports = [ + ./configuration.nix + ./hardware-configuration.nix + ]; +} diff --git a/hosts/twilight/configuration.nix b/hosts/twilight/configuration.nix index 0ed47c8..264ea40 100644 --- a/hosts/twilight/configuration.nix +++ b/hosts/twilight/configuration.nix @@ -1,16 +1,5 @@ -# leyla laptop -{ - config, - pkgs, - inputs, - ... -}: { +{pkgs, ...}: { imports = [ - inputs.home-manager.nixosModules.default - inputs.sops-nix.nixosModules.sops - - ./hardware-configuration.nix - ../../enviroments/client ]; nixos.users = { diff --git a/hosts/twilight/default.nix b/hosts/twilight/default.nix new file mode 100644 index 0000000..edfb3f6 --- /dev/null +++ b/hosts/twilight/default.nix @@ -0,0 +1,7 @@ +# leyla desktop +{...}: { + imports = [ + ./configuration.nix + ./hardware-configuration.nix + ]; +} diff --git a/secrets b/secrets deleted file mode 160000 index ef623d6..0000000 --- a/secrets +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ef623d6a9e25c1f0ec9d282ab5ed5dff54674816 diff --git a/users/default.nix b/users/default.nix deleted file mode 100644 index fd1f6a4..0000000 --- a/users/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - lib, - config, - ... -}: { - imports = [./leyla ./ester ./eve]; - - users.mutableUsers = false; - - home-manager.users = import ./home.nix { - lib = lib; - config = config; - }; -} diff --git a/users/home.nix b/users/home.nix deleted file mode 100644 index d32f2df..0000000 --- a/users/home.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ - lib, - config, - ... -}: { - leyla = lib.mkIf (config.nixos.users.leyla.isDesktopUser || config.nixos.users.leyla.isTerminalUser) (import ./leyla/home.nix); - ester = lib.mkIf config.nixos.users.ester.isDesktopUser (import ./ester/home.nix); - eve = lib.mkIf config.nixos.users.eve.isDesktopUser (import ./eve/home.nix); -} diff --git a/users/leyla/firefox.nix b/users/leyla/firefox.nix deleted file mode 100644 index 615b3e3..0000000 --- a/users/leyla/firefox.nix +++ /dev/null @@ -1,132 +0,0 @@ -{ - lib, - config, - pkgs, - inputs, - ... -}: { - programs = { - # firefox = { - # enable = true; - # profiles.leyla = { - - # settings = { - # "browser.search.defaultenginename" = "Searx"; - # "browser.search.order.1" = "Searx"; - # }; - - # search = { - # force = true; - # default = "Searx"; - # engines = { - # "Nix Packages" = { - # urls = [{ - # template = "https://search.nixos.org/packages"; - # params = [ - # { name = "type"; value = "packages"; } - # { name = "query"; value = "{searchTerms}"; } - # ]; - # }]; - # icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - # definedAliases = [ "@np" ]; - # }; - # "NixOS Wiki" = { - # urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }]; - # iconUpdateURL = "https://nixos.wiki/favicon.png"; - # updateInterval = 24 * 60 * 60 * 1000; # every day - # definedAliases = [ "@nw" ]; - # }; - # "Searx" = { - # urls = [{ template = "https://search.jan-leila.com/?q={searchTerms}"; }]; - # iconUpdateURL = "https://nixos.wiki/favicon.png"; - # updateInterval = 24 * 60 * 60 * 1000; # every day - # definedAliases = [ "@searx" ]; - # }; - # }; - # }; - - # extentions = with pkgs.nur.repos.rycee.firefox-addons; [ - # ublock-origin - # bitwarden - - # ]; - - # bookmarks = [ - # { - # name = "Media"; - # url = "https://jellyfin.jan-leila.com/"; - # keyword = ""; - # tags = [""]; - # } - # { - # name = "Drive"; - # url = "https://drive.jan-leila.com/"; - # keyword = ""; - # tags = [""]; - # } - # { - # name = "Git"; - # url = "https://git.jan-leila.com/"; - # keyword = ""; - # tags = [""]; - # } - # { - # name = "Home Automation"; - # url = "https://home-assistant.jan-leila.com/"; - # keyword = ""; - # tags = [""]; - # } - # { - # name = "Mail"; - # url = "https://mail.protonmail.com"; - # keyword = ""; - # tags = [""]; - # } - # { - # name = "Open Street Map"; - # url = "https://www.openstreetmap.org/"; - # keyword = ""; - # tags = [""]; - # } - # { - # name = "Password Manager"; - # url = "https://vault.bitwarden.com/"; - # keyword = ""; - # tags = [""]; - # } - # { - # name = "Mastodon"; - # url = "https://tech.lgbt"; - # keyword = ""; - # tags = [""]; - # } - # { - # name = "Linked In"; - # url = "https://www.linkedin.com/"; - # keyword = ""; - # tags = [""]; - # } - # { - # name = "Job Search"; - # url = "https://www.jobsinnetwork.com/?state=cleaned_history&language%5B%5D=en&query=react&locations.countryCode%5B%5D=IT&locations.countryCode%5B%5D=DE&locations.countryCode%5B%5D=NL&experience%5B%5D=medior&experience%5B%5D=junior&page=1"; - # keyword = ""; - # tags = [""]; - # } - # { - # name = "React Docs"; - # url = "https://react.dev/"; - # keyword = ""; - # tags = [""]; - # } - # # Template - # # { - # # name = ""; - # # url = ""; - # # keyword = ""; - # # tags = [""]; - # # } - # ]; - # }; - # } - }; -} diff --git a/util/default.nix b/util/default.nix index a06ac29..e091d80 100644 --- a/util/default.nix +++ b/util/default.nix @@ -1,8 +1,61 @@ -{lib, ...}: { +{inputs}: let + util = (import ./default.nix) {inherit inputs;}; + outputs = inputs.self.outputs; + + lib = inputs.lib; + lix-module = inputs.lix-module; + nixpkgs = inputs.nixpkgs; + home-manager = inputs.home-manager; + sops-nix = inputs.sops-nix; + + systems = [ + "aarch64-darwin" + "aarch64-linux" + "x86_64-darwin" + "x86_64-linux" + ]; + forEachSystem = nixpkgs.lib.genAttrs systems; + pkgsFor = system: nixpkgs.legacyPackages.${system}; + + home-manager-config = { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.backupFileExtension = "backup"; + home-manager.extraSpecialArgs = {inherit inputs;}; + home-manager.users = import ../homes; + }; +in { + forEachPkgs = lambda: forEachSystem (system: lambda (pkgsFor system)); + mkUnless = condition: yes: (lib.mkIf (!condition) yes); mkIfElse = condition: yes: no: lib.mkMerge [ (lib.mkIf condition yes) (lib.mkUnless condition no) ]; + + mkSystem = host: + inputs.nixpkgs.lib.nixosSystem { + specialArgs = {inherit inputs outputs util;}; + modules = [ + lix-module.nixosModules.default + sops-nix.nixosModules.sops + home-manager.nixosModules.home-manager + home-manager-config + ../overlays + ../hosts/${host} + ]; + }; + + # mkHome = user: host: + # home-manager.lib.homeManagerConfiguration { + # # pkgs = pkgsFor system; + # extraSpecialArgs = { + # inherit inputs util outputs; + # }; + # modules = [ + # # config + # outputs.homeManagerModules.default + # ]; + # }; }