aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDariqq <dariqq@posteo.net>2024-05-08 18:33:30 +0000
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2024-05-14 07:09:00 +0200
commit37719d3ec8db7f2380903c2ac6e4efb2e4639cc7 (patch)
tree0382645b2156f4bdd4f5fe974c502d3b8ee40434
parent8cf823c17b4b3ef38d08ecee07f5e6b224a3d22c (diff)
downloadguix-37719d3ec8db7f2380903c2ac6e4efb2e4639cc7.tar.gz
guix-37719d3ec8db7f2380903c2ac6e4efb2e4639cc7.zip
gnu: gnome-shell: Wrap screencast service.
Adjust screencast such that GI_TYPELIB_PATH and GST_PLUGIN_SYSTEM_PATH refer to all required typelibs and GStreamer plugins. This alone is not enough to make the screencast function however -- a running pipewire service (e.g. via Guix Home) is also needed. * gnu/packages/gnome.scm (gnome-shell): [inputs]: Add gst-plugins-good and pipewire. [#:phases]<'wrap-programs>: Wrap org.gnome.Shell.Screencast. Change-Id: I2c31bf1bd92e281b86c57b06988c6a3793a58d40 Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
-rw-r--r--gnu/packages/gnome.scm16
1 files changed, 16 insertions, 0 deletions
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 67049bc253..74f33c4d22 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -9412,6 +9412,7 @@ properties, screen resolution, and other GNOME parameters.")
(add-after 'install 'wrap-programs
(lambda* (#:key inputs #:allow-other-keys)
(let ((gi-typelib-path (getenv "GI_TYPELIB_PATH"))
+ (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
(python-path
(string-join
(filter (lambda (item)
@@ -9431,6 +9432,19 @@ properties, screen resolution, and other GNOME parameters.")
"path => imports.gi.GIRepository.Repository."
"prepend_search_path(path));\n"
all)))
+ ;; Screencast requires a pipewire service running
+ ;; (i.e. as provided by home-pipewire-service-type)
+ (substitute* (string-append #$output "/share/gnome-shell/"
+ "org.gnome.Shell.Screencast")
+ (("imports\\.package\\.start" all)
+ (string-append "'" gi-typelib-path "'.split(':').forEach("
+ "path => imports.gi.GIRepository.Repository."
+ "prepend_search_path(path));\n"
+ "imports.gi.GLib.setenv('GST_PLUGIN_SYSTEM_PATH',"
+ "[imports.gi.GLib.getenv('GST_PLUGIN_SYSTEM_PATH'),"
+ "'" gst-plugin-path "'].filter(v => v).join(':'),"
+ "true);\n"
+ all)))
(for-each
(lambda (prog)
(wrap-program (string-append #$output "/bin/" prog)
@@ -9496,6 +9510,7 @@ printf '~a is deprecated. Use the \"gnome-extensions\" CLI or \
gnome-settings-daemon
graphene
gst-plugins-base
+ gst-plugins-good
ibus
libcanberra
libcroco
@@ -9506,6 +9521,7 @@ printf '~a is deprecated. Use the \"gnome-extensions\" CLI or \
mesa-headers
mutter
network-manager-applet
+ pipewire
polkit
pulseaudio
python-pygobject