new-guix-dotfiles/Sanderson.org

9.6 KiB

Sanderson config

Main system

Module imports

(use-modules (gnu)
             (nongnu packages linux)
             (nongnu system linux-initrd)
             (gnu packages cups)
             (gnu packages shells)
             (nongnu packages printers))
(use-service-modules cups desktop networking ssh syncthing xorg)

Main OS config

(operating-system
 (kernel linux)
 (initrd microcode-initrd)
 (firmware (list linux-firmware))
 (locale "en_US.utf8")
 (timezone "America/Chicago")
 (keyboard-layout (keyboard-layout "us"))
 (host-name "sanderson")

 ;; The list of user accounts ('root' is implicit).
 (users (cons* (user-account
                (name "skylar")
                (comment "Skylar")
                (group "users")
                (shell (file-append fish "/bin/fish"))
                (home-directory "/home/skylar")
                (supplementary-groups '("wheel" "netdev" "audio" "video")))
               %base-user-accounts))

System 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 %base-packages)

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 plasma-desktop-service-type)

               ;; To configure OpenSSH, pass an 'openssh-configuration'
               ;; record as a second argument to 'service' below.
               (service openssh-service-type)
               (service cups-service-type
                        (cups-configuration
                         (web-interface? #t)
                         (extensions
                          (list brlaser cups-filters epson-inkjet-printer-escpr foomatic-filters hplip hplip-plugin splix))))
               (set-xorg-configuration
                (xorg-configuration (keyboard-layout keyboard-layout)))
               (service syncthing-service-type
                        (syncthing-configuration
                         (user "skylar")
                         (home "/home/skylar")))
               (simple-service 'add-hosts
                               hosts-service-type
                               (list (host "192.168.254.167" "vtt"
                                           '("vtt.skylarhill.me"))
                                     (host "192.168.254.167" "files"
                                           '("files.skylarhill.me")))))

nonguix substitutes

;; This is the default list of services we
;; are appending to.
(modify-services %desktop-services
                 (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)))))))

Filesystem and partition config

(bootloader (bootloader-configuration
             (bootloader grub-bootloader)
             (targets (list "/dev/sda"))
             (keyboard-layout keyboard-layout)))
(swap-devices (list (swap-space
                     (target (uuid
                              "646006cb-84a4-46ea-a03c-78a343b2fd07")))))

;; 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 "/")
                      (device (uuid
                               "38be76dc-b7d8-4433-bab6-04c6c7f62733"
                               'ext4))
                      (type "ext4")) %base-file-systems)))

Home configuration

Module imports

(use-modules (gnu home)
             (gnu home services)
             (gnu packages)
             (gnu packages emacs-xyz)
             (gnu packages gnupg)
             (gnu packages scheme)
             (gnu packages text-editors)
             (gnu services)
             (guix build-system emacs)
             (guix build-system font)
             (guix download)
             (guix gexp)
             (guix packages)
             (gnu home services shells)
             (gnu home services gnupg))

Home packages

(home-environment
 ;; Below is the list of packages that will show up in your
 ;; Home profile, under ~/.guix-home/profile.
 (packages (specifications->packages
            (list "bat"
                  "blinkenlights"
                  "calibre"
                  "cups"
                  "curl"
                  "emacs"
                  "fd"
                  "firefox"
                  "font-fira-code"
                  "font-google-noto"
                  "font-google-noto-emoji"
                  "font-google-noto-serif-cjk"
                  "font-microsoft-web-core-fonts"
                  "font-sony-misc"
                  "gerbil"
                  "gimp"
                  "git"
                  "gnupg"
                  "gnutls"
                  "guile"
                  "guile-hall"
                  "hare"
                  "haunt"
                  "hicolor-icon-theme"
                  "hplip"
                  "inkscape"
                  "ispell"
                  "kicad"
                  "kicad-footprints"
                  "kicad-symbols"
                  "kitty"
                  "kmonad"
                  "kwallet"
                  "libresprite"
                  "magic-wormhole"
                  "markdown"
                  "nheko"
                  "node"
                  "offlineimap3"
                  "okular"
                  "opentaxsolver"
                  "mu"
                  "pamixer"
                  "password-store"
                  "pavucontrol"
                  "profanity"
                  "python"
                  "racket"
                  "ripgrep"
                  "rofi"
                  "rofi-pass"
                  "rsync"
                  "skribilo"
                  "smtpmail"
                  "steam"
                  "swi-prolog"
                  "unzip"
                  "xclip"
                  "zoom")))

Home services

;; Below is the list of Home services.  To search for available
;; services, run 'guix home search KEYWORD' in a terminal.
(services
 (list #;(service home-bash-service-type
                (home-bash-configuration
                 (aliases '(("grep" . "grep --color=auto")
                            ("ip" . "ip -color=auto")
                            ("ll" . "ls -l")
                            ("ls" . "ls -p --color=auto")))
                 (bashrc (list (local-file
                                "/home/skylar/.config/guix/home/.bashrc"
                                "bashrc")))
                 (bash-profile (list (local-file
                                      "/home/skylar/.config/guix/home/.bash_profile"
                                      "bash_profile")))))
       (service home-fish-service-type
                (home-fish-configuration
                 (environment-variables '(("GUILE_LOAD_PATH" . "/home/skylar/.guix-home/profile/share/guile/site/3.0:/run/current-system/share/guile/site/3.0")
                                          ("GUILE_LOAD_COMPILED_PATH" . "/home/skylar/.guix-home/profile/lib/guile/site/3.0:/run/current-system/share/guile/site/3.0")))
                 (aliases '(("grep" . "grep --color=auto")
                            ("ip" . "ip -color=auto")
                            ("ll" . "ls -l")
                            ("ls" . "ls -p --color=auto")))))
       (service home-bash-service-type
                (home-bash-configuration
                 (environment-variables '(("GUILE_LOAD_PATH" . "/home/skylar/.guix-home/profile/share/guile/site/3.0:/run/current-system/share/guile/site/3.0")
                                          ("GUILE_LOAD_COMPILED_PATH" . "/home/skylar/.guix-home/profile/lib/guile/site/3.0:/run/current-system/share/guile/site/3.0")))
                 (aliases '(("grep" . "grep --color=auto")
                            ("ip" . "ip -color=auto")
                            ("ll" . "ls -l")
                            ("ls" . "ls -p --color=auto")))))
       (service home-gpg-agent-service-type
                (home-gpg-agent-configuration
                 (pinentry-program
                  (file-append pinentry "/bin/pinentry"))
                 (default-cache-ttl 86400)
                 (max-cache-ttl 86400)
                 (ssh-support? #t)))
       (service home-files-service-type
                `((".offlineimaprc" ,(local-file "offlineimaprc"))
                  (".config/rofi/config.rasi" ,(local-file "rofi.rasi"))
                  (".local/bin/offlineimap-pass.py" ,(local-file "offlineimap-pass.py"))
                  (".doom.d/config.el" ,(local-file "doom/config.el"))
                  (".doom.d/init.el" ,(local-file "doom/init.el"))
                  (".doom.d/packages.el" ,(local-file "doom/packages.el")))))))