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>
This commit is contained in:
parent
8cf823c17b
commit
37719d3ec8
@ -9412,6 +9412,7 @@ properties, screen resolution, and other GNOME parameters.")
|
|||||||
(add-after 'install 'wrap-programs
|
(add-after 'install 'wrap-programs
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
(let ((gi-typelib-path (getenv "GI_TYPELIB_PATH"))
|
(let ((gi-typelib-path (getenv "GI_TYPELIB_PATH"))
|
||||||
|
(gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
|
||||||
(python-path
|
(python-path
|
||||||
(string-join
|
(string-join
|
||||||
(filter (lambda (item)
|
(filter (lambda (item)
|
||||||
@ -9431,6 +9432,19 @@ properties, screen resolution, and other GNOME parameters.")
|
|||||||
"path => imports.gi.GIRepository.Repository."
|
"path => imports.gi.GIRepository.Repository."
|
||||||
"prepend_search_path(path));\n"
|
"prepend_search_path(path));\n"
|
||||||
all)))
|
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
|
(for-each
|
||||||
(lambda (prog)
|
(lambda (prog)
|
||||||
(wrap-program (string-append #$output "/bin/" 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
|
gnome-settings-daemon
|
||||||
graphene
|
graphene
|
||||||
gst-plugins-base
|
gst-plugins-base
|
||||||
|
gst-plugins-good
|
||||||
ibus
|
ibus
|
||||||
libcanberra
|
libcanberra
|
||||||
libcroco
|
libcroco
|
||||||
@ -9506,6 +9521,7 @@ printf '~a is deprecated. Use the \"gnome-extensions\" CLI or \
|
|||||||
mesa-headers
|
mesa-headers
|
||||||
mutter
|
mutter
|
||||||
network-manager-applet
|
network-manager-applet
|
||||||
|
pipewire
|
||||||
polkit
|
polkit
|
||||||
pulseaudio
|
pulseaudio
|
||||||
python-pygobject
|
python-pygobject
|
||||||
|
Loading…
Reference in New Issue
Block a user