summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThanos Apollo <[email protected]>2023-01-13 23:16:12 +0200
committerThanos Apollo <[email protected]>2023-01-13 23:16:12 +0200
commit335fcb7f75d687e497a83cfa6804d66241826220 (patch)
tree3ff58e0311c48884a5c016cf1ed9c3b10638b9bd
parent304fae64fc9f4854f58968be729d5e4450e2fb45 (diff)
guix: encapsulate systems
-rw-r--r--.config/guix/evilgnu.scm25
-rw-r--r--.config/guix/system.scm155
2 files changed, 104 insertions, 76 deletions
diff --git a/.config/guix/evilgnu.scm b/.config/guix/evilgnu.scm
new file mode 100644
index 0000000..6f10bb5
--- /dev/null
+++ b/.config/guix/evilgnu.scm
@@ -0,0 +1,25 @@
+(define-module (evilgnu)
+ #:use-module (system)
+ #:use-module (gnu))
+
+(operating-system
+ (inherit base-operating-system)
+ (host-name "evilgnu")
+
+ (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)))
diff --git a/.config/guix/system.scm b/.config/guix/system.scm
index 032a83d..5f5255e 100644
--- a/.config/guix/system.scm
+++ b/.config/guix/system.scm
@@ -9,118 +9,121 @@
;; Indicate which modules to import to access the variables
;; used in this configuration.
-(use-modules (gnu) (nongnu packages linux))
-(use-service-modules cups desktop networking ssh xorg)
+(define-module (system)
+ #:use-module (gnu)
+ #:use-module (nongnu packages linux))
+
-(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")
+(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
+ ;; 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
+ (user-account
(name "elliot")
(comment "Elliot")
(group "users")
(home-directory "/home/elliot")
(supplementary-groups '("wheel" "netdev" "audio" "video")))
- %base-user-accounts))
+ %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"
- "nss-certs"))
- %base-packages))
+ ;; 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))
+ ;; 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 (bootloader-configuration
(bootloader grub-efi-bootloader)
(targets (list "/boot/efi"))
(keyboard-layout keyboard-layout)))
- (swap-devices (list (swap-space
+ (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
+ ;; 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
+ (file-system
(mount-point "/")
(device (uuid
"b0147644-6bbf-41b8-85c5-0a4c3fce042b"
'ext4))
(type "ext4"))
- (file-system
+ (file-system
(mount-point "/home")
(device (uuid
"4cf08e5e-47c3-41b4-bd05-abbe5e6f5590"
'ext4))
- (type "ext4")) %base-file-systems)))
+ (type "ext4")) %base-file-systems))))