all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Dariqq <dariqq@posteo.net>
To: 70282@debbugs.gnu.org
Cc: Dariqq <dariqq@posteo.net>,
	Liliana Marie Prikler <liliana.prikler@gmail.com>,
	Maxim Cournoyer <maxim.cournoyer@gmail.com>,
	Vivien Kraus <vivien@planete-kraus.eu>
Subject: [bug#70282] [PATCH v3] gnu: gnome-shell: Wrap screencast service.
Date: Sun, 21 Apr 2024 17:02:18 +0000	[thread overview]
Message-ID: <79b8bcd870f61cc79518c4ff8bf560b88661e0b3.1713718938.git.dariqq@posteo.net> (raw)
In-Reply-To: <cover.1712590252.git.dariqq@posteo.net>

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 v3 which only uses js to set the environment variables.
Slight difference to before is that GST_PLUGIN_SYSTEM_PATH gets set to specific paths rather than prepending.
I've also tested if GI_TYPELIB_PATH can be set with GLib.setenv but that didn't seem to work,
so I 've used something similiar as in other places.

 gnu/packages/gnome.scm | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 489f23865b..b3c3fb72ad 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -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

base-commit: a1d711c92e119f6b5b8e99a620cdba92a4ca3bfb
-- 
2.41.0





      parent reply	other threads:[~2024-04-21 17:11 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-08 15:39 [bug#70282] [PATCH 0/2] Fix gnome-shell screenrecorder Dariqq
2024-04-08 15:53 ` [bug#70282] [PATCH 1/2] gnu: gnome-shell: Wrap d-bus services Dariqq
2024-04-08 16:54   ` Liliana Marie Prikler
2024-04-09 15:35     ` Dariqq
2024-04-09 17:04       ` Liliana Marie Prikler
2024-04-10  8:07         ` Dariqq
2024-04-10 18:20           ` Liliana Marie Prikler
2024-04-11  9:04             ` Dariqq
2024-04-08 15:53 ` [bug#70282] [PATCH 2/2] gnu: gnome-essential-extras: Propagate pipewire Dariqq
2024-04-08 16:49   ` Liliana Marie Prikler
2024-04-09 14:05     ` Dariqq
2024-04-12 17:26 ` [bug#70282] [PATCH v2] gnu: gnome-shell: Wrap screencast service Dariqq
2024-04-19 18:51   ` Liliana Marie Prikler
2024-04-20 10:11     ` Dariqq
2024-04-20 10:46       ` Liliana Marie Prikler
2024-04-21 12:37         ` Dariqq
2024-04-21 12:43           ` Liliana Marie Prikler
2024-04-21 17:02 ` Dariqq [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=79b8bcd870f61cc79518c4ff8bf560b88661e0b3.1713718938.git.dariqq@posteo.net \
    --to=dariqq@posteo.net \
    --cc=70282@debbugs.gnu.org \
    --cc=liliana.prikler@gmail.com \
    --cc=maxim.cournoyer@gmail.com \
    --cc=vivien@planete-kraus.eu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.