From 9e29bcddf34e25219f6bf955d39742c5347c1379 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 22 Jun 2022 14:42:18 -0700 Subject: [PATCH] demo: Add a demo app that runs Plasma in a VM --- example/home.nix | 12 ++++++++++ flake.nix | 19 +++++++++++++++ test/demo.nix | 62 ++++++++++++++++++++++++++++++++++++++++++++++++ test/user.nix | 3 +-- 4 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 example/home.nix create mode 100644 test/demo.nix diff --git a/example/home.nix b/example/home.nix new file mode 100644 index 0000000..544791d --- /dev/null +++ b/example/home.nix @@ -0,0 +1,12 @@ +{ ... }: +{ + programs.plasma = { + enable = true; + + # A high-level setting: + workspace.clickItemTo = "select"; + + # A low-level setting: + files."baloofilerc"."Basic Settings"."Indexing-Enabled" = false; + }; +} diff --git a/flake.nix b/flake.nix index 2dc5fbf..465989d 100644 --- a/flake.nix +++ b/flake.nix @@ -42,6 +42,20 @@ { default = self.packages.${system}.rc2nix; + demo = (inputs.nixpkgs.lib.nixosSystem { + inherit system; + modules = [ + (import test/demo.nix { + pkgs = nixpkgsFor.x86_64-linux; + home-manager = inputs.home-manager; + module = self.homeManagerModules.plasma; + extraPackages = with self.packages.${system}; [ + rc2nix + ]; + }) + ]; + }).config.system.build.vm; + rc2nix = pkgs.writeShellApplication { name = "rc2nix"; runtimeInputs = with pkgs; [ ruby ]; @@ -53,6 +67,11 @@ { default = self.apps.${system}.rc2nix; + demo = { + type = "app"; + program = "${self.packages.${system}.demo}/bin/run-plasma-demo-vm"; + }; + rc2nix = { type = "app"; program = "${self.packages.${system}.rc2nix}/bin/rc2nix"; diff --git a/test/demo.nix b/test/demo.nix new file mode 100644 index 0000000..e585230 --- /dev/null +++ b/test/demo.nix @@ -0,0 +1,62 @@ +{ pkgs +, home-manager +, module +, extraPackages +}: + +let + homeConfig = { + imports = [ ../example/home.nix ]; + }; + + user = import ./user.nix { + inherit module home-manager homeConfig; + }; + +in +{ modulesPath, ... }: +{ + imports = [ + (modulesPath + "/profiles/qemu-guest.nix") + (modulesPath + "/virtualisation/qemu-vm.nix") + user + ]; + + config = { + networking.hostName = "plasma-demo"; + + fileSystems."/" = { + device = "/dev/disk/by-label/nixos"; + fsType = "ext4"; + autoResize = true; + }; + + boot = { + growPartition = true; + loader.timeout = 5; + kernelParams = [ + "console=ttyS0" + "boot.shell_on_fail" + ]; + }; + + virtualisation = { + forwardPorts = [{ + from = "host"; + host.port = 2222; + guest.port = 22; + }]; + }; + + services.xserver = { + enable = true; + displayManager.sddm.enable = true; + displayManager.defaultSession = "plasma"; + desktopManager.plasma5.enable = true; + displayManager.autoLogin.enable = true; + displayManager.autoLogin.user = "fake"; + }; + + environment.systemPackages = extraPackages; + }; +} diff --git a/test/user.nix b/test/user.nix index b412463..a5a1992 100644 --- a/test/user.nix +++ b/test/user.nix @@ -19,8 +19,7 @@ useGlobalPkgs = true; users.fake = { ... }: { - imports = [ module ]; - config = homeConfig; + imports = [ module homeConfig ]; }; }; }