summary refs log tree commit diff
path: root/hosts/vm/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/vm/default.nix')
-rw-r--r--hosts/vm/default.nix92
1 files changed, 92 insertions, 0 deletions
diff --git a/hosts/vm/default.nix b/hosts/vm/default.nix
new file mode 100644
index 0000000..99ed8b9
--- /dev/null
+++ b/hosts/vm/default.nix
@@ -0,0 +1,92 @@
+{
+  config,
+  lib,
+  pkgs,
+  modulesPath,
+  ...
+}: {
+  imports = [
+    ../../profiles/core.nix
+    ../../profiles/user.nix
+    ../../profiles/ssh.nix
+    ../../profiles/graphical.nix
+    ../../mixins/tailscale.nix
+    ../../mixins/cli.nix
+    ../../mixins/greet.nix
+    ../../mixins/pipewire.nix
+    # ../../mixins/hyprland.nix
+    ../../mixins/sway.nix
+    # (modulesPath + "/profiles/qemu-guest.nix")
+    # (modulesPath + "/virtualisation/qemu-vm.nix")
+  ];
+
+  config = {
+    _module.args.nixinate = {
+      host = "vm";
+      sshUser = "tzlil";
+      buildOn = "remote"; # valid args are "local" or "remote"
+      substituteOnTarget = true; # if buildOn is "local" then it will substitute on the target, "-s"
+      hermetic = false;
+    };
+    networking.hostName = "vm";
+
+    # dont do this
+    users.users.root.initialPassword = "hunter2";
+
+    boot.supportedFilesystems = ["9p"];
+    boot = {
+      initrd = {
+        supportedFilesystems = ["btrfs"];
+        availableKernelModules = ["ata_piix" "uhci_hcd" "floppy" "sd_mod" "sr_mod"];
+      };
+      kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
+      kernelParams = [
+        "console=ttyS0"
+      ];
+      loader = {
+        systemd-boot = {
+          enable = true;
+        };
+        efi = {
+          canTouchEfiVariables = true;
+          efiSysMountPoint = "/boot";
+        };
+      };
+    };
+
+    time.timeZone = lib.mkDefault "Israel";
+
+    fileSystems = {
+      "/" = {
+        device = "none";
+        fsType = "tmpfs";
+        options = ["noexec" "defaults" "size=2G" "mode=755"];
+      };
+      "/nix" = {
+        device = "/dev/disk/by-partlabel/nix";
+        options = ["noatime" "compress=zstd"];
+      };
+      "/boot" = {
+        device = "/dev/disk/by-partlabel/boot";
+      };
+    };
+
+    zramSwap = {
+      enable = true;
+      algorithm = "zstd";
+    };
+
+    hardware.opengl = {
+      enable = true;
+      extraPackages = with pkgs; [rocm-opencl-icd rocm-opencl-runtime];
+      driSupport = true;
+      driSupport32Bit = true;
+    };
+
+    greeter.initialSession = "env WLR_RENDERER=pixman ${pkgs.sway.out}/bin/sway";
+    # home-manager.users.tzlil.wayland.windowManager.sway.config.input."type:keyboard".xkb_variant = lib.mkForce "";
+
+    # nice to work with
+    security.sudo.wheelNeedsPassword = false;
+  };
+}