diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index f561972c9300..c6a10610354d 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -131,6 +131,7 @@
   falsifian = "James Cook <james.cook@utoronto.ca>";
   flosse = "Markus Kohlhase <mail@markus-kohlhase.de>";
   fluffynukeit = "Daniel Austin <dan@fluffynukeit.com>";
+  fmthoma = "Franz Thoma <f.m.thoma@googlemail.com>";
   forkk = "Andrew Okin <forkk@forkk.net>";
   fornever = "Friedrich von Never <friedrich@fornever.me>";
   fpletz = "Franz Pletz <fpletz@fnordicwalking.de>";
diff --git a/pkgs/applications/window-managers/i3/gaps.nix b/pkgs/applications/window-managers/i3/gaps.nix
new file mode 100644
index 000000000000..fa03bc47d9ed
--- /dev/null
+++ b/pkgs/applications/window-managers/i3/gaps.nix
@@ -0,0 +1,44 @@
+{ fetchurl, stdenv, i3 }:
+
+i3.overrideDerivation (super : rec {
+
+  name = "i3-gaps-${version}";
+  version = "4.12";
+  releaseDate = "2016-03-06";
+
+  src = fetchurl {
+    url = "https://github.com/Airblader/i3/archive/${version}.tar.gz";
+    sha256 = "1i9l993cak85fcw12zgrb5cpspmjixr3yf8naa4zb8589mg4rb8s";
+  };
+
+  postUnpack = ''
+      echo -n "${version} (${releaseDate}, branch \\\"gaps-next\\\")" > ./i3-${version}/I3_VERSION
+      echo -n "${version}" > ./i3-${version}/VERSION
+  '';
+
+  postInstall = ''
+    wrapProgram "$out/bin/i3-save-tree" --prefix PERL5LIB ":" "$PERL5LIB"
+    for program in $out/bin/i3-sensible-*; do
+      sed -i 's/which/command -v/' $program
+    done
+  '';
+
+}) // {
+
+  meta = with stdenv.lib; {
+    description = "A fork of the i3 tiling window manager with some additional features";
+    homepage    = "https://github.com/Airblader/i3";
+    maintainers = with maintainers; [ fmthoma ];
+    license     = licenses.bsd3;
+    platforms   = platforms.all;
+
+    longDescription = ''
+      Fork of i3wm, a tiling window manager primarily targeted at advanced users
+      and developers. Based on a tree as data structure, supports tiling,
+      stacking, and tabbing layouts, handled dynamically, as well as floating
+      windows. This fork adds a few features such as gaps between windows.
+      Configured via plain text file. Multi-monitor. UTF-8 clean.
+    '';
+  };
+
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3b3f3e5cfcb5..cc99ee6c9a28 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -13026,6 +13026,8 @@ in
     xcb-util-cursor = if stdenv.isDarwin then xcb-util-cursor-HEAD else xcb-util-cursor;
   };
 
+  i3-gaps = callPackage ../applications/window-managers/i3/gaps.nix { };
+
   i3blocks = callPackage ../applications/window-managers/i3/blocks.nix { };
 
   i3cat = callPackage ../tools/misc/i3cat { };