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))))