diff options
author | bd <bdunahu@colostate.edu> | 2024-05-26 02:49:56 -0600 |
---|---|---|
committer | bd <bdunahu@colostate.edu> | 2024-05-26 02:49:56 -0600 |
commit | 90cffef68fcdb7002250b4f0cbb8c8f68372f401 (patch) | |
tree | 8d6506ba1965da2a40fe73655344c33779c9611e /.config | |
parent | 62f32ec1d67c4dc3942a760f28ab1483a6101328 (diff) |
Merge home/system packages (temp?), use system home service
Diffstat (limited to '.config')
-rw-r--r-- | .config/guix/modules/base.scm | 121 | ||||
-rw-r--r-- | .config/guix/modules/base1.scm | 26 | ||||
-rw-r--r-- | .config/guix/modules/desktop.scm | 121 | ||||
-rw-r--r-- | .config/guix/modules/dwm-custom.scm | 16 | ||||
-rw-r--r-- | .config/guix/modules/mpd.scm | 21 | ||||
-rw-r--r-- | .config/guix/modules/shell.scm | 3 | ||||
-rw-r--r-- | .config/guix/modules/ymir.scm | 169 | ||||
-rw-r--r-- | .config/guix/vali.scm | 89 |
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))) |