diff --git a/flake.nix b/flake.nix index cab78c5..ab2e555 100644 --- a/flake.nix +++ b/flake.nix @@ -73,6 +73,10 @@ apple-silicon, ... }: let + # All systems we want to support for the generic VM + supportedSystems = ["x86_64-linux" "aarch64-linux"]; + # to run the vm: + # nixos-rebuild build-vm --flake ~/nix#$(nix eval --raw --impure --expr 'builtins.currentSystem') mkNixosSystem = { hostname, system, @@ -83,7 +87,7 @@ inherit system; specialArgs = { - inherit catppuccin; + inherit catppuccin system; } // extraSpecialArgs; modules = @@ -144,47 +148,54 @@ nixvim.homeModules.nixvim ]; }; - in { - nixosConfigurations = { - peach = mkNixosSystem { - hostname = "peach"; - system = "aarch64-linux"; - extraModules = [ - apple-silicon.nixosModules.default - {nixpkgs.overlays = [apple-silicon.overlays.apple-silicon-overlay];} - ]; - }; + in + { + nixosConfigurations = + { + peach = mkNixosSystem { + hostname = "peach"; + system = "aarch64-linux"; + extraModules = [ + apple-silicon.nixosModules.default + {nixpkgs.overlays = [apple-silicon.overlays.apple-silicon-overlay];} + ]; + }; - alien = mkNixosSystem { - hostname = "alien"; - system = "x86_64-linux"; - extraSpecialArgs = { - inherit nix-cachyos-kernel; + alien = mkNixosSystem { + hostname = "alien"; + system = "x86_64-linux"; + extraSpecialArgs = { + inherit nix-cachyos-kernel; + }; + }; + } + // nixpkgs.lib.genAttrs supportedSystems ( + system: + mkNixosSystem { + hostname = "vm-generic"; + inherit system; + } + ); + + homeConfigurations = { + peach = mkHomeConfig { + user = "sckova"; + hostname = "peach"; + system = "aarch64-linux"; + }; + alien = mkHomeConfig { + user = "sckova"; + hostname = "alien"; + system = "x86_64-linux"; }; }; - - vm-aarch64 = mkNixosSystem { - hostname = "vm-aarch64"; - system = "aarch64-linux"; - }; - }; - - homeConfigurations = { - peach = mkHomeConfig { - user = "sckova"; - hostname = "peach"; - system = "aarch64-linux"; - }; - alien = mkHomeConfig { - user = "sckova"; - hostname = "alien"; - system = "x86_64-linux"; - }; - vm-aarch64 = mkHomeConfig { - user = "sckova"; - hostname = "vm-aarch64"; - system = "aarch64-linux"; - }; - }; - }; + } + // nixpkgs.lib.genAttrs supportedSystems ( + system: + mkHomeConfig { + user = "sckova"; + hostname = "vm-generic"; + inherit system; + } + ); } diff --git a/hardware/vm-aarch64/default.nix b/hardware/vm-generic/default.nix similarity index 65% rename from hardware/vm-aarch64/default.nix rename to hardware/vm-generic/default.nix index d333395..21f3620 100644 --- a/hardware/vm-aarch64/default.nix +++ b/hardware/vm-generic/default.nix @@ -2,10 +2,9 @@ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. { - config, lib, pkgs, - modulesPath, + system, ... }: { imports = []; @@ -30,7 +29,12 @@ {device = "/dev/disk/by-label/swap";} ]; - nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; - hardware.parallels.enable = true; - nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) ["prl-tools"]; + # Set platform from the system argument passed by the flake + nixpkgs.hostPlatform = lib.mkDefault system; + + # Enable Parallels tools only on aarch64 + hardware.parallels.enable = lib.mkIf (system == "aarch64-linux") true; + nixpkgs.config.allowUnfreePredicate = + lib.mkIf (system == "aarch64-linux") + (pkg: builtins.elem (lib.getName pkg) ["prl-tools"]); } diff --git a/home/default.nix b/home/default.nix index 967e57d..b4583d7 100755 --- a/home/default.nix +++ b/home/default.nix @@ -235,13 +235,13 @@ then "dark" else "light"; - theme = { - package = pkgs.kdePackages.breeze-gtk; - name = - if config.userOptions.isDark - then "Breeze-Dark" - else "Breeze"; - }; + # theme = { + # package = pkgs.kdePackages.breeze-gtk; + # name = + # if config.userOptions.isDark + # then "Breeze-Dark" + # else "Breeze"; + # }; iconTheme = { name = diff --git a/home/hosts/vm-aarch64/default.nix b/home/hosts/vm/default.nix similarity index 100% rename from home/hosts/vm-aarch64/default.nix rename to home/hosts/vm/default.nix diff --git a/system/hosts/alien/default.nix b/system/hosts/alien/default.nix index 3de14fb..c83ae54 100644 --- a/system/hosts/alien/default.nix +++ b/system/hosts/alien/default.nix @@ -1,8 +1,6 @@ { config, pkgs, - lib, - inputs, catppuccin, nix-cachyos-kernel, ... @@ -10,8 +8,9 @@ networking.hostName = "alien"; environment.systemPackages = with pkgs; [ - pkgs.ddcutil - pkgs.mangohud + ddcutil + mangohud + (bottles.override {removeWarningPopup = true;}) ]; # enable ddcutil diff --git a/system/hosts/vm-aarch64/default.nix b/system/hosts/vm-aarch64/default.nix deleted file mode 100644 index 952afc5..0000000 --- a/system/hosts/vm-aarch64/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ - config, - pkgs, - lib, - catppuccin, - ... -}: { - networking.hostName = "vm-aarch64"; - - boot.binfmt.emulatedSystems = [ - "x86_64-linux" - "riscv64-linux" - ]; - - catppuccin.accent = "green"; - - home-manager.users.sckova = { - imports = [catppuccin.homeModules.catppuccin]; - }; - - services.spice-vdagentd.enable = true; - - virtualisation.vmVariant = { - virtualisation = { - memorySize = 8192; - cores = 6; - }; - }; - - security.sudo.wheelNeedsPassword = false; -} diff --git a/system/hosts/vm-generic/default.nix b/system/hosts/vm-generic/default.nix new file mode 100644 index 0000000..e28763f --- /dev/null +++ b/system/hosts/vm-generic/default.nix @@ -0,0 +1,32 @@ +{ + config, + pkgs, + lib, + catppuccin, + ... +}: { + networking.hostName = "vm"; + + # Enable emulation for architectures we're not currently running + boot.binfmt.emulatedSystems = + lib.optional (pkgs.stdenv.hostPlatform.system != "x86_64-linux") "x86_64-linux" + ++ lib.optional (pkgs.stdenv.hostPlatform.system != "aarch64-linux") "aarch64-linux" + ++ lib.optional (pkgs.stdenv.hostPlatform.system != "riscv64-linux") "riscv64-linux"; + + catppuccin.accent = "green"; + + home-manager.users.sckova = { + imports = [catppuccin.homeModules.catppuccin]; + }; + + services.spice-vdagentd.enable = true; + + virtualisation.vmVariant = { + virtualisation = { + memorySize = 8192; + cores = 6; + }; + }; + + security.sudo.wheelNeedsPassword = false; +}