diff --git a/pkgs/tools/X11/pmenu/default.nix b/pkgs/tools/X11/pmenu/default.nix new file mode 100644 index 000000000000..7de509a299c5 --- /dev/null +++ b/pkgs/tools/X11/pmenu/default.nix @@ -0,0 +1,60 @@ +{ lib +, stdenv +, fetchFromGitHub +, writeText +, fontconfig +, imlib2 +, libX11 +, libXext +, libXft +, libXinerama +, libXrender +, conf ? null +}: + +stdenv.mkDerivation rec { + pname = "pmenu"; + version = "3.0.1"; + + src = fetchFromGitHub { + owner = "phillbush"; + repo = "pmenu"; + rev = "v${version}"; + sha256 = "sha256-xeOiJEOPz5QEMlWP6bWhTjmj4tfNqh3rsEVmnKvrKuM="; + }; + + buildInputs = [ + fontconfig + imlib2 + libX11 + libXext + libXft + libXinerama + libXrender + ]; + + postPatch = let + configFile = + if lib.isDerivation conf || builtins.isPath conf + then conf else writeText "config.h" conf; + in + lib.optionalString (conf != null) "mv ${configFile} config.h"; + + makeFlags = [ + "INSTALL=install" + "PREFIX=\${out}" + ]; + + meta = with lib; { + description = "A pie-menu tool"; + longDescription = '' + πmenu is a pie menu utility for X. πmenu receives a menu specification in + stdin, shows a menu for the user to select one of the options, and outputs + the option selected to stdout. + ''; + homepage = "https://github.com/phillbush/pmenu"; + license = licenses.mit; + maintainers = with maintainers; [ azahi ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 511686d2b9a0..b7829b4c0156 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9542,6 +9542,8 @@ with pkgs; pm2 = nodePackages.pm2; + pmenu = callPackage ../tools/X11/pmenu { }; + pngcheck = callPackage ../tools/graphics/pngcheck { }; pngcrush = callPackage ../tools/graphics/pngcrush { };