diff --git a/pkgs/applications/misc/jgmenu/default.nix b/pkgs/applications/misc/jgmenu/default.nix
new file mode 100644
index 000000000000..54a383c31c28
--- /dev/null
+++ b/pkgs/applications/misc/jgmenu/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, pkgconfig, python3Packages, pango, librsvg, libxml2, menu-cache, xorg }:
+
+stdenv.mkDerivation rec {
+  name = "jgmenu-${version}";
+  version = "0.7.4";
+
+  src = fetchFromGitHub {
+    owner = "johanmalm";
+    repo = "jgmenu";
+    rev = "v${version}";
+    sha256 = "0vim7balxrxhbgq4jvf80lbh57xbw3qmhapy7n2iyv443ih4a7hi";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig
+    python3Packages.wrapPython
+  ];
+
+  buildInputs = [
+    pango
+    librsvg
+    libxml2
+    menu-cache
+    xorg.libXinerama
+  ];
+
+  makeFlags = [ "prefix=$(out)" ];
+
+  postFixup = ''
+    wrapPythonProgramsIn "$out/lib/jgmenu"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/johanmalm/jgmenu;
+    description = "Small X11 menu intended to be used with openbox and tint2";
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 61036ae4f827..dbe26f522859 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -15309,6 +15309,8 @@ with pkgs;
 
   jedit = callPackage ../applications/editors/jedit { };
 
+  jgmenu = callPackage ../applications/misc/jgmenu { };
+
   jigdo = callPackage ../applications/misc/jigdo { };
 
   jitsi = callPackage ../applications/networking/instant-messengers/jitsi { };