diff --git a/pkgs/tools/wayland/swayimg/default.nix b/pkgs/tools/wayland/swayimg/default.nix
new file mode 100644
index 000000000000..24f44fa8d336
--- /dev/null
+++ b/pkgs/tools/wayland/swayimg/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, wayland
+, wayland-protocols
+, json_c
+, libxkbcommon
+, fontconfig
+, giflib
+, libheif
+, libjpeg
+, libwebp
+, libtiff
+, librsvg
+, libpng
+, libjxl
+, libexif
+, bash-completion
+}:
+stdenv.mkDerivation rec {
+  pname = "swayimg";
+  version = "1.9";
+
+  src = fetchFromGitHub {
+    owner = "artemsen";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-864riSvWhWV4X84UeZ+xfQBOAQmwMrX6s90TXMGeruY=";
+  };
+
+  strictDeps = true;
+
+  depsBuildBuild = [
+    pkg-config
+  ];
+
+  nativeBuildInputs = [ meson ninja pkg-config ];
+
+  buildInputs = [
+    bash-completion
+    wayland
+    wayland-protocols
+    json_c
+    libxkbcommon
+    fontconfig
+    giflib
+    libheif
+    libjpeg
+    libwebp
+    libtiff
+    librsvg
+    libpng
+    libjxl
+    libexif
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/artemsen/swayimg";
+    description = "Image viewer for Sway/Wayland";
+    changelog = "https://github.com/artemsen/swayimg/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthewcroughan ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 7e5ed41963f2..f0e26dd82867 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3523,6 +3523,8 @@ with pkgs;
 
   swaysome = callPackage ../tools/wayland/swaysome { };
 
+  swayimg = callPackage ../tools/wayland/swayimg { };
+
   swaytools = python3Packages.callPackage ../tools/wayland/swaytools { };
 
   wayland-utils = callPackage ../tools/wayland/wayland-utils { };