diff --git a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
index eeca04eff4e..aa451ba7516 100644
--- a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
src = ./fix-paths.patch;
inherit tzdata mousetweaks;
})
+ ./global-backlight-helper.patch
"${patchPath}/45_suppress-printer-may-not-be-connected-notification.patch"
"${patchPath}/64_restore_terminal_keyboard_shortcut_schema.patch"
"${patchPath}/correct_logout_action.patch"
@@ -98,6 +99,10 @@ stdenv.mkDerivation rec {
# This breaks lightlocker https://github.com/elementary/session-settings/commit/b0e7a2867608c3a3916f9e4e21a68264a20e44f8
# TODO: shouldn't be neeed for the 5.1 greeter (awaiting release)
rm $out/etc/xdg/autostart/org.gnome.SettingsDaemon.ScreensaverProxy-pantheon.desktop
+
+ # So the polkit policy can reference /run/current-system/sw/bin/elementary-settings-daemon/gsd-backlight-helper
+ mkdir -p $out/bin/elementary-settings-daemon
+ ln -s $out/libexec/gsd-backlight-helper $out/bin/elementary-settings-daemon/gsd-backlight-helper
'';
nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/services/elementary-settings-daemon/global-backlight-helper.patch b/pkgs/desktops/pantheon/services/elementary-settings-daemon/global-backlight-helper.patch
new file mode 100644
index 00000000000..dcdc83934ba
--- /dev/null
+++ b/pkgs/desktops/pantheon/services/elementary-settings-daemon/global-backlight-helper.patch
@@ -0,0 +1,26 @@
+diff --git a/plugins/power/gsd-backlight.c b/plugins/power/gsd-backlight.c
+index d7d10fd2..5619d6ad 100644
+--- a/plugins/power/gsd-backlight.c
++++ b/plugins/power/gsd-backlight.c
+@@ -358,7 +358,7 @@ gsd_backlight_run_set_helper (GsdBacklight *backlight, GTask *task)
+ proc = g_subprocess_new (G_SUBPROCESS_FLAGS_STDOUT_SILENCE,
+ &error,
+ "pkexec",
+- LIBEXECDIR "/gsd-backlight-helper",
++ "/run/current-system/sw/bin/elementary-settings-daemon/gsd-backlight-helper",
+ g_udev_device_get_sysfs_path (backlight->udev_device),
+ data->value_str, NULL);
+ } else {
+diff --git a/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in b/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
+index f16300f8..79d6bd17 100644
+--- a/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
++++ b/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
+@@ -25,7 +25,7 @@
+ no
+ yes
+
+- @libexecdir@/gsd-backlight-helper
++ /run/current-system/sw/bin/elementary-settings-daemon/gsd-backlight-helper
+
+
+