gnu: grub-efi-bootloader: Specialize grub-install invocation.
[jackhill/guix/guix.git] / gnu / system / examples / desktop.tmpl
1 ;; This is an operating system configuration template
2 ;; for a "desktop" setup with GNOME and Xfce where the
3 ;; root partition is encrypted with LUKS.
4
5 (use-modules (gnu) (gnu system nss))
6 (use-service-modules desktop)
7 (use-package-modules certs gnome)
8
9 (operating-system
10 (host-name "antelope")
11 (timezone "Europe/Paris")
12 (locale "en_US.utf8")
13
14 ;; Assuming /dev/sdX is the target hard disk, and "my-root"
15 ;; is the label of the target root file system.
16 (bootloader (bootloader-configuration
17 (bootloader grub-bootloader)
18 (device "/dev/sdX")))
19
20 ;; Specify a mapped device for the encrypted root partition.
21 ;; The UUID is that returned by 'cryptsetup luksUUID'.
22 (mapped-devices
23 (list (mapped-device
24 (source (uuid "12345678-1234-1234-1234-123456789abc"))
25 (target "my-root")
26 (type luks-device-mapping))))
27
28 (file-systems (cons (file-system
29 (device "my-root")
30 (mount-point "/")
31 (type "ext4")
32 (dependencies mapped-devices))
33 %base-file-systems))
34
35 (users (cons (user-account
36 (name "bob")
37 (comment "Alice's brother")
38 (group "users")
39 (supplementary-groups '("wheel" "netdev"
40 "audio" "video"))
41 (home-directory "/home/bob"))
42 %base-user-accounts))
43
44 ;; This is where we specify system-wide packages.
45 (packages (cons* nss-certs ;for HTTPS access
46 gvfs ;for user mounts
47 %base-packages))
48
49 ;; Add GNOME and/or Xfce---we can choose at the log-in
50 ;; screen with F1. Use the "desktop" services, which
51 ;; include the X11 log-in service, networking with Wicd,
52 ;; and more.
53 (services (cons* (gnome-desktop-service)
54 (xfce-desktop-service)
55 %desktop-services))
56
57 ;; Allow resolution of '.local' host names with mDNS.
58 (name-service-switch %mdns-host-lookup-nss))