summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2024-02-18 14:43:46 -0500
committerDavid Thompson <dthompson2@worcester.edu>2024-02-18 14:43:46 -0500
commit3b6cedf05c2b7b45043395f172a71e184c91fb90 (patch)
tree17a6f3fae8f995a7e091204d5730348fe0776ab1
parent18053b792abbac4adc9b6028bb60991dc00a5cd3 (diff)
Wrap firefox so it can find pipewire libraries.
-rw-r--r--dthompson/home/pipewire.scm33
-rw-r--r--dthompson/machines/ikaruga.scm139
2 files changed, 103 insertions, 69 deletions
diff --git a/dthompson/home/pipewire.scm b/dthompson/home/pipewire.scm
index 600db49..9faa64c 100644
--- a/dthompson/home/pipewire.scm
+++ b/dthompson/home/pipewire.scm
@@ -146,3 +146,36 @@ ctl_type.pipewire {
(description (package-description pkg))
(home-page (package-home-page pkg))
(license (package-license pkg))))
+
+(define-public (package-with-pw-wrapper pkg program)
+ (package
+ (name (package-name pkg))
+ (version (package-version pkg))
+ (source #f)
+ (build-system trivial-build-system)
+ (arguments
+ (list
+ #:modules '((guix build union)
+ (guix build utils))
+ #:builder
+ #~(begin
+ (use-modules (ice-9 match)
+ (guix build union)
+ (guix build utils))
+ (let* ((program (string-append #$output "/bin/" #$program))
+ (desktop (string-append #$output "/share/applications/"
+ #$program ".desktop"))
+ (pw-lib (string-append #$pipewire "/lib")))
+ (union-build #$output (list #$pkg)
+ #:create-all-directories? #t)
+ (when (file-exists? desktop)
+ (substitute* desktop
+ (("Exec=.*")
+ (string-append "Exec=" program "\n"))))
+ (wrap-program program
+ #:sh (string-append #$bash-minimal "/bin/sh")
+ `("LD_LIBRARY_PATH" ":" prefix (,pw-lib)))))))
+ (synopsis (package-synopsis pkg))
+ (description (package-description pkg))
+ (home-page (package-home-page pkg))
+ (license (package-license pkg))))
diff --git a/dthompson/machines/ikaruga.scm b/dthompson/machines/ikaruga.scm
index 28b50c5..44b5e4c 100644
--- a/dthompson/machines/ikaruga.scm
+++ b/dthompson/machines/ikaruga.scm
@@ -150,74 +150,75 @@
(define-public ikaruga-home
(home-environment
(packages
- (cons (package-with-pw-jack (specification->package "ardour")
- "ardour8")
- (specifications->packages
- '("blender"
- "calf"
- "dragonfly-reverb"
- "emacs"
- "emacs-better-defaults"
- "emacs-buffer-env"
- "emacs-doom-modeline"
- "emacs-doom-themes"
- "emacs-flycheck-guile"
- "emacs-geiser-guile"
- "emacs-htmlize"
- "emacs-js2-mode"
- "emacs-magit"
- "emacs-magit-annex"
- "emacs-markdown-mode"
- "emacs-org-reveal"
- "emacs-paredit"
- "emacs-racket-mode"
- "emacs-rainbow-delimiters"
- "emacs-smex"
- "emacs-typo"
- "emacs-use-package"
- "emacs-web-mode"
- "emacs-which-key"
- "emacs-yaml-mode"
- "firefox"
- "font-google-noto-emoji"
- "font-google-noto-sans-cjk"
- "font-google-noto-serif-cjk"
- "font-inconsolata"
- "gimp"
- "git"
- "git:send-email"
- "git-annex"
- "gnome-boxes"
- "gnome-tweaks"
- "gnupg"
- "google-chrome-unstable"
- "gst-plugins-bad"
- "guile@3"
- "htop"
- "hydrogen"
- "keepassxc"
- "libreoffice"
- "libresprite"
- "lsp-plugins"
- "milkytracker"
- "ncurses"
- "obs"
- "openssh"
- "pavucontrol"
- "pinentry"
- "qpwgraph"
- "quodlibet"
- "sfxr"
- "sicp"
- "steam"
- "strace"
- "tiled"
- "tor"
- "vlc"
- "x42-plugins"
- "xdg-desktop-portal"
- "xdg-desktop-portal-gtk"
- "xournal"
- "yt-dlp"))))
+ (cons* (package-with-pw-jack (specification->package "ardour")
+ "ardour8")
+ (package-with-pw-wrapper (specification->package "firefox")
+ "firefox")
+ (specifications->packages
+ '("blender"
+ "calf"
+ "dragonfly-reverb"
+ "emacs"
+ "emacs-better-defaults"
+ "emacs-buffer-env"
+ "emacs-doom-modeline"
+ "emacs-doom-themes"
+ "emacs-flycheck-guile"
+ "emacs-geiser-guile"
+ "emacs-htmlize"
+ "emacs-js2-mode"
+ "emacs-magit"
+ "emacs-magit-annex"
+ "emacs-markdown-mode"
+ "emacs-org-reveal"
+ "emacs-paredit"
+ "emacs-racket-mode"
+ "emacs-rainbow-delimiters"
+ "emacs-smex"
+ "emacs-typo"
+ "emacs-use-package"
+ "emacs-web-mode"
+ "emacs-which-key"
+ "emacs-yaml-mode"
+ "font-google-noto-emoji"
+ "font-google-noto-sans-cjk"
+ "font-google-noto-serif-cjk"
+ "font-inconsolata"
+ "gimp"
+ "git"
+ "git:send-email"
+ "git-annex"
+ "gnome-boxes"
+ "gnome-tweaks"
+ "gnupg"
+ "google-chrome-unstable"
+ "gst-plugins-bad"
+ "guile@3"
+ "htop"
+ "hydrogen"
+ "keepassxc"
+ "libreoffice"
+ "libresprite"
+ "lsp-plugins"
+ "milkytracker"
+ "ncurses"
+ "obs"
+ "openssh"
+ "pavucontrol"
+ "pinentry"
+ "qpwgraph"
+ "quodlibet"
+ "sfxr"
+ "sicp"
+ "steam"
+ "strace"
+ "tiled"
+ "tor"
+ "vlc"
+ "x42-plugins"
+ "xdg-desktop-portal"
+ "xdg-desktop-portal-gtk"
+ "xournal"
+ "yt-dlp"))))
(services (cons (service home-pipewire-service-type)
common-services))))