diff --git a/default.nix b/default.nix index b794601c..add348c3 100644 --- a/default.nix +++ b/default.nix @@ -4,6 +4,10 @@ system = "x86_64-linux"; modules = [./nix/configurations/vanadium.nix]; }; + vm = { + system = "x86_64-linux"; + modules = [./nix/configurations/vm.nix]; + }; tungsten = { system = "x86_64-linux"; modules = [./nix/configurations/tungsten.nix]; diff --git a/nix/configurations/vm.nix b/nix/configurations/vm.nix new file mode 100644 index 00000000..5b987b50 --- /dev/null +++ b/nix/configurations/vm.nix @@ -0,0 +1,97 @@ +let + sources = import ../sources.nix; + + hostname = "vm"; + username = "leana"; +in + { + config, + lib, + ... + }: let + inherit (lib.modules) mkAliasOptionModule; + in { + imports = [ + # + # Shorthands + # + (mkAliasOptionModule ["me"] ["users" "users" username]) + (mkAliasOptionModule ["hm"] ["home-manager" "users" username]) + + # + # hostname + # + {_module.args = {inherit hostname;};} + + # + # nixpkgs + # + { + nixpkgs = { + overlays = map import [ + ../overlays/agenix.nix + ../overlays/disko.nix + ../overlays/nur.nix + ../overlays/wired-notify.nix + ../overlays/nix-tree.nix + ../overlays/wallpapers.nix + + ../overlays/packages.nix + ./vanadium/overlay.nix + ]; + + # Set NIX_PATH and flake registry at the same time + # https://github.com/NixOS/nixpkgs/pull/254405 + flake.source = sources.nixpkgs; + }; + + system.nixos.version = lib.substring 0 8 sources.nixpkgs.rev; + } + + # + # NixOS modules + # + ./vanadium/nixos/gui.nix + + ./vanadium/nixos/locale.nix + ./vanadium/nixos/unfree-predicate.nix + + ../nixosModules/extra/layouts + ../nixosModules/extra/leana.nix + + (import (sources.lix-module + "/module.nix") {lix = sources.lix;}) + + # + # home-manager + # + (sources.home-manager + "/nixos") + { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + sharedModules = [{home.stateVersion = lib.mkDefault config.system.stateVersion;}]; + }; + + hm.imports = [ + # + # hostname + # + {_module.args = {inherit hostname;};} + + # + # home modules + # + ./vanadium/home/misc.nix + + ./vanadium/home/firefox.nix + ./vanadium/home/xmobar.nix + ]; + } + + { + # VM specifics + users.mutableUsers = false; + me.password = ""; + } + ]; + }