summaryrefslogtreecommitdiff
path: root/os/config.scm
blob: 758b25a5803d1fce8a6cc530fb6388739b708b98 (plain)
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
;; This is an operating system configuration generated
;; by the graphical installer.
;;
;; Once installation is complete, you can learn and modify
;; this file to tweak the system configuration, and pass it
;; to the 'guix system reconfigure' command to effect your
;; changes.


;; Indicate which modules to import to access the variables
;; used in this configuration.
(use-modules (gnu)
	     (srfi srfi-1)
	     (nongnu packages linux)
	     (nongnu system linux-initrd))
(use-service-modules cups desktop networking ssh xorg nix)
(use-package-modules package-management)

(operating-system
 (kernel linux)
 (initrd microcode-initrd)
 (firmware (list linux-firmware))
 (locale "en_US.utf8")
 (timezone "Asia/Nicosia")
 (keyboard-layout (keyboard-layout "us" "colemak" #:options '("ctrl:nocaps")))
 (host-name "guix")

 ;; The list of user accounts ('root' is implicit).
 (users (cons* (user-account
                (name "mccd")
                (comment "Marc")
                (group "users")
                (home-directory "/home/mccd")
                (supplementary-groups '("wheel" "netdev" "audio" "video")))
               %base-user-accounts))

 ;; Packages installed system-wide.  Users can also install packages
 ;; under their own account: use 'guix search KEYWORD' to search
 ;; for packages and 'guix install PACKAGE' to install a package.
 (packages (append (list (specification->package "emacs")
                         (specification->package "emacs-exwm")
                         (specification->package "nix")
                         (specification->package "xf86-input-libinput")
			 (specification->package "xf86-video-fbdev")
			 (specification->package "xf86-video-nouveau")
                         (specification->package "guile")
			 (specification->package "texinfo")
	                 (specification->package "man-db")
			 (specification->package "man-pages")
			 (specification->package "adwaita-icon-theme")
			 (specification->package "gsettings-desktop-schemas")			 
			 (specification->package "mandoc")
                         (specification->package
                          "emacs-desktop-environment")) %base-packages))

 ;; Below is the list of system services.  To search for available
 ;; services, run 'guix system search KEYWORD' in a terminal.
 (services
  (append (list (service cups-service-type)
		(service nix-service-type)
		(service startx-command-service-type
			 (xorg-configuration (keyboard-layout keyboard-layout)))
		(simple-service 'block-distracting-sites
				hosts-service-type
				(list
				 (host "127.0.0.1" "omni.se"
				       '("omni.se" "omni.se"))
				 (host "127.0.0.1" "svt.se"
				       '("svt.se" "svt.se"))
				 (host "127.0.0.1" "reddit.com/r/sweden"
				       '("reddit.com/r/sweden" "reddit.com/r/sweden"))
				 (host "127.0.0.1" "reddit.com/r/decodingthegurus"
				       '("reddit.com/r/decodingthegurus" "reddit.com/r/decodingthegurus"))
				 (host "127.0.0.1" "news.ycombinator.com"
				       '("news.ycombinator.com" "news.ycombinator.com"))
				 (host "127.0.0.1" "lobste.rs"
				       '("lobste.rs" "lobste.rs")))))
	  (modify-services %desktop-services
			   (delete gdm-service-type)
			   (guix-service-type config => (guix-configuration
							 (inherit config)
							 (substitute-urls
							  (append (list "https://substitutes.nonguix.org")
								  %default-substitute-urls))
							 (authorized-keys
							  (append (list (local-file "./signing-key.pub"))
								  %default-authorized-guix-keys)))))))

  (bootloader (bootloader-configuration
                (bootloader grub-efi-bootloader)
                (targets (list "/boot/efi"))
                (keyboard-layout keyboard-layout)))
  (swap-devices (list (swap-space
                        (target (uuid
                                 "6ee329b8-9475-4675-9c46-b2f68ec97f08")))))

  ;; The list of file systems that get "mounted".  The unique
  ;; file system identifiers there ("UUIDs") can be obtained
  ;; by running 'blkid' in a terminal.
  (file-systems (cons* (file-system
                         (mount-point "/boot/efi")
                         (device (uuid "132A-1FDF"
                                       'fat32))
                         (type "vfat"))
                       (file-system
                         (mount-point "/")
                         (device (uuid
                                  "96a8d2d0-d991-4dc2-b50e-be8884887961"
                                  'ext4))
                         (type "ext4"))
                       (file-system
                         (mount-point "/home")
                         (device (uuid
                                  "b90ebc14-5472-4dbe-98e4-0b6e72f48199"
                                  'ext4))
                         (type "ext4")) %base-file-systems)))