summaryrefslogtreecommitdiff
path: root/.config
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-01-25 15:15:56 -0500
committerbd <bdunahu@operationnull.com>2025-01-25 15:15:56 -0500
commit93b2088a04c13a9f4f5934948fc9540f9f552b00 (patch)
treed3339859c47ab55fd0ded0f7acf90c30c412a0d5 /.config
parenta76f5a41c36311103786e43e2497cf93c613edde (diff)
Refactor guix config for a single central packages file
Diffstat (limited to '.config')
-rw-r--r--.config/guix/garm.scm25
-rw-r--r--.config/guix/modules/dwm.scm6
-rw-r--r--.config/guix/modules/emacs.scm55
-rw-r--r--.config/guix/modules/packages/packages.scm173
-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.scm17
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