Subject: [bug#64798] [PATCH 209/209] examples: add plasma operating-system example

From: Zheng Junjie <[email-masked]>
Date: Sun, 23 Jul 2023 16:47:09 +0800

* gnu/system/examples/plasma.tmpl: New operating-system example.
* Makefile.am(EXAMPLES): register it.
---
 Makefile.am                     |  1 +
 gnu/system/examples/plasma.tmpl | 67 +++++++++++++++++++++++++++++++++
 2 files changed, 68 insertions(+)
 create mode 100644 gnu/system/examples/plasma.tmpl

diff --git a/Makefile.am b/Makefile.am
index d76bfd2522..3f0ebcbf29 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -456,6 +456,7 @@ EXAMPLES =					\
   gnu/system/examples/desktop.tmpl		\
   gnu/system/examples/lightweight-desktop.tmpl	\
   gnu/system/examples/docker-image.tmpl		\
+  gnu/system/examples/plasma.tmpl		\
   gnu/system/examples/raspberry-pi-64.tmpl	\
   gnu/system/examples/raspberry-pi-64-nfs-root.tmpl	\
   gnu/system/examples/vm-image.tmpl
diff --git a/gnu/system/examples/plasma.tmpl b/gnu/system/examples/plasma.tmpl
new file mode 100644
index 0000000000..3df819a54f
--- /dev/null
+++ b/gnu/system/examples/plasma.tmpl
@@ -0,0 +1,67 @@
+;; This is an operating system configuration template
+;; for a "desktop" setup with Plasma.
+
+(use-modules (gnu) (gnu system nss))
+(use-service-modules desktop sddm xorg ssh)
+(use-package-modules certs gnome ssh admin fonts)
+(use-package-modules qt xorg tmux linux)
+
+(operating-system
+  (host-name "plasma")
+  (timezone "Asia/Shanghai")
+  (locale "en_US.utf8")
+
+  ;; Assuming /dev/sdX is the target hard disk, and "my-root"
+  ;; is the label of the target root file system.
+  (bootloader (bootloader-configuration
+               (bootloader grub-bootloader)
+               (targets (list "/dev/sdX"))))
+
+  (file-systems (cons (file-system
+                        (device "my-root")
+                        (mount-point "/")
+                        (type "ext4"))
+                      %base-file-systems))
+
+  (users (cons (user-account
+                (name "plasma")
+                (password (crypt "plasma" "$6$abc"))
+                (group "users")
+                (supplementary-groups '("wheel" "netdev"
+                                        "audio" "video")))
+               %base-user-accounts))
+
+  ;; This is where we specify system-wide packages.
+  (packages (cons* nss-certs         ;for HTTPS access
+                   neofetch
+                   htop
+                   tmux
+                   xprop
+                   strace
+                   %base-packages))
+
+  (services (cons*
+             ;; for debug
+             ;; (simple-service
+             ;;  'add-qt-debug-env
+             ;;  session-environment-service-type
+             ;;  '(("QT_MESSAGE_PATTERN"
+             ;;     . "[[%{time process} %{type}] %{appname}: %{category} %{function} - %{message}]")
+             ;;    ("QT_DEBUG_PLUGINS" . "1")
+             ;;    ("QML_IMPORT_TRACE" . "1")))
+             (service openssh-service-type
+                      (openssh-configuration
+                       (openssh openssh-sans-x)
+                       (port-number 2222)))
+             (service plasma-desktop-service-type)
+             (service sddm-service-type
+                      (sddm-configuration
+                       (theme "breeze")))
+             (modify-services %desktop-services
+               (delete gdm-service-type))))
+  ;; Allow resolution of '.local' host names with mDNS.
+  (name-service-switch %mdns-host-lookup-nss))
+
+;; Local Variables:
+;; mode: scheme
+;; End:
-- 
2.41.0