summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Makefile.am3
-rw-r--r--doc.am3
-rw-r--r--doc/guix.texi12
-rw-r--r--gnu/system/examples/desktop.tmpl20
-rw-r--r--gnu/system/examples/lightweight-desktop.tmpl45
-rw-r--r--gnu/system/install.scm6
7 files changed, 75 insertions, 15 deletions
diff --git a/.gitignore b/.gitignore
index b5bbbaabdb..003412eeab 100644
--- a/.gitignore
+++ b/.gitignore
@@ -123,3 +123,4 @@ Makefile.in
 config.cache
 stamp-h[0-9]
 tmp
+/doc/os-config-lightweight-desktop.texi
diff --git a/Makefile.am b/Makefile.am
index a9c281d4d1..06700def93 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -183,7 +183,8 @@ KCONFIGS =					\
 # Templates, examples.
 EXAMPLES =					\
   gnu/system/examples/bare-bones.tmpl		\
-  gnu/system/examples/desktop.tmpl
+  gnu/system/examples/desktop.tmpl		\
+  gnu/system/examples/lightweight-desktop.tmpl
 
 GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go guix/tests.go
 
diff --git a/doc.am b/doc.am
index 8356ffa2dd..b9f07c3590 100644
--- a/doc.am
+++ b/doc.am
@@ -47,7 +47,8 @@ EXTRA_DIST +=					\
 
 OS_CONFIG_EXAMPLES_TEXI =			\
   doc/os-config-bare-bones.texi			\
-  doc/os-config-desktop.texi
+  doc/os-config-desktop.texi			\
+  doc/os-config-lightweight-desktop.texi
 
 # Bundle this file so that makeinfo finds it in out-of-source-tree builds.
 BUILT_SOURCES        += $(OS_CONFIG_EXAMPLES_TEXI)
diff --git a/doc/guix.texi b/doc/guix.texi
index 913545f1a7..186b8502e2 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -6218,13 +6218,21 @@ to create a new configuration which has the same values as the old
 configuration, but with a few modifications.
 
 The configuration for a typical ``desktop'' usage, with the X11 display
-server, a desktop environment, network management, power management, and
-more, would look like this:
+server, GNOME and Xfce (users can choose which of these desktop
+environments to use at the log-in screen by pressing @kbd{F1}), network
+management, power management, and more, would look like this:
 
 @lisp
 @include os-config-desktop.texi
 @end lisp
 
+A graphical environment with a choice of lightweight window managers
+instead of full-blown desktop environments would look like this:
+
+@lisp
+@include os-config-lightweight-desktop.texi
+@end lisp
+
 @xref{Desktop Services}, for the exact list of services provided by
 @var{%desktop-services}.  @xref{X.509 Certificates}, for background
 information about the @code{nss-certs} package that is used here.
diff --git a/gnu/system/examples/desktop.tmpl b/gnu/system/examples/desktop.tmpl
index 07183a533b..2fcf90f8b1 100644
--- a/gnu/system/examples/desktop.tmpl
+++ b/gnu/system/examples/desktop.tmpl
@@ -1,9 +1,9 @@
 ;; This is an operating system configuration template
-;; for a "desktop" setup with X11.
+;; for a "desktop" setup with GNOME and Xfce.
 
 (use-modules (gnu) (gnu system nss))
 (use-service-modules desktop)
-(use-package-modules xfce ratpoison certs)
+(use-package-modules certs)
 
 (operating-system
   (host-name "antelope")
@@ -29,15 +29,17 @@
                 (home-directory "/home/bob"))
                %base-user-accounts))
 
-  ;; Add Xfce and Ratpoison; that allows us to choose
-  ;; sessions using either of these at the log-in screen.
-  (packages (cons* xfce ratpoison    ;desktop environments
-                   nss-certs         ;for HTTPS access
+  ;; This is where we specify system-wide packages.
+  (packages (cons* nss-certs         ;for HTTPS access
                    %base-packages))
 
-  ;; Use the "desktop" services, which include the X11
-  ;; log-in service, networking with Wicd, and more.
-  (services %desktop-services)
+  ;; Add GNOME and/or Xfce---we can choose at the log-in
+  ;; screen with F1.  Use the "desktop" services, which
+  ;; include the X11 log-in service, networking with Wicd,
+  ;; and more.
+  (services (cons* (gnome-desktop-service)
+                   (xfce-desktop-service)
+                   %desktop-services))
 
   ;; Allow resolution of '.local' host names with mDNS.
   (name-service-switch %mdns-host-lookup-nss))
diff --git a/gnu/system/examples/lightweight-desktop.tmpl b/gnu/system/examples/lightweight-desktop.tmpl
new file mode 100644
index 0000000000..7cb461f2b9
--- /dev/null
+++ b/gnu/system/examples/lightweight-desktop.tmpl
@@ -0,0 +1,45 @@
+;; This is an operating system configuration template
+;; for a "desktop" setup without full-blown desktop
+;; environments.
+
+(use-modules (gnu) (gnu system nss))
+(use-service-modules desktop)
+(use-package-modules wm ratpoison certs)
+
+(operating-system
+  (host-name "antelope")
+  (timezone "Europe/Paris")
+  (locale "en_US.UTF-8")
+
+  ;; Assuming /dev/sdX is the target hard disk, and "my-root"
+  ;; is the label of the target root file system.
+  (bootloader (grub-configuration (device "/dev/sdX")))
+
+  (file-systems (cons (file-system
+                        (device "my-root")
+                        (title 'label)
+                        (mount-point "/")
+                        (type "ext4"))
+                      %base-file-systems))
+
+  (users (cons (user-account
+                (name "alice")
+                (comment "Bob's brother")
+                (group "users")
+                (supplementary-groups '("wheel" "netdev"
+                                        "audio" "video"))
+                (home-directory "/home/alice"))
+               %base-user-accounts))
+
+  ;; Add a bunch of window managers; we can choose one at
+  ;; the log-in screen with F1.
+  (packages (cons* ratpoison i3-wm xmonad  ;window managers
+                   nss-certs               ;for HTTPS access
+                   %base-packages))
+
+  ;; Use the "desktop" services, which include the X11
+  ;; log-in service, networking with Wicd, and more.
+  (services %desktop-services)
+
+  ;; Allow resolution of '.local' host names with mDNS.
+  (name-service-switch %mdns-host-lookup-nss))
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index b380716b69..d6434fd00d 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -215,9 +215,11 @@ the user's target storage device rather than on the RAM disk."
                                               (string-append #$output "/"
                                                              target)))
                                  '(#$(file "bare-bones.tmpl")
-                                   #$(file "desktop.tmpl"))
+                                   #$(file "desktop.tmpl")
+                                   #$(file "lightweight-desktop.tmpl"))
                                  '("bare-bones.scm"
-                                   "desktop.scm"))
+                                   "desktop.scm"
+                                   "lightweight-desktop.scm"))
                        #t)
                    #:modules '((guix build utils))))