summaryrefslogtreecommitdiff
path: root/.config/guix/system.scm
blob: 5f5255ead0721bc6589bdd3ebf74721e74ec0298 (about) (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
117
118
119
120
121
122
123
124
125
126
127
128
129
;; 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.
(define-module (system)
  #:use-module (gnu)
  #:use-module (nongnu packages linux))


(use-service-modules cups desktop networking ssh xorg)
(define-public base-operating-system
  (operating-system
   (kernel linux)
   (firmware (list linux-firmware))
   (locale "en_US.utf8")
   (timezone "Europe/Athens")
   (keyboard-layout (keyboard-layout "us,gr"
				     #:options
				     '("ctrl:nocaps")))
   (host-name "evilgnu")

   ;; The list of user accounts ('root' is implicit).
   (users (cons* (user-account
                  (name "apollo")
                  (comment "Apollo")
                  (group "users")
                  (home-directory "/home/apollo")
                  (supplementary-groups '("wheel" "netdev" "audio" "video")))
                 (user-account
                  (name "elliot")
                  (comment "Elliot")
                  (group "users")
                  (home-directory "/home/elliot")
                  (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 (map specification->package
			  `("emacs-exwm"
			    "emacs-desktop-environment"
			    "gnome"
			    "gnome-desktop"
			    "nss-certs"
			    "htop"
			    "python"
			    "firefox"
			    "telegram-desktop"
			    "alacritty"
			    "emacs-vterm"
			    "emacs-multi-vterm"
			    "bluez-alsa"
			    "gnome-bluetooth"
			    "blueman"
			    "qtile"
			    "flatpak"
			    "yt-dlp"
			    "git"))
                     %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 gnome-desktop-service-type)
		  ;; (service static-networking-service-type
                  ;;          (list (static-networking
                  ;;                 (addresses
                  ;;                  (list (network-address
                  ;;                         (device "enp5s0")
                  ;;                         (value "192.168.1.26/24"))))
                  ;;                 (routes
                  ;;                  (list (network-route
                  ;;                         (destination "default")
                  ;;                         (gateway "192.168.1.255"))))
                  ;;                 (name-servers '("192.168.1.1"
                  ;;                                 "8.8.8.8"
		  ;; 				 "fe80::1%enp5s0")))))
                  ;; To configure OpenSSH, pass an 'openssh-configuration'
                  ;; record as a second argument to 'service' below.
                  (service openssh-service-type)
		  (bluetooth-service #:auto-enable? #t)
                  (service cups-service-type)
                  (set-xorg-configuration
                   (xorg-configuration (keyboard-layout keyboard-layout))))
            ;; This is the default list of services we
            ;; are appending to.
	    %desktop-services))
   ;; (static-networking-service "eth0" "192.168.1.26"
   ;; 			      #:netmask "255.255.255.0"
   ;; 			      #:gateway "192.168.1.255"
   ;; 			      #:name-servers '("192.168.1.1"
   ;; 					       "8.8.8.8")))
   
   (bootloader (bootloader-configuration
                (bootloader grub-efi-bootloader)
                (targets (list "/boot/efi"))
                (keyboard-layout keyboard-layout)))
   (swap-devices (list (swap-space
                        (target (uuid
                                 "7c3875ab-ccc0-49b5-bdd5-b49909cf3c01")))))

   ;; 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 "021E-83B3"
                                       'fat32))
                         (type "vfat"))
			(file-system
                         (mount-point "/")
                         (device (uuid
                                  "b0147644-6bbf-41b8-85c5-0a4c3fce042b"
                                  'ext4))
                         (type "ext4"))
			(file-system
                         (mount-point "/home")
                         (device (uuid
                                  "4cf08e5e-47c3-41b4-bd05-abbe5e6f5590"
                                  'ext4))
                         (type "ext4")) %base-file-systems))))