From 893c49f60c6dcd0b5ddcbc481a28abe5d79430d8 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Fri, 20 Jun 2025 14:38:00 +0800 Subject: [PATCH] gnu: niri: Use dbus-run-session. This change fixes screencasting. * gnu/packages/wm.scm (niri)[inputs]: Add dbus. [#:phases]: Use dbus-run-session in niri.desktop. Change-Id: I196c25a4b37ee8a6aae3ab17ef127596e199324f --- gnu/packages/wm.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index cea37f9e6ece7bcec034b31da93a47d7c1799cc4..359d0ddc56c01dec4995c571d537eee568aca980 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -1925,9 +1925,6 @@ limited size and a few external dependencies. It is configurable via ;; LICENSE LICENSE.dwm LICENSE.tinywl (license (list license:gpl3+ license:expat license:cc0)))) -;; FIXME: xdg-desktop-portal-gnome integration (screencasting) is not working. -;; Only packages using the ‘wlr-screencopy’ protocol (e.g. wf-recorder, -;; obs with obs-wlrobs) are working. (define-public niri (package (name "niri") @@ -1967,10 +1964,13 @@ limited size and a few external dependencies. It is configurable via ;; For tests. (setenv "XDG_RUNTIME_DIR" "/tmp"))) (add-after 'install 'install-extras - (lambda _ + (lambda* (#:key inputs #:allow-other-keys) (substitute* "resources/niri.desktop" (("niri-session") - (string-append #$output "/bin/niri --session"))) + (format #f "~a --dbus-daemon=~a ~a/bin/niri --session" + (search-input-file inputs "bin/dbus-run-session") + (search-input-file inputs "bin/dbus-daemon") + #$output))) (install-file "resources/niri.desktop" (in-vicinity #$output "share/wayland-sessions")) @@ -1981,6 +1981,7 @@ limited size and a few external dependencies. It is configurable via (list pkg-config)) (inputs (cons* clang + dbus libdisplay-info libinput-minimal libseat