@@ -9392,6 +9392,7 @@ (define-public gnome-shell
(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)
@@ -9411,6 +9412,18 @@ (define-public gnome-shell
"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',"
+ "'" gst-plugin-path "'"
+ ", true);\n"
+ all)))
(for-each
(lambda (prog)
(wrap-program (string-append #$output "/bin/" prog)
@@ -9476,6 +9489,7 @@ (define-public gnome-shell
gnome-settings-daemon
graphene
gst-plugins-base
+ gst-plugins-good
ibus
libcanberra
libcroco
@@ -9486,6 +9500,7 @@ (define-public gnome-shell
mesa-headers
mutter
network-manager-applet
+ pipewire
polkit
pulseaudio
python-pygobject