From 4debaffa6b0611b25e7b36745d50802869dee6fd Mon Sep 17 00:00:00 2001
From: Bobby Rong <rjl931189261@126.com>
Date: Sat, 21 Dec 2024 08:59:16 +0000
Subject: [PATCH] xfce.xfce4-screensaver: 4.18.3 -> 4.18.4

https://gitlab.xfce.org/apps/xfce4-screensaver/-/compare/xfce4-screensaver-4.18.3...xfce4-screensaver-4.18.4

* This now exits early on Wayland sessions.
* xfdesktop no longer does `xfce_workspace_migrate_backdrop_image` so we need to take care missing last-image.
---
 nixos/tests/xfce-wayland.nix                           |  2 --
 .../xfce/applications/xfce4-screensaver/default.nix    | 10 ++++++++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/nixos/tests/xfce-wayland.nix b/nixos/tests/xfce-wayland.nix
index 5f835528c851ca..f81ec563e7a687 100644
--- a/nixos/tests/xfce-wayland.nix
+++ b/nixos/tests/xfce-wayland.nix
@@ -23,8 +23,6 @@ import ./make-test-python.nix (
 
         services.xserver.desktopManager.xfce.enable = true;
         services.xserver.desktopManager.xfce.enableWaylandSession = true;
-        # https://gitlab.xfce.org/apps/xfce4-screensaver/-/merge_requests/28
-        services.xserver.desktopManager.xfce.enableScreensaver = false;
         environment.systemPackages = [ pkgs.wlrctl ];
       };
 
diff --git a/pkgs/desktops/xfce/applications/xfce4-screensaver/default.nix b/pkgs/desktops/xfce/applications/xfce4-screensaver/default.nix
index 6d956e14b29aad..a69f97b6e45f7c 100644
--- a/pkgs/desktops/xfce/applications/xfce4-screensaver/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-screensaver/default.nix
@@ -16,6 +16,7 @@
   python3,
   systemd,
   xfconf,
+  xfdesktop,
   lib,
 }:
 
@@ -26,9 +27,9 @@ in
 mkXfceDerivation {
   category = "apps";
   pname = "xfce4-screensaver";
-  version = "4.18.3";
+  version = "4.18.4";
 
-  sha256 = "sha256-hOhWJoiKoeRgkhXaR8rnDpcJpStMD4BBdll4nwSA+EQ=";
+  sha256 = "sha256-vkxkryi7JQg1L/JdWnO9qmW6Zx6xP5Urq4kXMe7Iiyc=";
 
   nativeBuildInputs = [
     gobject-introspection
@@ -56,6 +57,11 @@ mkXfceDerivation {
 
   makeFlags = [ "DBUS_SESSION_SERVICE_DIR=$(out)/etc" ];
 
+  preFixup = ''
+    # For default wallpaper.
+    gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${xfdesktop}/share")
+  '';
+
   meta = with lib; {
     description = "Screensaver for Xfce";
     maintainers = with maintainers; [ symphorien ] ++ teams.xfce.members;