diff options
author | bd <bdunahu@operationnull.com> | 2025-01-25 15:15:56 -0500 |
---|---|---|
committer | bd <bdunahu@operationnull.com> | 2025-01-25 15:15:56 -0500 |
commit | 93b2088a04c13a9f4f5934948fc9540f9f552b00 (patch) | |
tree | d3339859c47ab55fd0ded0f7acf90c30c412a0d5 /.config | |
parent | a76f5a41c36311103786e43e2497cf93c613edde (diff) |
Refactor guix config for a single central packages file
Diffstat (limited to '.config')
-rw-r--r-- | .config/guix/garm.scm | 25 | ||||
-rw-r--r-- | .config/guix/modules/dwm.scm | 6 | ||||
-rw-r--r-- | .config/guix/modules/emacs.scm | 55 | ||||
-rw-r--r-- | .config/guix/modules/packages/packages.scm | 173 | ||||
-rw-r--r-- | .config/guix/modules/services/base.scm (renamed from .config/guix/modules/base.scm) | 119 | ||||
-rw-r--r-- | .config/guix/modules/services/xorg.scm (renamed from .config/guix/modules/xorg.scm) | 48 | ||||
-rw-r--r-- | .config/guix/modules/ymir.scm | 17 |
7 files changed, 207 insertions, 236 deletions
diff --git a/.config/guix/garm.scm b/.config/guix/garm.scm index 4dc783b..e4d895c 100644 --- a/.config/guix/garm.scm +++ b/.config/guix/garm.scm @@ -10,10 +10,11 @@ #:use-module (gnu services guix) #:use-module (gnu services pm) #:use-module (guix gexp) - #:use-module (modules base) - #:use-module (modules mail) - #:use-module (modules xorg) - #:use-module (modules ymir)) + #:use-module (packages packages) + #:use-module (services base) + #:use-module (services mail) + #:use-module (services xorg) + #:use-module (ymir)) ;;; Commentary: ;;; @@ -23,9 +24,13 @@ (define home (home-environment + (packages + `(,@bd-packages-desktop + ,@bd-packages-fun + ,@bd-packages-extra + ,@bd-packages-development)) (services - `( - ,@bd-base-home-services + `(,@bd-base-home-services ,@bd-mail-home-services ,@bd-desktop-home-services)))) @@ -35,12 +40,8 @@ (host-name "garm") (packages - `(,@bd-base-system-packages - ,@bd-desktop-system-packages - ,@(list - brightnessctl - macchanger - tlp))) + `(,@bd-packages-system + ,@bd-packages-laptop)) (services `(,@bd-base-system-services diff --git a/.config/guix/modules/dwm.scm b/.config/guix/modules/dwm.scm index 1befa60..3c577f5 100644 --- a/.config/guix/modules/dwm.scm +++ b/.config/guix/modules/dwm.scm @@ -6,12 +6,6 @@ #:use-module (guix packages) #:export (bd-dwm-system-packages)) -(use-package-modules - suckless ;; dwm - xdisorg ;; xdotool - xorg ;; xprop - ) - (define bd-dwm (package (inherit dwm) diff --git a/.config/guix/modules/emacs.scm b/.config/guix/modules/emacs.scm deleted file mode 100644 index a3c4972..0000000 --- a/.config/guix/modules/emacs.scm +++ /dev/null @@ -1,55 +0,0 @@ -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Provides a home-service, installing ;; -;; my required emacs packages. Because ;; -;; root cannot use my emacs config, ;; -;; installing packages in my home is ;; -;; ideal. ;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - - -(define-module (modules emacs) - #:use-module (gnu) - #:use-module (gnu home services) - #:use-module (gnu services) - #:use-module (gnu services configuration) - #:use-module (gnu system) - #:use-module (guix gexp) - #:export (bd-home-emacs-service-type)) - -(use-package-modules - aspell - emacs-xyz - cpp - mail - lisp) - - -(define (bd-emacs-package-list config) - (list - emacs-anki-editor - emacs-dash - emacs-denote - emacs-elpher - emacs-exwm - emacs-f - emacs-guix - emacs-paredit - emacs-pinentry - emacs-rainbow-delimiters - emacs-rainbow-mode - - - aspell - aspell-dict-en - )) - - -(define bd-home-emacs-service-type - (service-type (name 'emacs-config) - (description "A service which deploys my -emacs configuration.") - (extensions - (list (service-extension - home-profile-service-type - bd-emacs-package-list))) - (default-value #f))) diff --git a/.config/guix/modules/packages/packages.scm b/.config/guix/modules/packages/packages.scm new file mode 100644 index 0000000..8a6e614 --- /dev/null +++ b/.config/guix/modules/packages/packages.scm @@ -0,0 +1,173 @@ +(define-module (packages packages) + #:use-module (gnu) + #:use-module (gnu system) + #:use-module (guix gexp) + #:use-module (guix packages) + #:export (bd-packages-system + bd-packages-laptop + bd-packages-desktop + bd-packages-dwm + bd-packages-fun + bd-packages-extra + bd-packages-development + )) + +;;; Commentary: +;;; Code: + +(use-package-modules + admin ;; netcat + algebra ;; bc + commencement ;; gcc-toolchain + compression ;; unzip, zip + compton ;; picom + cryptsetup ;; cryptsetup + curl ;; curl + databases ;; recutils + education ;; anki + emulators ;; mupen64plus*, bsnes, mgba + fonts ;; font-terminus, font-openmoji, font-awesome + fontutils ;; fontconfig + games ;; nethack + gimp ;; gimp-next + gnome ;; libnotify, brightnessctl + networking ;; maccchanger + gnupg ;; gnupg + gnuzilla ;; icecat + graphviz ;; graphviz + image ;; flameshot + imagemagick ;; imagemagick + image-viewers ;; feh, nsxiv + librewolf ;; librewolf + linux ;; sysstat, tlp + mail ;; offlineimap + man ;; man-pages + package-management ;; stow + password-utils ;; pass-otp, password-store + pdf ;; xpdf, pdfgrep, zathura, zathura-pdf-mupdf + pulseaudio ;; pavucontrol, pulseaudio, + python ;; python + rsync ;; rsync + rust-apps ;; ripgrep + screen ;; screen + suckless ;; dwm + texlive ;; texlive + tex ;; texlive-dvipng + tor-browsers ;; tor-browser + version-control ;; git + video ;; ffmpeg, mpv, yt-dlp + vim ;; vim + web ;; jq + wm ;; dunst + xdisorg ;; xdotool, xrdb + xorg ;; xf86-input-libinput, xf86-video-fbdev, xinit... + ) + +(define bd-dwm + (package + (inherit dwm) + (name "bdunahu-dwm") + (inputs (modify-inputs (package-inputs dwm))) + (source (local-file "dwm" #:recursive? #t)))) + +(define bd-packages-system + (append! + (list + cryptsetup + curl + git + man-pages + recutils + ripgrep + screen + sysstat + unzip + vim + zip) + %base-packages)) + +(define bd-packages-laptop + (list + brightnessctl + macchanger + tlp)) + +(define bd-packages-desktop + (list + dunst + feh + ffmpeg + flameshot + font-awesome + fontconfig + font-openmoji + font-terminus + gnupg + graphviz + icecat + imagemagick + libnotify + mpv + nsxiv + password-store + pavucontrol + picom + pulseaudio + texlive + texlive-dvipng + torbrowser + xf86-input-libinput + xf86-video-fbdev + xinit + xinput + xmodmap + xorg-server + xrandr + xrdb + xset + xss-lock + yt-dlp + zathura + zathura-pdf-mupdf + )) + +(define bd-packages-dwm + (list + bd-dwm + xdotool + xprop + )) + +(define bd-packages-fun + (list + bsnes + mgba + mupen64plus-audio-sdl + mupen64plus-rsp-hle + mupen64plus-ui-console + nethack + )) + +(define bd-packages-extra + (list + anki + gimp + librewolf + pdfgrep + xpdf; pdftotext + )) + +(define bd-packages-development + (list + bc + gcc-toolchain + jq + netcat + offlineimap3 + python + rsync + stow + )) + + +;;; packages.scm ends here diff --git a/.config/guix/modules/base.scm b/.config/guix/modules/services/base.scm index 389ff56..7629bf8 100644 --- a/.config/guix/modules/base.scm +++ b/.config/guix/modules/services/base.scm @@ -1,4 +1,4 @@ -(define-module (modules base) +(define-module (services base) #:use-module (gnu) #:use-module (gnu home services) #:use-module (gnu home services dict) @@ -8,58 +8,18 @@ #:use-module (gnu home services shepherd) #:use-module (gnu home services ssh) #:use-module (gnu home services xdg) + #:use-module (gnu packages gnupg) #:use-module (ice-9 rdelim) #:use-module (gnu system) #:use-module (guix gexp) - #:use-module (modules emacs) - #:export (bd-base-system-packages - bd-base-system-services + #:use-module (services emacs) + #:export (bd-base-system-services bd-base-home-services)) (use-service-modules admin avahi base dbus desktop file-sharing networking ssh) -(use-package-modules - admin ;; netcat - algebra ;; bc - commencement ;; gcc-toolchain - compression ;; unzip, zip - cryptsetup ;; cryptsetup - curl ;; curl - databases ;; recutils - education ;; anki - emulators ;; mupen64plus*, bsnes, mgba - fonts ;; font-terminus, font-openmoji, font-awesome - fontutils ;; fontconfig - games ;; nethack - gimp ;; gimp-next - gnupg ;; gnupg, pinentry, pinentry-emacs - gnuzilla ;; icecat - graphviz ;; graphviz - image ;; flameshot - imagemagick ;; imagemagick - image-viewers ;; nsxiv - librewolf ;; librewolf - linux ;; sysstat - mail ;; offlineimap - man ;; man-pages - package-management ;; stow - password-utils ;; pass-otp, password-store - pdf ;; xpdf, pdfgrep, zathura, zathura-pdf-mupdf - python ;; python - rsync ;; rsync - screen ;; screen - rust-apps ;; ripgrep - texlive ;; texlive - tex ;; texlive-dvipng - tor-browsers ;; tor-browser - version-control ;; git - video ;; ffmpeg, mpv, yt-dlp - vim ;; vim - web ;; jq - ) - (define (read-hosts filename) (let ((port (open-input-file filename))) (let loop ((lines '())) @@ -69,73 +29,6 @@ lines) (loop (cons line lines))))))) -(define base - (list - gnupg - offlineimap3 - pass-otp - password-store - pinentry-emacs - screen - xpdf ; pdftotext - yt-dlp - - anki - bc - cryptsetup - curl - gcc-toolchain - git - jq - man-pages - netcat - nsxiv - pdfgrep - python - recutils - ripgrep - rsync - stow - sysstat - texlive - texlive-dvipng - unzip - vim - zathura - zathura-pdf-mupdf ; epub - zip - )) - -(define desk - (list - bsnes - ffmpeg - flameshot - font-awesome - fontconfig - font-openmoji - font-terminus - gimp - graphviz - icecat - imagemagick - librewolf - mgba - mpv - mupen64plus-audio-sdl - mupen64plus-rsp-hle - mupen64plus-ui-console - nethack - torbrowser - )) - -(define bd-base-system-packages - (append! - base - desk - %base-packages - )) - (define bd-base-system-services `( ;; so that non-root users in the wheel group can @@ -204,7 +97,7 @@ (aliases '(("auth" . "echo -e \"$PWD\n\" >> $HOME/.config/guix/shell-authorized-directories") ("cp" . "cp -i") ("grep" . "grep --color=auto") - ("guix-rcfg" . "sudo guix system -L ${HOME}/.config/guix/ reconfigure ${HOME}/.config/guix/${HOSTNAME}.scm") + ("guix-rcfg" . "sudo guix system -L ${HOME}/.config/guix/modules/ reconfigure ${HOME}/.config/guix/${HOSTNAME}.scm") ("ll" . "ls -l") ("ls" . "ls -p --color=auto") ("mkd" . "mkdir -pv") @@ -233,7 +126,7 @@ alias | sed -E \"s/^alias ([^=]+)='(.*)'$/alias \\1 \\2 \\$*/g; s/'\\\\\\''/'/g; ("NETHACKOPTIONS" . "@$XDG_CONFIG_HOME/nethack/config") ("PATH" . "$HOME/.local/bin:$PATH") - ("ZATHURA_PLUGINS_PATH" . "/run/current-system/profile/lib/zathura") + ("ZATHURA_PLUGINS_PATH" . "/home/bdunahu/.guix-home/profile/lib/zathura") )))) (service home-mcron-service-type diff --git a/.config/guix/modules/xorg.scm b/.config/guix/modules/services/xorg.scm index b857ab9..2795c1c 100644 --- a/.config/guix/modules/xorg.scm +++ b/.config/guix/modules/services/xorg.scm @@ -1,58 +1,18 @@ -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Provides a set of my preferred ;; -;; program and services for x desktops ;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - - -(define-module (modules xorg) +(define-module (services xorg) #:use-module (gnu) #:use-module (gnu home services) #:use-module (gnu home services desktop) #:use-module (guix gexp) #:use-module (guix packages) - #:use-module (modules ymir) - #:export (bd-desktop-system-packages - bd-desktop-system-services + #:use-module (gnu packages suckless) + #:use-module (ymir) + #:export (bd-desktop-system-services bd-desktop-home-services )) (use-service-modules audio desktop networking sound xorg) -(use-package-modules - compton ;; picom - emacs ;; emacs - gnome ;; libnotify - image-viewers ;; feh - pulseaudio ;; pavucontrol, pulseaudio, - suckless ;; slock - wm ;; dunst - xdisorg ;; xrdb - xorg ;; xf86-input-libinput, xf86-video-fbdev, xinit... - ) - -(define bd-desktop-system-packages - (list - dunst - emacs-next - libnotify - pavucontrol - picom - pulseaudio - - feh - xf86-input-libinput - xf86-video-fbdev - xinit - xinput - xmodmap - xorg-server - xrandr - xrdb - xset - xss-lock - )) - (define %keyboard-udev-rule (udev-rule "90-keyboard-hotplug.rules" diff --git a/.config/guix/modules/ymir.scm b/.config/guix/modules/ymir.scm index 5793b9d..70c5743 100644 --- a/.config/guix/modules/ymir.scm +++ b/.config/guix/modules/ymir.scm @@ -1,9 +1,4 @@ -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; This configuration defines the base-level ;; -;; services for both of my machines. ;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(define-module (modules ymir) +(define-module (ymir) #:use-module (gnu) #:use-module (gnu services desktop) #:use-module (gnu system) @@ -11,6 +6,13 @@ user ymir)) + +;;; Commentary: +;;; +;;; ymir defines a default system configuration +;;; +;;; Code: + (define username "bdunahu") (define user (user-account (name username) @@ -58,3 +60,6 @@ (type "tmpfs") (check? #f)) %base-file-systems)))) + + +;;; ymir.scm ends here |