#+TITLE: Guix configuration #+PROPERTY: header-args :mkdirp yes #+auto_tangle: t #+STARTUP: overview * System #+begin_src scheme :tangle ~/.config/guix/config.scm ;; Indicate which modules to import to access the variables ;; used in this configuration. (define-module (hermes) #:use-module (gnu) #:use-module (srfi srfi-1) #:use-module (gnu system nss) #:use-module (gnu services pm) #:use-module (gnu services ssh) #:use-module (gnu services cups) #:use-module (gnu services guix) #:use-module (gnu services desktop) #:use-module (gnu services docker) #:use-module (gnu services networking) #:use-module (gnu services virtualization) #:use-module (gnu packages wm) #:use-module (gnu packages cups) #:use-module (gnu packages vim) #:use-module (gnu packages gtk) #:use-module (gnu packages xorg) #:use-module (gnu packages emacs) #:use-module (gnu packages file-systems) #:use-module (gnu packages gnome) #:use-module (gnu packages mtools) #:use-module (gnu packages linux) #:use-module (gnu packages audio) #:use-module (gnu packages gnuzilla) #:use-module (gnu packages web-browsers) #:use-module (gnu packages version-control) #:use-module (gnu packages package-management) #:use-module (gnu packages linux) #:use-module (gnu packages admin) #:use-module (nongnu packages linux) #:use-module (nongnu system linux-initrd)) (use-service-modules cups desktop networking ssh xorg) (operating-system (host-name "hermes") (kernel linux) (firmware (list linux-firmware)) (initrd microcode-initrd) (kernel-loadable-modules (list v4l2loopback-linux-module)) (locale "en_US.utf8") (timezone "Europe/Athens") (keyboard-layout (keyboard-layout "us" #:options '("ctrl:nocaps"))) ;; The list of user accounts ('root' is implicit). (users (cons (user-account (name "apollo") (comment "Thanos Apollo") (group "users") (home-directory "/home/apollo") (supplementary-groups '("wheel" ;; sudo "netdev" ;; network devices "kvm" "tty" "input" "realtime" ;; Enable realtime scheduling "lp" ;; control bluetooth devices "audio" ;; control audio devices "video"))) ;; control video devices %base-user-accounts)) ;; Add the 'realtime' group (groups (cons (user-group (system? #t) (name "realtime")) %base-groups)) ;; 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" "emacs" "emacs-guix" "emacs-vterm" "emacs-dashboard" "emacs-multi-vterm" "emacs-pdf-tools" "emacs-stumpwm-mode" "stumpish" "xrandr" "picom" "gnome" "gnome-desktop" "nss-certs" "python" "bind" "alacritty" "emacs-vterm" "emacs-multi-vterm" "alsa-utils" "bluez-alsa" "gnome-bluetooth" "blueman" "qtile" "git" "stumpwm" "rofi" "qemu" "libvirt" "virt-manager" "font-jetbrains-mono")) %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 openssh-service-type) (service bluetooth-service-type) (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)) (bootloader (bootloader-configuration (bootloader grub-efi-bootloader) (targets (list "/boot/efi")) (keyboard-layout keyboard-layout))) (mapped-devices (list (mapped-device (source (uuid "0594b592-ddcb-4a3c-958d-c773d7a85d93")) (target "cryptroot") (type luks-device-mapping)) (mapped-device (source (uuid "a44f40ec-94c3-457a-a9ed-5db5396f3aea")) (target "crypthome") (type luks-device-mapping)))) ;; 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 "98B8-B93E" 'fat32)) (type "vfat")) (file-system (mount-point "/") (device "/dev/mapper/cryptroot") (type "ext4") (dependencies mapped-devices)) (file-system (mount-point "/home") (device "/dev/mapper/crypthome") (type "ext4") (dependencies mapped-devices)) (file-system (mount-point "/home/apollo/external") (device "/dev/sda1") (type "ext4") (dependencies mapped-devices)) %base-file-systems))) #+end_src * Channels #+begin_src scheme :tangle ~/.config/guix/channels.scm (cons* (channel (name 'guix) (url "https://git.savannah.gnu.org/git/guix.git") (branch "master") (introduction (make-channel-introduction "9edb3f66fd807b096b48283debdcddccfea34bad" (openpgp-fingerprint "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA")))) (channel (name 'nonguix) (url "https://gitlab.com/nonguix/nonguix") ;; Enable signature verification: (introduction (make-channel-introduction "897c1a470da759236cc11798f4e0a5f7d4d59fbc" (openpgp-fingerprint "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5")))) %default-channels) #+end_src