summaryrefslogtreecommitdiff
path: root/config.scm
blob: efda31ca36b9f82cb3ccd63023e9aee2cf7e3b0b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
;; -*- mode: scheme; -*-
;; This is an operating system configuration template
;; for a "desktop" setup without full-blown desktop
;; environments.

(use-modules (gnu) (gnu system nss)
             (gnu services)
             (gnu services guix)
             (gnu system shadow))
(use-service-modules ssh desktop xorg networking)
(use-package-modules bootloaders wm text-editors fonts python-xyz terminals version-control
		    xorg
		    xdisorg
		    vim
		    emacs emacs-xyz
		    gnuzilla)

;; Pull in the home-environment definition from the sibling file. We extend
;; Guile's load path so use-modules can resolve (guix-home-config) as a real
;; module that exports the `home-config' binding.
(eval-when (load eval expand)
  (set! %load-path (cons "/home/cashmere/guix" %load-path)))
(use-modules (guix-home-config))

(operating-system
  (host-name "antelope")
  (timezone "Europe/Berlin")
  (locale "en_US.utf8")

  ;; Use the UEFI variant of GRUB with the EFI System
  ;; Partition mounted on /boot/efi.
  (bootloader (bootloader-configuration
                (bootloader grub-efi-bootloader)
                (targets '("/boot/efi"))))

  ;; Assume the target root file system is labelled "my-root",
  ;; and the EFI System Partition has UUID 1234-ABCD.
  (file-systems (append
                 (list (file-system
                         (device "/dev/vda3")
                         (mount-point "/")
                         (type "ext4"))
                       (file-system
                         (device "/dev/vda1")
                         (mount-point "/boot/efi")
                         (type "vfat")))
                 %base-file-systems))

  (users (cons (user-account
                (name "cashmere")
                (comment "Bob's sister")
                (group "users")
                (supplementary-groups '("wheel" "netdev"
                                        "audio" "video")))
               %base-user-accounts))

  ;; Add a bunch of window managers; we can choose one at
  ;; the log-in screen with F1.
  (packages (append (list
                     ;; window managers
                     qtile rofi
                     xorg-server xinit xwallpaper xset
                     vim
                     emacs emacs-exwm emacs-desktop-environment
                     ;; terminal emulator
                     xterm kitty font-jetbrains-mono
                     git)
                    %base-packages))

  ;; Use the "desktop" services, which include the X11
  ;; log-in service, networking with NetworkManager, and more.
  (services
   (append (list (service guix-home-service-type
                          `(("cashmere" ,home-config)))
                 (service xorg-server-service-type)
                 (service openssh-service-type)
                 (service dhcpcd-service-type)
                 (service slim-service-type
                          (slim-configuration (display ":0"))))
           (modify-services %base-services
             (guix-service-type config =>
               (guix-configuration
                 (inherit config)
                 (substitute-urls
                  (list
                   ;; Only fast, independent mirrors. bordeaux is excluded
                   ;; because it throttles EU users to ~300 KiB/s.
                   "https://ci.guix.gnu.org"
                   "https://bordeaux-us-east-mirror.cbaines.net"
                   "https://bordeaux-singapore-mirror.cbaines.net"
                   "https://hydra-guix-129.guix.gnu.org")))))))
  (name-service-switch %mdns-host-lookup-nss))