From 450c019b4e50a1a79d36858866eab0f71c6d6d5c Mon Sep 17 00:00:00 2001 From: "Jeffrey C. Ollie" Date: Mon, 6 Jan 2025 23:42:23 -0600 Subject: [PATCH] nix vm: add plasma and cinnamon vms --- flake.nix | 8 ++++++++ nix/vm/common-cinnamon.nix | 14 ++++++++++++++ nix/vm/common-gnome.nix | 1 - nix/vm/common-plasma6.nix | 17 +++++++++++++++++ nix/vm/common.nix | 22 ++++++++++++++++++++++ nix/vm/wayland-cinnamon.nix | 7 +++++++ nix/vm/wayland-plasma6.nix | 6 ++++++ nix/vm/x11-cinnamon.nix | 7 +++++++ nix/vm/x11-plasma6.nix | 6 ++++++ 9 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 nix/vm/common-cinnamon.nix create mode 100644 nix/vm/common-plasma6.nix create mode 100644 nix/vm/wayland-cinnamon.nix create mode 100644 nix/vm/wayland-plasma6.nix create mode 100644 nix/vm/x11-cinnamon.nix create mode 100644 nix/vm/x11-plasma6.nix diff --git a/flake.nix b/flake.nix index c0fdd42c3..38aea5b80 100644 --- a/flake.nix +++ b/flake.nix @@ -79,8 +79,12 @@ } ); in { + "wayland-cinnamon-${system}" = makeVM ./nix/vm/wayland-cinnamon.nix; "wayland-gnome-${system}" = makeVM ./nix/vm/wayland-gnome.nix; + "wayland-plasma6-${system}" = makeVM ./nix/vm/wayland-plasma6.nix; + "x11-cinnamon-${system}" = makeVM ./nix/vm/x11-cinnamon.nix; "x11-gnome-${system}" = makeVM ./nix/vm/x11-gnome.nix; + "x11-plasma6-${system}" = makeVM ./nix/vm/x11-plasma6.nix; }; apps.${system} = let @@ -98,8 +102,12 @@ } ); in { + wayland-cinnamon = wrapVM "wayland-cinnamon"; wayland-gnome = wrapVM "wayland-gnome"; + wayland-plasma6 = wrapVM "wayland-plasma6"; + x11-cinnamon = wrapVM "x11-cinnamon"; x11-gnome = wrapVM "x11-gnome"; + x11-plasma6 = wrapVM "x11-plasma6"; }; } # Our supported systems are the same supported systems as the Zig binaries. diff --git a/nix/vm/common-cinnamon.nix b/nix/vm/common-cinnamon.nix new file mode 100644 index 000000000..a551321cf --- /dev/null +++ b/nix/vm/common-cinnamon.nix @@ -0,0 +1,14 @@ +{...}: { + services.xserver = { + displayManager = { + lightdm = { + enable = true; + }; + }; + desktopManager = { + cinnamon = { + enable = true; + }; + }; + }; +} diff --git a/nix/vm/common-gnome.nix b/nix/vm/common-gnome.nix index 992a10d3a..d5018b457 100644 --- a/nix/vm/common-gnome.nix +++ b/nix/vm/common-gnome.nix @@ -5,7 +5,6 @@ ... }: { services.xserver = { - enable = true; displayManager = { gdm = { enable = true; diff --git a/nix/vm/common-plasma6.nix b/nix/vm/common-plasma6.nix new file mode 100644 index 000000000..3b280184c --- /dev/null +++ b/nix/vm/common-plasma6.nix @@ -0,0 +1,17 @@ +{...}: { + services = { + displayManager = { + sddm = { + enable = true; + wayland = { + enable = true; + }; + }; + }; + desktopManager = { + plasma6 = { + enable = true; + }; + }; + }; +} diff --git a/nix/vm/common.nix b/nix/vm/common.nix index 9e05cce4a..fa0305ad0 100644 --- a/nix/vm/common.nix +++ b/nix/vm/common.nix @@ -47,15 +47,37 @@ environment.systemPackages = [ pkgs.kitty pkgs.ghostty + pkgs.helix + pkgs.neovim pkgs.zig_0_13 ]; + security.polkit = { + enable = true; + }; + + services.dbus = { + enable = true; + }; + services.displayManager = { autoLogin = { user = "ghostty"; }; }; + services.libinput = { + enable = true; + }; + + services.qemuGuest = { + enable = true; + }; + + services.spice-vdagentd = { + enable = true; + }; + services.xserver = { enable = true; }; diff --git a/nix/vm/wayland-cinnamon.nix b/nix/vm/wayland-cinnamon.nix new file mode 100644 index 000000000..531c882b6 --- /dev/null +++ b/nix/vm/wayland-cinnamon.nix @@ -0,0 +1,7 @@ +{...}: { + imports = [ + ./common-cinnamon.nix + ]; + + services.displayManager.defaultSession = "cinnamon-wayland"; +} diff --git a/nix/vm/wayland-plasma6.nix b/nix/vm/wayland-plasma6.nix new file mode 100644 index 000000000..6e5a253b8 --- /dev/null +++ b/nix/vm/wayland-plasma6.nix @@ -0,0 +1,6 @@ +{...}: { + imports = [ + ./common-plasma6.nix + ]; + services.displayManager.defaultSession = "plasma"; +} diff --git a/nix/vm/x11-cinnamon.nix b/nix/vm/x11-cinnamon.nix new file mode 100644 index 000000000..636f235a2 --- /dev/null +++ b/nix/vm/x11-cinnamon.nix @@ -0,0 +1,7 @@ +{...}: { + imports = [ + ./common-cinnamon.nix + ]; + + services.displayManager.defaultSession = "cinnamon"; +} diff --git a/nix/vm/x11-plasma6.nix b/nix/vm/x11-plasma6.nix new file mode 100644 index 000000000..7818a80ca --- /dev/null +++ b/nix/vm/x11-plasma6.nix @@ -0,0 +1,6 @@ +{...}: { + imports = [ + ./common-plasma6.nix + ]; + services.displayManager.defaultSession = "plasmax11"; +}