guixsd-config

GuixSD configs for my systems
Log | Files | Refs

commit 2549493c0a7a4930c62c03a50072ac7b14d3d28d
parent 73e4e00719e52a7cab3f95627f8d9a3f9dd00298
Author: Vineet Kumar <git@vineetk.net>
Date:   Sat, 24 Jan 2026 12:55:46 -0500

reindent

Diffstat:
Mepistemia/channels.scm | 6+++---
Mepistemia/home/config.scm | 240++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mepistemia/packages/minecraft.scm | 160++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mepistemia/packages/suckless.scm | 10+++++-----
Mepistemia/services/zfs.scm | 40++++++++++++++++++++--------------------
Mepistemia/systems/linux-initrd.scm | 52++++++++++++++++++++++++++--------------------------
Mepistemia/systems/saklas.scm | 12++++++------
Mepistemia/systems/zfs.scm | 6+++---
8 files changed, 263 insertions(+), 263 deletions(-)

diff --git a/epistemia/channels.scm b/epistemia/channels.scm @@ -29,6 +29,6 @@ (openpgp-fingerprint "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA")))) (channel - (name 'guix-hpc) - (url "https://gitlab.inria.fr/guix-hpc/guix-hpc.git") - (branch "master"))) + (name 'guix-hpc) + (url "https://gitlab.inria.fr/guix-hpc/guix-hpc.git") + (branch "master"))) diff --git a/epistemia/home/config.scm b/epistemia/home/config.scm @@ -43,135 +43,135 @@ (package-input-rewriting `((,jack-1 . ,jack-2)))) (home-environment - (packages (list curl - htop - git - rsync + (packages (list curl + htop + git + rsync - ;; audio - zita-ajbridge - lsp-plugins - jack-2 - jack-example-tools - jalv - lv2-speech-denoiser - ;; (link-jack2 qjackctl) + ;; audio + zita-ajbridge + lsp-plugins + jack-2 + jack-example-tools + jalv + lv2-speech-denoiser + ;; (link-jack2 qjackctl) - ;; cryptography - age - gnupg - oath-toolkit + ;; cryptography + age + gnupg + oath-toolkit - ;; editor - emacs - emacs-age - emacs-auctex - e/emacs-citar - e/emacs-citeproc - e/emacs-clang-format - emacs-consult - emacs-eat - emacs-elfeed - e/emacs-esup - emacs-exwm - emacs-geiser - emacs-geiser-guile - e/emacs-gptel - e/emacs-hl-todo - e/emacs-kaolin-themes - emacs-ledger-mode - e/emacs-magit - e/emacs-magit-todos - emacs-marginalia - e/emacs-notmuch - emacs-orderless - e/emacs-org-mem - e/emacs-org-node - emacs-org-present - emacs-pdf-tools - emacs-rainbow-delimiters - e/emacs-skeletor - e/emacs-transient - emacs-undo-tree - emacs-vertico + ;; editor + emacs + emacs-age + emacs-auctex + e/emacs-citar + e/emacs-citeproc + e/emacs-clang-format + emacs-consult + emacs-eat + emacs-elfeed + e/emacs-esup + emacs-exwm + emacs-geiser + emacs-geiser-guile + e/emacs-gptel + e/emacs-hl-todo + e/emacs-kaolin-themes + emacs-ledger-mode + e/emacs-magit + e/emacs-magit-todos + emacs-marginalia + e/emacs-notmuch + emacs-orderless + e/emacs-org-mem + e/emacs-org-node + emacs-org-present + emacs-pdf-tools + emacs-rainbow-delimiters + e/emacs-skeletor + e/emacs-transient + emacs-undo-tree + emacs-vertico - ;; texlive - texlive - texlive-latexmk + ;; texlive + texlive + texlive-latexmk - ;; guile - guile-colorized - guile-readline + ;; guile + guile-colorized + guile-readline - ;; wayland - slurp - grim - wl-clipboard - wlr-randr + ;; wayland + slurp + grim + wl-clipboard + wlr-randr - ;; email - isync - msmtp - notmuch - oauth2ms + ;; email + isync + msmtp + notmuch + oauth2ms - ;; messaging - profanity + ;; messaging + profanity - ;; videos - (link-jack2 mpv) - yt-dlp + ;; videos + (link-jack2 mpv) + yt-dlp - ;; browser - qutebrowser + ;; browser + qutebrowser - ;; gaming - prismlauncher - steam)) + ;; gaming + prismlauncher + steam)) - (services (list (simple-service 'epistemia-env-vars - home-environment-variables-service-type - '(("PS1" . "\\h$ ") - ("PS2" . "> ") - ("PATH" . "$HOME/bin:$PATH") - ("XDG_CACHE_HOME" . "$HOME/.cache") - ("XDG_CONFIG_HOME" . "$HOME/.config") - ("XDG_DATA_HOME" . "$HOME/.local/share") - ("XDG_STATE_HOME" . "$HOME/.local/state") - ("XDG_RUNTIME_DIR" . "$XDG_STATE_HOME/runtime") - ("BROWSER" . "qutebrowser") - ("EDITOR" . "emacsclient -c") - ("VISUAL" . "emacsclient -t") - ("NOTMUCH_CONFIG" . "$XDG_CONFIG_HOME/notmuch/default/config") - ("TEXMFHOME" . "$XDG_CONFIG_HOME/texmf") - ("GOPROXY" . "direct") - ("AGE_KEY" . "$HOME/.ssh/id_ed25519") - ("AGE_PUB" . "${AGE_KEY}.pub") - ("KASI_DIR" . "/data/kasi") - ("KASI_EXT" . "age") - ("KASI_CLIPBOARD" . "xsel -ib") - ("KASI_DECRYPT" . "age -d -i $AGE_KEY") - ("KASI_ENCRYPT" . "age -R $AGE_PUB") - ("CRAWL_DIR" . "$XDG_DATA_HOME/crawl"))) - (simple-service 'ensure-xdg-runtime-dir - home-activation-service-type - (with-imported-modules '((guix build utils)) - #~(begin - (use-modules (guix build utils)) - (let ((runtime-dir (string-append (getenv "HOME") "/.local/state/runtime"))) - (mkdir-p runtime-dir) - (chmod runtime-dir #o700))))) - (service home-dbus-service-type) - (service home-sway-service-type - (sway-configuration - (startup-programs '("emacs --daemon" - "emacsclient -c" - "qutebrowser")) - (inputs - (list (sway-input - (identifier "type:pointer") - (extra-content '("accel_profile flat"))))))) - (service home-dotfiles-service-type - (home-dotfiles-configuration - (layout 'stow) - (directories '("../files"))))))) + (services (list (simple-service 'epistemia-env-vars + home-environment-variables-service-type + '(("PS1" . "\\h$ ") + ("PS2" . "> ") + ("PATH" . "$HOME/bin:$PATH") + ("XDG_CACHE_HOME" . "$HOME/.cache") + ("XDG_CONFIG_HOME" . "$HOME/.config") + ("XDG_DATA_HOME" . "$HOME/.local/share") + ("XDG_STATE_HOME" . "$HOME/.local/state") + ("XDG_RUNTIME_DIR" . "$XDG_STATE_HOME/runtime") + ("BROWSER" . "qutebrowser") + ("EDITOR" . "emacsclient -c") + ("VISUAL" . "emacsclient -t") + ("NOTMUCH_CONFIG" . "$XDG_CONFIG_HOME/notmuch/default/config") + ("TEXMFHOME" . "$XDG_CONFIG_HOME/texmf") + ("GOPROXY" . "direct") + ("AGE_KEY" . "$HOME/.ssh/id_ed25519") + ("AGE_PUB" . "${AGE_KEY}.pub") + ("KASI_DIR" . "/data/kasi") + ("KASI_EXT" . "age") + ("KASI_CLIPBOARD" . "xsel -ib") + ("KASI_DECRYPT" . "age -d -i $AGE_KEY") + ("KASI_ENCRYPT" . "age -R $AGE_PUB") + ("CRAWL_DIR" . "$XDG_DATA_HOME/crawl"))) + (simple-service 'ensure-xdg-runtime-dir + home-activation-service-type + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (let ((runtime-dir (string-append (getenv "HOME") "/.local/state/runtime"))) + (mkdir-p runtime-dir) + (chmod runtime-dir #o700))))) + (service home-dbus-service-type) + (service home-sway-service-type + (sway-configuration + (startup-programs '("emacs --daemon" + "emacsclient -c" + "qutebrowser")) + (inputs + (list (sway-input + (identifier "type:pointer") + (extra-content '("accel_profile flat"))))))) + (service home-dotfiles-service-type + (home-dotfiles-configuration + (layout 'stow) + (directories '("../files"))))))) diff --git a/epistemia/packages/minecraft.scm b/epistemia/packages/minecraft.scm @@ -18,86 +18,86 @@ (define-public prismlauncher (package - (name "prismlauncher") - (version "9.4") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/PrismLauncher/PrismLauncher") - (recursive? #t) - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1xxgyx0z5r3hk3yk4gglbfwvq2qk1j9a0dkrv55j4vrlkni79nrm")))) - (build-system cmake-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'install 'patch-paths - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin/prismlauncher")) - (xrandr (assoc-ref inputs "xrandr")) - (qtwayland (assoc-ref inputs "qtwayland")) - (qtsvg (assoc-ref inputs "qtsvg")) - (jdk17 (assoc-ref inputs "jdk17")) - (jdk25 (assoc-ref inputs "jdk25"))) - (wrap-program bin - `("JAVA_HOME" = (,jdk25)) - `("PATH" ":" prefix (,(string-append xrandr "/bin") - ,(string-append jdk17 "/bin") - ,(string-append jdk25 "/bin"))) - `("QT_PLUGIN_PATH" ":" prefix ,(map (lambda (package) - (string-append package "/lib/qt6/plugins")) - (list qtwayland qtsvg))) - `("LD_LIBRARY_PATH" ":" prefix - (,@(map (lambda (dep) - (string-append (assoc-ref inputs dep) - "/lib")) - '("libx11" "libxext" "libxcursor" - "libxrandr" "libxxf86vm" "mesa" - "glfw" "openal" "jemalloc" "alsa-lib"))))) - #t)))))) - (native-inputs (list extra-cmake-modules)) - (inputs - `(("bash" ,bash-minimal) - ("zlib" ,zlib) - ("qtbase" ,qtbase) - ("qt5compat" ,qt5compat) - ("qtnetworkauth" ,qtnetworkauth) - ("qtwayland" ,qtwayland) - ("qtsvg" ,qtsvg) - ("xrandr" ,xrandr) - ("libx11" ,libx11) - ("libxext" ,libxext) - ("libxcursor" ,libxcursor) - ("libxrandr" ,libxrandr) - ("libxxf86vm" ,libxxf86vm) - ("mesa" ,mesa) - ("glfw" ,glfw) - ("openal" ,openal) - ("alsa-lib" ,alsa-lib) - ("jemalloc" ,jemalloc) - ("jdk17" ,openjdk17 "jdk") - ("jdk25" ,openjdk25 "jdk"))) - (home-page "https://prismlauncher.org/") - (synopsis "Free, open source launcher for Minecraft") - (description - "Allows you to have multiple, separate instances of Minecraft (each with + (name "prismlauncher") + (version "9.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/PrismLauncher/PrismLauncher") + (recursive? #t) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1xxgyx0z5r3hk3yk4gglbfwvq2qk1j9a0dkrv55j4vrlkni79nrm")))) + (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'patch-paths + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin/prismlauncher")) + (xrandr (assoc-ref inputs "xrandr")) + (qtwayland (assoc-ref inputs "qtwayland")) + (qtsvg (assoc-ref inputs "qtsvg")) + (jdk17 (assoc-ref inputs "jdk17")) + (jdk25 (assoc-ref inputs "jdk25"))) + (wrap-program bin + `("JAVA_HOME" = (,jdk25)) + `("PATH" ":" prefix (,(string-append xrandr "/bin") + ,(string-append jdk17 "/bin") + ,(string-append jdk25 "/bin"))) + `("QT_PLUGIN_PATH" ":" prefix ,(map (lambda (package) + (string-append package "/lib/qt6/plugins")) + (list qtwayland qtsvg))) + `("LD_LIBRARY_PATH" ":" prefix + (,@(map (lambda (dep) + (string-append (assoc-ref inputs dep) + "/lib")) + '("libx11" "libxext" "libxcursor" + "libxrandr" "libxxf86vm" "mesa" + "glfw" "openal" "jemalloc" "alsa-lib"))))) + #t)))))) + (native-inputs (list extra-cmake-modules)) + (inputs + `(("bash" ,bash-minimal) + ("zlib" ,zlib) + ("qtbase" ,qtbase) + ("qt5compat" ,qt5compat) + ("qtnetworkauth" ,qtnetworkauth) + ("qtwayland" ,qtwayland) + ("qtsvg" ,qtsvg) + ("xrandr" ,xrandr) + ("libx11" ,libx11) + ("libxext" ,libxext) + ("libxcursor" ,libxcursor) + ("libxrandr" ,libxrandr) + ("libxxf86vm" ,libxxf86vm) + ("mesa" ,mesa) + ("glfw" ,glfw) + ("openal" ,openal) + ("alsa-lib" ,alsa-lib) + ("jemalloc" ,jemalloc) + ("jdk17" ,openjdk17 "jdk") + ("jdk25" ,openjdk25 "jdk"))) + (home-page "https://prismlauncher.org/") + (synopsis "Free, open source launcher for Minecraft") + (description + "Allows you to have multiple, separate instances of Minecraft (each with their own mods, texture packs, saves, etc), and helps you manage them and their associated options with a simple interface.") - (license (list license:gpl3 ; PolyMC, launcher - license:expat ; MinGW runtime, lionshead, tomlc99 - license:lgpl3 ; Qt 5/6 - license:lgpl3+ ; libnbt++ - license:lgpl2.1+ ; rainbow (KGuiAddons) - license:isc ; Hoedown - license:silofl1.1 ; Material Design Icons - license:lgpl2.1 ; Quazip - license:public-domain ; xz-minidec, murmur2, xz-embedded - license:bsd-3 ; ColumnResizer, O2 (Katabasis fork), + (license (list license:gpl3 ; PolyMC, launcher + license:expat ; MinGW runtime, lionshead, tomlc99 + license:lgpl3 ; Qt 5/6 + license:lgpl3+ ; libnbt++ + license:lgpl2.1+ ; rainbow (KGuiAddons) + license:isc ; Hoedown + license:silofl1.1 ; Material Design Icons + license:lgpl2.1 ; Quazip + license:public-domain ; xz-minidec, murmur2, xz-embedded + license:bsd-3 ; ColumnResizer, O2 (Katabasis fork), ; gamemode, localpeer - license:asl2.0 ; classparser, systeminfo - ;; Batch icon set: - (non-license:nonfree "file://COPYING.md"))))) + license:asl2.0 ; classparser, systeminfo + ;; Batch icon set: + (non-license:nonfree "file://COPYING.md"))))) diff --git a/epistemia/packages/suckless.scm b/epistemia/packages/suckless.scm @@ -36,11 +36,11 @@ (lambda _ (substitute* "Makefile" (("\\$\\{CC\\}") "gcc")) #t)) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (invoke "make" "install" - (string-append "DESTDIR=" out) "PREFIX="))))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (invoke "make" "install" + (string-append "DESTDIR=" out) "PREFIX="))))))) (inputs (list freetype libx11 libxft libxinerama)) (home-page "https://dwm.suckless.org/") diff --git a/epistemia/services/zfs.scm b/epistemia/services/zfs.scm @@ -15,26 +15,26 @@ ,@%default-modules))) (define zfs-scan (shepherd-service - (provision '(zfs-scan)) - (documentation "Scans for ZFS pools.") - (requirement '(kernel-module-loader udev)) - (modules scheme-modules) - (start #~(lambda _ - (invoke/quiet #$zpool "import" "-a" "-N" "-d" "/dev/disk/by-id"))) - (stop #~(const #f)))) + (provision '(zfs-scan)) + (documentation "Scans for ZFS pools.") + (requirement '(kernel-module-loader udev)) + (modules scheme-modules) + (start #~(lambda _ + (invoke/quiet #$zpool "import" "-a" "-N" "-d" "/dev/disk/by-id"))) + (stop #~(const #f)))) (define zfs-automount (shepherd-service - (provision '(zfs-automount)) - (documentation "Automounts ZFS data sets.") - (requirement '(zfs-scan)) - (modules scheme-modules) - (start #~(lambda _ - (with-output-to-port - (current-error-port) - (lambda () - (invoke #$zfs "mount" "-a" "-l"))))) - (stop #~(lambda _ - (chdir "/") - (invoke/quiet #$zfs "unmount" "-a" "-f") - #f)))) + (provision '(zfs-automount)) + (documentation "Automounts ZFS data sets.") + (requirement '(zfs-scan)) + (modules scheme-modules) + (start #~(lambda _ + (with-output-to-port + (current-error-port) + (lambda () + (invoke #$zfs "mount" "-a" "-l"))))) + (stop #~(lambda _ + (chdir "/") + (invoke/quiet #$zfs "unmount" "-a" "-f") + #f)))) (list zfs-scan zfs-automount))) diff --git a/epistemia/systems/linux-initrd.scm b/epistemia/systems/linux-initrd.scm @@ -149,8 +149,8 @@ MODULES." (define kodir (flat-linux-module-directory* linux - (list (gexp-input zfs-package "module")) - linux-modules)) + (list (gexp-input zfs-package "module")) + linux-modules)) (expression->initrd (with-imported-modules (source-module-closure @@ -175,30 +175,30 @@ MODULES." (boot-mod (resolve-module '(gnu build linux-boot))) (orig-canon (module-ref fs-mod 'canonicalize-device-spec)) (new-canon - (lambda (spec) - ;; ZFS datasets in Guix config are either strings or file-system-labels. - ;; If it's a label record, the first field is the label string. - (let ((device (cond - ((string? spec) spec) - ((and (struct? spec) - (string? (struct-ref spec 0))) - (struct-ref spec 0)) - (else #f)))) - (if (and device - (or (string-contains device "zroot/") - (string-contains device "zfs"))) - (begin - (format #t "Epistemia: ZFS bypass for ~s~%" device) - device) - (orig-canon spec)))))) - - ;; 1. Overwrite the definition source - (module-set! fs-mod 'canonicalize-device-spec new-canon) - - ;; 2. Overwrite the consumer's binding (Crucial for boot-system) - (module-set! boot-mod 'canonicalize-device-spec new-canon) - - (format #t "Epistemia: ZFS Monkey Patch Applied.~%")) + (lambda (spec) + ;; ZFS datasets in Guix config are either strings or file-system-labels. + ;; If it's a label record, the first field is the label string. + (let ((device (cond + ((string? spec) spec) + ((and (struct? spec) + (string? (struct-ref spec 0))) + (struct-ref spec 0)) + (else #f)))) + (if (and device + (or (string-contains device "zroot/") + (string-contains device "zfs"))) + (begin + (format #t "Epistemia: ZFS bypass for ~s~%" device) + device) + (orig-canon spec)))))) + + ;; 1. Overwrite the definition source + (module-set! fs-mod 'canonicalize-device-spec new-canon) + + ;; 2. Overwrite the consumer's binding (Crucial for boot-system) + (module-set! boot-mod 'canonicalize-device-spec new-canon) + + (format #t "Epistemia: ZFS Monkey Patch Applied.~%")) #~#t) (with-output-to-port (%make-void-port "w") diff --git a/epistemia/systems/saklas.scm b/epistemia/systems/saklas.scm @@ -229,9 +229,9 @@ rpz: (nginx-reverse-proxy "navidrome.demiurge.epistemia" 4533) (nginx-reverse-proxy "sdui.demiurge.epistemia" 5000)))))) %base-services) - (guix-service-type config => - (guix-configuration - (inherit config) - (authorized-keys - (append (list (local-file "../../demiurge.pub")) - %default-authorized-guix-keys))))))) + (guix-service-type config => + (guix-configuration + (inherit config) + (authorized-keys + (append (list (local-file "../../demiurge.pub")) + %default-authorized-guix-keys))))))) diff --git a/epistemia/systems/zfs.scm b/epistemia/systems/zfs.scm @@ -25,6 +25,6 @@ (define zfs-device-mapping (mapped-device-kind - (open open-zfs-device) - (close close-zfs-device) - (modules '((guix build utils))))) + (open open-zfs-device) + (close close-zfs-device) + (modules '((guix build utils)))))