Files
opalfiles/Guix.org

5.7 KiB

Guix Configuration

I use GNU Guix as my operating system. I'm able to declare the state of the operating system in a series of configuration files in a similar way to Puppet. Eventually I would like to integrate Guix Home into this configuration.

Channels

Disclaimer: I use the nonguix channel only for the use of building Firefox from source easily.

(list (channel
        (name 'guix)
        (url "https://git.savannah.gnu.org/git/guix.git")
        (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")
        (introduction
          (make-channel-introduction
            "897c1a470da759236cc11798f4e0a5f7d4d59fbc"
            (openpgp-fingerprint
              "2A39 3FFF 68F4 EF7A 3D29  12AF 6F51 20A0 22FB B2D5")))))

Home Desktop

(use-modules (gnu)
	     (nongnu packages linux))

(use-service-modules
  cups
  desktop
  networking
  ssh
  xorg)

(operating-system
  (kernel linux)
  (firmware (list linux-firmware))
  (locale "en_US.utf8")
  (timezone "America/Los_Angeles")
  (keyboard-layout (keyboard-layout "us"))
  (host-name "borges")
  (users (cons* (user-account
                  (name "opal")
                  (comment "opal")
                  (group "users")
                  (home-directory "/home/opal")
                  (supplementary-groups
                   '("wheel"
		     "netdev"
		     "audio"
		     "video")))
                %base-user-accounts))
  (packages
    (append
     (list
      (specification->package "git")
      (specification->package "xclip")
      (specification->package "vim")
      (specification->package "nss-certs")
      (specification->package "stow")
      (specification->package "exfat-utils")
      (specification->package "emacs")
      (specification->package "emacs-exwm")
      (specification->package "bluez")
      (specification->package "bluez-alsa")
      (specification->package "pulseaudio")
      (specification->package "nyxt")
      (specification->package "keepassxc")
      (specification->package "font-fira-mono")
      (specification->package "font-fira-sans")
      (specification->package "font-fira-code")
      (specification->package "gnome-tweaks"))
     %base-packages))
  (services
    (append
      (list (service gnome-desktop-service-type)
            (set-xorg-configuration
              (xorg-configuration
                (keyboard-layout keyboard-layout))))
      %desktop-services))
  (bootloader
    (bootloader-configuration
      (bootloader grub-efi-bootloader)
      (targets (list "/boot/efi"))
      (keyboard-layout keyboard-layout)))
  (mapped-devices
    (list (mapped-device
            (source
              (uuid "40aa6387-e935-4f70-8e7d-1975678a5a32"))
            (target "cryptroot")
            (type luks-device-mapping))))
  (file-systems
    (cons* (file-system
             (mount-point "/")
             (device "/dev/mapper/cryptroot")
             (type "btrfs")
             (dependencies mapped-devices))
           (file-system
             (mount-point "/boot/efi")
             (device (uuid "1C3B-10F5" 'fat32))
             (type "vfat"))
           %base-file-systems)))

Work Laptop

(use-modules (gnu)
	     (nongnu packages linux))
(use-service-modules
  cups
  desktop
  networking
  ssh
  xorg)

(operating-system
 (kernel linux)
 (firmware (list linux-firmware))
 (locale "en_US.utf8")
 (timezone "America/Los_Angeles")
 (keyboard-layout (keyboard-layout "us"))
 (host-name "work")
 (users (cons* (user-account
                (name "opal")
                (comment "Opal")
                (group "users")
                (home-directory "/home/opal")
                (supplementary-groups
                 '("wheel" "netdev" "audio" "video")))
               %base-user-accounts))
 (packages
  (append
   (list
    (specification->package "git")
    (specification->package "xclip")
    (specification->package "vim")
    (specification->package "nss-certs")
    (specification->package "stow")
    (specification->package "exfat-utils")
    (specification->package "emacs")
    (specification->package "emacs-exwm")
    (specification->package "bluez")
    (specification->package "bluez-alsa")
    (specification->package "pulseaudio")
    (specification->package "nyxt")
    (specification->package "keepassxc")
    (specification->package "font-fira-mono")
    (specification->package "font-fira-sans")
    (specification->package "font-fira-code")
    (specification->package "gnome-tweaks"))
   %base-packages))
 (services
  (append
   (list (service gnome-desktop-service-type)
         (service cups-service-type)
         (set-xorg-configuration
          (xorg-configuration
           (keyboard-layout keyboard-layout))))
   %desktop-services))
 (bootloader
  (bootloader-configuration
   (bootloader grub-efi-bootloader)
   (targets (list "/boot/efi"))
   (keyboard-layout keyboard-layout)))
 (mapped-devices
  (list (mapped-device
         (source
          (uuid "abe760e2-4ba5-4f43-81a2-1c3f16eb62a8"))
         (target "cryptroot")
         (type luks-device-mapping))))
 (file-systems
  (cons* (file-system
          (mount-point "/")
          (device "/dev/mapper/cryptroot")
          (type "btrfs")
          (dependencies mapped-devices))
         (file-system
          (mount-point "/boot/efi")
          (device (uuid "15B3-5DE5" 'fat32))
          (type "vfat"))
         %base-file-systems)))