[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#70282] [PATCH v4] gnu: gnome-shell: Wrap screencast service.
From: |
Dariqq |
Subject: |
[bug#70282] [PATCH v4] gnu: gnome-shell: Wrap screencast service. |
Date: |
Wed, 8 May 2024 18:33:30 +0000 |
Adjust screencast such that GI_TYPELIB_PATH and GST_PLUGIN_SYSTEM_PATH are set
before starting.
Add all required gstreamer plugins to inputs.
To be able to use it a running pipewire service is 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
---
Here is v4 which appends the gstreamer plugins to GST_PLUGIN_SYSTEM_PATH,
handling the case when getenv returns null. I think the difference between
appendending or prepending in this case is not too important as the user
GST_PLUGIN_PATH should take precedent. The more important thing is that the
plugins are in any plugin path at all.
gnu/packages/gnome.scm | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 92e35e3c5a..4bbff2a89b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -9408,6 +9408,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)
@@ -9427,6 +9428,19 @@ (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',"
+
"[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)
@@ -9492,6 +9506,7 @@ (define-public gnome-shell
gnome-settings-daemon
graphene
gst-plugins-base
+ gst-plugins-good
ibus
libcanberra
libcroco
@@ -9502,6 +9517,7 @@ (define-public gnome-shell
mesa-headers
mutter
network-manager-applet
+ pipewire
polkit
pulseaudio
python-pygobject
base-commit: 7b7f299bb493e485c5534b8c554e51d4f3a8c026
--
2.41.0
- [bug#70282] [PATCH v4] gnu: gnome-shell: Wrap screencast service.,
Dariqq <=
- [bug#70282] [PATCH v4] gnu: gnome-shell: Wrap screencast service., Maxim Cournoyer, 2024/05/08
- [bug#70282] [PATCH v4] gnu: gnome-shell: Wrap screencast service., Dariqq, 2024/05/08
- [bug#70282] [PATCH v4] gnu: gnome-shell: Wrap screencast service., Liliana Marie Prikler, 2024/05/08
- [bug#70282] [PATCH v4] gnu: gnome-shell: Wrap screencast service., Dariqq, 2024/05/09
- [bug#70282] [PATCH v4] gnu: gnome-shell: Wrap screencast service., Dariqq, 2024/05/10
- [bug#70282] [PATCH v4] gnu: gnome-shell: Wrap screencast service., Liliana Marie Prikler, 2024/05/10
- [bug#70282] [PATCH v4] gnu: gnome-shell: Wrap screencast service., Dariqq, 2024/05/11
- [bug#70282] [PATCH v4] gnu: gnome-shell: Wrap screencast service., Maxim Cournoyer, 2024/05/09
- bug#70282: [PATCH v4] gnu: gnome-shell: Wrap screencast service., Liliana Marie Prikler, 2024/05/14