summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.config/guix/modules/base.scm121
-rw-r--r--.config/guix/modules/base1.scm26
-rw-r--r--.config/guix/modules/desktop.scm121
-rw-r--r--.config/guix/modules/dwm-custom.scm16
-rw-r--r--.config/guix/modules/mpd.scm21
-rw-r--r--.config/guix/modules/shell.scm3
-rw-r--r--.config/guix/modules/ymir.scm169
-rw-r--r--.config/guix/vali.scm89
8 files changed, 313 insertions, 253 deletions
diff --git a/.config/guix/modules/base.scm b/.config/guix/modules/base.scm
index 91d41a3..1b1c8df 100644
--- a/.config/guix/modules/base.scm
+++ b/.config/guix/modules/base.scm
@@ -1,71 +1,68 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Provides a set of my preferred ;;
+;; programs and services for any ;;
+;; system ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+
(define-module (base)
#:use-module (gnu packages)
#:use-module (gnu packages gnupg)
#:use-module (gnu services)
- #:use-module (guix gexp)
- #:use-module (gnu home services)
- #:use-module (gnu home services shepherd)
- #:use-module (gnu home services dict)
- #:use-module (gnu home services ssh)
- #:use-module (gnu home services gnupg))
+ #:use-module (gnu services base)
+ #:use-module (gnu services file-sharing)
+ #:use-module (gnu services networking)
+ #:use-module (gnu services ssh)
+ #:use-module (gnu system)
+ #:export (bd-base-system-packages
+ bd-base-system-services))
-;; List of packages that will show up
-;; under ~/.guix-home/profile.
-(define-public desktop-packages
- (map specification->package
- (list
- "aspell"
- "aspell-dict-en"
- "flameshot"
- "font-google-noto-emoji"
- "picom"
- "rsync"
- "stow"
- "transmission"
- "xdotool"
- "xf86-input-libinput"
- "xf86-video-fbdev"
- "xinit"
- "xmodmap"
- "xorg-server"
- "xrdb"
- "xset"
- )))
+(define dev
+ '(
+ "cryptsetup"
+ "curl"
+ "emacs"
+ "git"
+ "jq"
+ "netcat"
+ "recutils"
+ "rsync"
+ "sbcl"
+ "stow"
+ "texlive"
+ "vim"
+ ))
-(define-public program-packages
- (map specification->package
- (list
- "feh"
- "ffmpeg"
- "gimp"
- "gnupg"
- "jq"
- "librewolf"
- "mpv"
- "netcat"
- "notmuch"
- "offlineimap3"
- "sbcl"
- "texlive"
- "xpdf" ; pdftotext
- "xprop"
- "yt-dlp"
- "zathura"
- "zathura-pdf-poppler")))
+(define comm
+ '(
+ "aspell"
+ "aspell-dict-en"
+ "gnupg"
+ "notmuch"
+ "offlineimap3"
+ "pass-otp"
+ "password-store"
+ "pinentry"
+ "transmission"
+ "xpdf" ; pdftotext
+ "yt-dlp"
+ ))
+(define bd-base-system-packages
+ `(,@(map specification->package
+ (append!
+ dev
+ comm
+ ))
+ ,@%base-packages))
-;; Below is a list of Home services. To search for available
-;; services, run 'guix home search KEYWORD' in a terminal.
-(define-public base-services
- (list
- (service home-shepherd-service-type)
- (service home-dicod-service-type)
- (simple-service 'themes
- home-files-service-type
- `((".config/gtk-2.0/settings.ini"
- ,(plain-file "settings.ini" "[Settings]
-gtk-application-prefer-dark-theme=1\n"))
- (".config/gtk-3.0/settings.ini"
- ,(plain-file "settings.ini" "[Settings]
-gtk-application-prefer-dark-theme=1\n"))))))
+(define bd-base-system-services
+ `(,(service openssh-service-type
+ (openssh-configuration
+ (x11-forwarding? #t)
+ (permit-root-login 'prohibit-password)
+ (password-authentication? #f)))
+ ,(service tor-service-type)
+ ,(service transmission-daemon-service-type)
+ ,@%base-services))
diff --git a/.config/guix/modules/base1.scm b/.config/guix/modules/base1.scm
new file mode 100644
index 0000000..d48b658
--- /dev/null
+++ b/.config/guix/modules/base1.scm
@@ -0,0 +1,26 @@
+(define-module (base1)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages gnupg)
+ #:use-module (gnu services)
+ #:use-module (guix gexp)
+ #:use-module (gnu home services)
+ #:use-module (gnu home services shepherd)
+ #:use-module (gnu home services dict)
+ #:use-module (gnu home services ssh)
+ #:use-module (gnu home services gnupg))
+
+
+;; Below is a list of Home services. To search for available
+;; services, run 'guix home search KEYWORD' in a terminal.
+(define-public bd-base-services
+ (list
+ (service home-shepherd-service-type)
+ (service home-dicod-service-type)
+ (simple-service 'themes
+ home-files-service-type
+ `((".config/gtk-2.0/settings.ini"
+ ,(plain-file "settings.ini" "[Settings]
+gtk-application-prefer-dark-theme=1\n"))
+ (".config/gtk-3.0/settings.ini"
+ ,(plain-file "settings.ini" "[Settings]
+gtk-application-prefer-dark-theme=1\n"))))))
diff --git a/.config/guix/modules/desktop.scm b/.config/guix/modules/desktop.scm
new file mode 100644
index 0000000..e2c6cc9
--- /dev/null
+++ b/.config/guix/modules/desktop.scm
@@ -0,0 +1,121 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Provides a set of my preferred ;;
+;; program and services for desktops ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+
+(define-module (desktop)
+ #:use-module (gnu)
+ #:use-module (gnu home services)
+ #:use-module (gnu home services shells)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages suckless)
+ #:use-module (gnu packages xorg)
+ #:use-module (gnu services)
+ #:use-module (gnu services admin)
+ #:use-module (gnu services audio)
+ #:use-module (gnu services avahi)
+ #:use-module (gnu services dbus)
+ #:use-module (gnu services desktop)
+ #:use-module (gnu services networking)
+ #:use-module (gnu services sound)
+ #:use-module (gnu services xorg)
+ #:use-module (guix gexp)
+ #:use-module (guix packages)
+ #:export (bd-desktop-system-packages
+ bd-desktop-system-services))
+
+(define programs
+ '(
+ "dmenu"
+ "flameshot"
+ "font-google-noto-emoji"
+ "gimp"
+ "icecat"
+ "imagemagick"
+ "libnotify"
+ "librewolf"
+ "mpv"
+ "pavucontrol"
+ "picom"
+ "pulseaudio"
+ "sxiv"
+ "xprop"
+ "zathura"
+ "zathura-pdf-poppler"
+ ))
+
+(define x-server
+ '(
+ "feh"
+ "ffmpeg"
+ "gtk+"
+ "xdotool"
+ "xf86-input-libinput"
+ "xf86-video-fbdev"
+ "xinit"
+ "xmodmap"
+ "xorg-server"
+ "xrdb"
+ "xset"
+ ))
+
+(define dwm-package
+ (package
+ (inherit dwm)
+ (name "bdunahu-dwm")
+ (inputs (modify-inputs (package-inputs dwm)))
+ (source (local-file "dwm" #:recursive? #t))))
+
+(define bd-desktop-system-packages
+ `(,@(map specification->package
+ (append!
+ programs
+ x-server
+ ))
+ ,dwm-package
+ ))
+
+(define bd-desktop-system-services
+ (list
+ (service screen-locker-service-type
+ (screen-locker-configuration
+ (name "slock")
+ (program (file-append slock "/bin/slock"))))
+
+ ;; so that non-root users in the wheel group can
+ ;; perform administrative tasks (similar to "sudo").
+ polkit-wheel-service
+ ;; The global fontconfig cache directory can sometimes contain
+ ;; stale entries, possibly referencing fonts that have been GC'd,
+ ;; so mount it read-only.
+ fontconfig-file-system-service
+
+ (service network-manager-service-type)
+ (service wpa-supplicant-service-type) ; needed by NetworkManager
+ (service modem-manager-service-type)
+ (service usb-modeswitch-service-type)
+
+ ;; The D-Bus clique.
+ (service avahi-service-type)
+ (service udisks-service-type)
+ (service upower-service-type)
+ (service accountsservice-service-type)
+ (service cups-pk-helper-service-type)
+ (service colord-service-type)
+ (service geoclue-service-type)
+ (service polkit-service-type)
+ (service elogind-service-type
+ (elogind-configuration
+ (handle-power-key 'hibernate)
+ ;; (idle-action-seconds (* 5 60))
+ ;; (idle-action 'suspend)
+ ))
+ (service dbus-root-service-type)
+
+ (service ntp-service-type)
+
+ (service x11-socket-directory-service-type)
+
+ (service pulseaudio-service-type)
+ (service alsa-service-type)))
diff --git a/.config/guix/modules/dwm-custom.scm b/.config/guix/modules/dwm-custom.scm
deleted file mode 100644
index 8a62488..0000000
--- a/.config/guix/modules/dwm-custom.scm
+++ /dev/null
@@ -1,16 +0,0 @@
-(define-module (dwm-custom)
- #:use-module (gnu services)
- #:use-module (gnu home services)
- #:use-module (gnu home services shells)
- #:use-module (gnu packages suckless)
- #:use-module (gnu packages xorg)
- #:use-module (gnu packages image)
- #:use-module (guix gexp)
- #:use-module (guix packages))
-
-(define-public dwm-packages
- (package
- (inherit dwm)
- (name "bdunahu-dwm")
- (inputs (modify-inputs (package-inputs dwm)))
- (source (local-file "dwm" #:recursive? #t))))
diff --git a/.config/guix/modules/mpd.scm b/.config/guix/modules/mpd.scm
new file mode 100644
index 0000000..d27fa90
--- /dev/null
+++ b/.config/guix/modules/mpd.scm
@@ -0,0 +1,21 @@
+(define-module (mpd)
+ #:use-module (gnu packages)
+ #:use-module (gnu services)
+ #:use-module (gnu services audio)
+ #:use-module (ymir)
+ #:export (bd-mpd-package
+ bd-mpd-service))
+
+
+(define bd-mpd-package
+ `(,@(map specification->package
+ '("mpd-mpc"))))
+
+(define bd-mpd-service
+ (list
+ (service mpd-service-type
+ (mpd-configuration
+ (user user)
+ (music-directory "~/Personal/mpd/music")
+ (playlist-directory "~/Personal/mpd/playlist")
+ (default-port 6600)))))
diff --git a/.config/guix/modules/shell.scm b/.config/guix/modules/shell.scm
index 8efa4cf..edaa90f 100644
--- a/.config/guix/modules/shell.scm
+++ b/.config/guix/modules/shell.scm
@@ -12,8 +12,7 @@
(home-bash-configuration
(aliases '(("cp" . "cp -i")
("grep" . "grep --color=auto")
- ("guix-home" . "RUNNING_GUIX_HOME=1 guix home -L ${HOME}/.config/guix/modules/ reconfigure ${HOME}/.config/guix/${HOSTNAME}.scm")
- ("guix-system" . "RUNNING_GUIX_HOME=0 sudo guix system -L ${HOME}/.config/guix/modules/ 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")
diff --git a/.config/guix/modules/ymir.scm b/.config/guix/modules/ymir.scm
index acea4b7..5b4a01d 100644
--- a/.config/guix/modules/ymir.scm
+++ b/.config/guix/modules/ymir.scm
@@ -5,23 +5,13 @@
(define-module (ymir)
#:use-module (gnu)
- #:use-module (dwm-custom)
- #:use-module (gnu packages suckless)
- #:use-module (gnu services)
- #:use-module (gnu services admin)
- #:use-module (gnu services audio)
- #:use-module (gnu services avahi)
- #:use-module (gnu services dbus)
#:use-module (gnu services desktop)
- #:use-module (gnu services file-sharing)
- #:use-module (gnu services networking)
- #:use-module (gnu services sound)
- #:use-module (gnu services ssh)
- #:use-module (gnu services xorg)
- )
+ #:use-module (gnu system)
+ #:export (username
+ user
+ ymir))
-;;;; user
-(define-public username "bdunahu")
+(define username "bdunahu")
(define user (user-account
(name username)
(comment username)
@@ -34,122 +24,35 @@
"wheel"))))
-;;;; base os
-(define-public ymir
+(define ymir
(operating-system
- (host-name "ymir")
- (locale "en_US.utf8")
- (timezone "America/Denver")
- (keyboard-layout (keyboard-layout "us"))
- (kernel-arguments
- (list
- "quiet"))
-
- ;; 'root' is implicit
- (users (cons* user
- %base-user-accounts))
-
- ;; grub (uefi)
- (bootloader (bootloader-configuration
- (bootloader grub-efi-bootloader)
- (targets (list "/boot/efi"))
- (keyboard-layout keyboard-layout)))
-
- ;; packages installed system-wide.
- (packages `(,@(map specification->package
- '(
- "cryptsetup"
- "curl"
- "dmenu"
- "emacs"
- "git"
- "gtk+"
- "icecat"
- "imagemagick"
- "libnotify"
- "mpd"
- "mpd-mpc"
- "pass-otp"
- "password-store"
- "pavucontrol"
- "pinentry"
- "pulseaudio"
- "recutils"
- "sxiv"
- "vim"
- ))
- ,@%base-packages
- ,dwm-packages))
-
- ;; base system services.
- (services
- (cons*
- (service openssh-service-type
- (openssh-configuration
- (x11-forwarding? #t)
- (permit-root-login 'prohibit-password)
- (password-authentication? #f)))
- (service tor-service-type)
- (service transmission-daemon-service-type)
- (service mpd-service-type
- (mpd-configuration
- (user user)
- (music-directory "~/Personal/mpd/music")
- (playlist-directory "~/Personal/mpd/playlist")
- (default-port 6600)))
-
- (service screen-locker-service-type
- (screen-locker-configuration
- (name "slock")
- (program (file-append slock "/bin/slock"))))
-
- ;; so that non-root users in the wheel group can
- ;; perform administrative tasks (similar to "sudo").
- polkit-wheel-service
- ;; The global fontconfig cache directory can sometimes contain
- ;; stale entries, possibly referencing fonts that have been GC'd,
- ;; so mount it read-only.
- fontconfig-file-system-service
-
- (service network-manager-service-type)
- (service wpa-supplicant-service-type) ; needed by NetworkManager
- ;; (simple-service 'network-manager-applet
- ;; profile-service-type
- ;; (list network-manager-applet))
- (service modem-manager-service-type)
- (service usb-modeswitch-service-type)
-
- ;; The D-Bus clique.
- (service avahi-service-type)
- (service udisks-service-type)
- (service upower-service-type)
- (service accountsservice-service-type)
- (service cups-pk-helper-service-type)
- (service colord-service-type)
- (service geoclue-service-type)
- (service polkit-service-type)
- (service elogind-service-type
- (elogind-configuration
- (handle-power-key 'hibernate)
- ;; (idle-action-seconds (* 5 60))
- ;; (idle-action 'suspend)
- ))
- (service dbus-root-service-type)
-
- (service ntp-service-type)
-
- (service x11-socket-directory-service-type)
-
- (service pulseaudio-service-type)
- (service alsa-service-type)
-
- %base-services))
-
- ;; OVERRIDE ME
- (file-systems (cons*
- (file-system
- (mount-point "/")
- (device "none")
- (type "tmpfs")
- (check? #f))
- %base-file-systems))))
+ (host-name "ymir")
+ (locale "en_US.utf8")
+ (timezone "America/Denver")
+ (keyboard-layout (keyboard-layout "us"))
+ (kernel-arguments
+ (list
+ "quiet"))
+
+ ;; 'root' is implicit
+ (users (cons* user
+ %base-user-accounts))
+
+ ;; grub (uefi)
+ (bootloader (bootloader-configuration
+ (bootloader grub-efi-bootloader)
+ (targets (list "/boot/efi"))
+ (keyboard-layout keyboard-layout)))
+
+ ;; OVERRIDE THESE
+ (packages
+ %base-packages)
+ (services
+ %base-services)
+ (file-systems (cons*
+ (file-system
+ (mount-point "/")
+ (device "none")
+ (type "tmpfs")
+ (check? #f))
+ %base-file-systems))))
diff --git a/.config/guix/vali.scm b/.config/guix/vali.scm
index e2ff0be..d0af866 100644
--- a/.config/guix/vali.scm
+++ b/.config/guix/vali.scm
@@ -4,63 +4,72 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-module (vali)
- #:use-module (ymir)
+ #:use-module (base)
+ #:use-module (base1)
+ #:use-module (desktop)
#:use-module (gnu)
#:use-module (gnu home)
- #:use-module (gnu packages)
#:use-module (gnu home services)
+ #:use-module (gnu packages)
#:use-module (gnu services)
+ #:use-module (gnu services guix)
+ #:use-module (gpg)
#:use-module (guix gexp)
- #:use-module (xdg)
+ #:use-module (mpd)
#:use-module (shell)
#:use-module (ssh)
- #:use-module (gpg)
+ #:use-module (xdg)
#:use-module (xserver)
- #:use-module (base))
-
-
-(define system
- (operating-system
- (inherit ymir)
- (host-name "vali")
-
- (mapped-devices (list (mapped-device
- (source (uuid "8d3ccf19-035a-4956-8ba7-7c00dfa3a02c"))
- (target "hidden")
- (type luks-device-mapping))))
-
- (file-systems (cons* (file-system
- (mount-point "/boot/efi")
- (device (uuid
- "8A13-7018"
- 'fat32))
- (type "vfat"))
- (file-system
- (mount-point "/home/bdunahu/Personal")
- (device "/dev/mapper/hidden")
- (type "ext4")
- (dependencies mapped-devices))
- (file-system
- (mount-point "/")
- (device (uuid
- "69a3593b-12bd-40ad-a932-007674a8cfe8"
- 'ext4))
- (type "ext4")) %base-file-systems))))
+ #:use-module (ymir))
(define home
(home-environment
- (packages
- `(,@desktop-packages
- ,@program-packages))
-
(services
`(,@xdg-service
,@shell-service
,@ssh-service
,@gpg-service
- ,@base-services
+ ,@bd-base-services
,@xorg-services))))
-(if (getenv "RUNNING_GUIX_HOME") home system)
+(operating-system
+ (inherit ymir)
+ (host-name "vali")
+
+ ;; (all packages are system wide)
+ (packages
+ `(,@bd-base-system-packages
+ ,@bd-desktop-system-packages
+ ,@bd-mpd-package))
+
+ (services
+ `(,@bd-base-system-services
+ ,@bd-desktop-system-services
+ ,@bd-mpd-service
+ ,(service guix-home-service-type
+ `(("bdunahu" ,home)))))
+
+ (mapped-devices (list (mapped-device
+ (source (uuid "8d3ccf19-035a-4956-8ba7-7c00dfa3a02c"))
+ (target "hidden")
+ (type luks-device-mapping))))
+
+ (file-systems (cons* (file-system
+ (mount-point "/boot/efi")
+ (device (uuid
+ "8A13-7018"
+ 'fat32))
+ (type "vfat"))
+ (file-system
+ (mount-point "/home/bdunahu/Personal")
+ (device "/dev/mapper/hidden")
+ (type "ext4")
+ (dependencies mapped-devices))
+ (file-system
+ (mount-point "/")
+ (device (uuid
+ "69a3593b-12bd-40ad-a932-007674a8cfe8"
+ 'ext4))
+ (type "ext4")) %base-file-systems)))