diff --git a/pkgs/tools/wayland/wlsunset/default.nix b/pkgs/tools/wayland/wlsunset/default.nix
new file mode 100644
index 000000000000..2993f990aad5
--- /dev/null
+++ b/pkgs/tools/wayland/wlsunset/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, meson, pkg-config, ninja, wayland
+, wayland-protocols
+}:
+
+stdenv.mkDerivation rec {
+  pname = "wlsunset";
+  version = "0.1.0";
+
+  src = fetchurl {
+    url = "https://git.sr.ht/~kennylevinsen/wlsunset/archive/${version}.tar.gz";
+    sha256 = "0g7mk14hlbwbhq6nqr84452sbgcja3hdxsqf0vws4njhfjgqiv3q";
+  };
+
+  nativeBuildInputs = [ meson pkg-config ninja wayland ];
+  buildInputs = [ wayland wayland-protocols ];
+
+  meta = with stdenv.lib; {
+    description = "Day/night gamma adjustments for Wayland";
+    longDescription = ''
+      Day/night gamma adjustments for Wayland compositors supporting
+      wlr-gamma-control-unstable-v1.
+    '';
+    homepage = "https://sr.ht/~kennylevinsen/wlsunset/";
+    changelog = "https://git.sr.ht/~kennylevinsen/wlsunset/refs/${version}";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d34f01ef4fee..37e93ba26084 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3579,6 +3579,8 @@ in
 
   wl-clipboard = callPackage ../tools/misc/wl-clipboard { };
 
+  wlsunset = callPackage ../tools/wayland/wlsunset { };
+
   wob = callPackage ../tools/misc/wob { };
 
   wtype = callPackage ../tools/wayland/wtype { };