summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2024-08-02 14:40:26 -0400
committerDavid Thompson <dthompson2@worcester.edu>2024-08-02 14:40:26 -0400
commit2c2a36b47d4cadc4d22592914c7fe3dfaea5f7e5 (patch)
tree44803c7a5e60e1bf697304cab144711adf3f1a50
parentf2c949b96fd5586689514366843e7b970e51b6cc (diff)
Switch to Guix's pipewire home service and update Rise.
-rw-r--r--dthompson/home/pipewire.scm99
-rw-r--r--dthompson/machines/ikaruga.scm1
-rw-r--r--dthompson/machines/rise.scm109
3 files changed, 65 insertions, 144 deletions
diff --git a/dthompson/home/pipewire.scm b/dthompson/home/pipewire.scm
index 9faa64c..7faa000 100644
--- a/dthompson/home/pipewire.scm
+++ b/dthompson/home/pipewire.scm
@@ -9,100 +9,11 @@
#:use-module (gnu services configuration)
#:use-module (gnu home services)
#:use-module (gnu home services shepherd)
- #:use-module (guix gexp))
+ #:use-module (guix gexp)
+ #:export (package-with-pw-jack
+ package-with-pw-wrapper))
-(define (home-pipewire-profile-service config)
- (map specification->package
- (list "pipewire"
- "wireplumber")))
-
-(define (home-pipewire-shepherd-service config)
- (list
- ;; Start Pipewire daemon
- (shepherd-service
- (requirement '(dbus))
- (provision '(pipewire))
- (stop #~(make-kill-destructor))
- (start #~(make-forkexec-constructor
- (list #$(file-append pipewire "/bin/pipewire"))
- #:log-file (string-append
- (or (getenv "XDG_LOG_HOME")
- (format #f "~a/.local/var/log"
- (getenv "HOME")))
- "/pipewire.log")
- #:environment-variables
- (append (list "DISABLE_RTKIT=1")
- (default-environment-variables)))))
- ;; Start Pipewire PulseAudio module
- (shepherd-service
- (requirement '(pipewire))
- (provision '(pipewire-pulse))
- (stop #~(make-kill-destructor))
- (start #~(make-forkexec-constructor
- (list #$(file-append pipewire "/bin/pipewire-pulse"))
- #:log-file (string-append
- (or (getenv "XDG_LOG_HOME")
- (format #f "~a/.local/var/log"
- (getenv "HOME")))
- "/pipewire-pulse.log")
- #:environment-variables
- (append (list "DISABLE_RTKIT=1")
- (default-environment-variables)))))
- ;; Start Wireplumber session manager
- (shepherd-service
- (requirement '(pipewire))
- (provision '(wireplumber))
- (stop #~(make-kill-destructor))
- (start #~(make-forkexec-constructor
- (list #$(file-append wireplumber "/bin/wireplumber"))
- #:log-file (string-append
- (or (getenv "XDG_LOG_HOME")
- (format #f "~a/.local/var/log"
- (getenv "HOME")))
- "/wireplumber.log")
- #:environment-variables
- (append (list "DISABLE_RTKIT=1")
- (default-environment-variables)))))))
-
-(define (home-pipewire-xdg-configuration-service config)
- `(("alsa/asoundrc"
- ,(mixed-text-file
- "asoundrc"
- #~(string-append
- "<"
- #$(file-append
- pipewire "/share/alsa/alsa.conf.d/50-pipewire.conf")
- ">\n<"
- #$(file-append
- pipewire "/share/alsa/alsa.conf.d/99-pipewire-default.conf")
- ">\n"
- "
-pcm_type.pipewire {
- lib " #$(file-append pipewire "/lib/alsa-lib/libasound_module_pcm_pipewire.so")
- "
-}
-ctl_type.pipewire {
- lib " #$(file-append pipewire "/lib/alsa-lib/libasound_module_ctl_pipewire.so")
- "
-}
-")))))
-
-(define-public home-pipewire-service-type
- (service-type (name 'home-pipewire)
- (extensions
- (list (service-extension
- home-profile-service-type
- home-pipewire-profile-service)
- (service-extension
- home-shepherd-service-type
- home-pipewire-shepherd-service)
- (service-extension
- home-xdg-configuration-files-service-type
- home-pipewire-xdg-configuration-service)))
- (default-value #f)
- (description "Configures and runs the Pipewire audio system.")))
-
-(define-public (package-with-pw-jack pkg program)
+(define (package-with-pw-jack pkg program)
(package
(name (package-name pkg))
(version (package-version pkg))
@@ -147,7 +58,7 @@ ctl_type.pipewire {
(home-page (package-home-page pkg))
(license (package-license pkg))))
-(define-public (package-with-pw-wrapper pkg program)
+(define* (package-with-pw-wrapper pkg #:optional (program (package-name pkg)))
(package
(name (package-name pkg))
(version (package-version pkg))
diff --git a/dthompson/machines/ikaruga.scm b/dthompson/machines/ikaruga.scm
index 4fb4fff..6c08f1b 100644
--- a/dthompson/machines/ikaruga.scm
+++ b/dthompson/machines/ikaruga.scm
@@ -32,6 +32,7 @@
#:use-module (gnu)
#:use-module (gnu bootloader)
#:use-module (gnu home)
+ #:use-module (gnu home services sound)
#:use-module (gnu packages)
#:use-module (gnu services)
#:use-module (gnu services base)
diff --git a/dthompson/machines/rise.scm b/dthompson/machines/rise.scm
index c5fb3de..8620e1d 100644
--- a/dthompson/machines/rise.scm
+++ b/dthompson/machines/rise.scm
@@ -32,6 +32,7 @@
#:use-module (gnu)
#:use-module (gnu bootloader)
#:use-module (gnu home)
+ #:use-module (gnu home services sound)
#:use-module (gnu packages)
#:use-module (gnu services)
#:use-module (gnu services base)
@@ -47,9 +48,10 @@
#:use-module (gnu system file-systems)
#:use-module (gnu system mapped-devices)
#:use-module (nongnu packages linux)
- #:use-module (nongnu system linux-initrd))
+ #:use-module (nongnu system linux-initrd)
+ #:export (rise-os rise-home))
-(define-public rise-os
+(define rise-os
(operating-system
(locale "en_US.utf8")
(timezone "America/New_York")
@@ -85,9 +87,8 @@
(name "realtime")
(system? #t))
%base-groups))
- (packages (append (map specification->package
- '("ncurses" "nss-certs" "strace"))
- %base-packages))
+ (packages (cons (specification->package "nss-certs")
+ %base-packages))
(services (modify-services
(cons* (service gnome-desktop-service-type)
(service bluetooth-service-type)
@@ -112,7 +113,7 @@
(pam-limits-entry "@realtime"
'both 'memlock 'unlimited)))
%desktop-services)
- ;; In this house, we use JACK.
+ ;; In this house, we use Pipewire.
(delete pulseaudio-service-type)
;; Get nonguix substitutes.
(guix-service-type config =>
@@ -122,7 +123,7 @@
(append (list "https://substitutes.nonguix.org")
%default-substitute-urls))
(authorized-keys
- (append (list (local-file "keys/nonguix-signing-key.pub"))
+ (append (list (local-file "../../keys/nonguix-signing-key.pub"))
%default-authorized-guix-keys))))))
(mapped-devices (list (mapped-device
(source (uuid "ee0a37d1-36d6-4e50-8af0-fc0bfe8c22ef"))
@@ -139,47 +140,55 @@
(dependencies mapped-devices)) %base-file-systems))
(name-service-switch %mdns-host-lookup-nss)))
-(define-public rise-home
+(define rise-home
(home-environment
- (packages (specifications->packages
- '("audacity"
- "alsa-utils"
- "ardour"
- "blender"
- "calf"
- "carla"
- "dragonfly-reverb"
- "emacs"
- "emacs-better-defaults"
- "emacs-buffer-env"
- "emacs-doom-modeline"
- "emacs-doom-themes"
- "emacs-flycheck-guile"
- "emacs-geiser-guile"
- "emacs-magit"
- "emacs-markdown-mode"
- "emacs-paredit"
- "emacs-rainbow-delimiters"
- "emacs-smex"
- "emacs-use-package"
- "emacs-which-key"
- "firefox"
- "font-google-noto-sans-cjk"
- "font-google-noto-serif-cjk"
- "font-inconsolata"
- "gimp"
- "git"
- "gnome-tweaks"
- "htop"
- "hydrogen"
- "jack"
- "lsp-plugins"
- "milkytracker"
- "obs"
- "openssh"
- "patchage"
- "qjackctl"
- "sfxr"
- "x42-plugins"
- "yt-dlp")))
- (services common-services)))
+ (packages
+ (cons* (package-with-pw-jack (specification->package "ardour") "ardour8")
+ (package-with-pw-wrapper (specification->package "firefox"))
+ (specifications->packages
+ '("audacity"
+ "blender"
+ "calf"
+ "carla"
+ "dragonfly-reverb"
+ "easyeffects"
+ "emacs"
+ "emacs-better-defaults"
+ "emacs-buffer-env"
+ "emacs-doom-modeline"
+ "emacs-doom-themes"
+ "emacs-flycheck-guile"
+ "emacs-geiser-guile"
+ "emacs-magit"
+ "emacs-markdown-mode"
+ "emacs-paredit"
+ "emacs-rainbow-delimiters"
+ "emacs-smex"
+ "emacs-use-package"
+ "emacs-which-key"
+ "font-google-noto-emoji"
+ "font-google-noto-sans-cjk"
+ "font-google-noto-serif-cjk"
+ "font-inconsolata"
+ "gimp"
+ "git"
+ "gnome-tweaks"
+ "google-chrome-stable"
+ "htop"
+ "libresprite"
+ "lsp-plugins"
+ "milkytracker"
+ "ncurses"
+ "obs"
+ "openssh"
+ "pavucontrol"
+ "qjackctl"
+ "qpwgraph"
+ "sfxr"
+ "strace"
+ "x42-plugins"
+ "xdg-desktop-portal"
+ "xdg-desktop-portal-gtk"
+ "yt-dlp"))))
+ (services (cons (service home-pipewire-service-type)
+ common-services))))