1 { stdenv, lib, fetchFromGitHub, fetchpatch, cairo, libxkbcommon
2 , pango, fribidi, harfbuzz, pcre, pkg-config
3 , ncursesSupport ? true, ncurses ? null
4 , waylandSupport ? true, wayland ? null, wayland-protocols ? null
5 , x11Support ? true, xorg ? null
8 assert ncursesSupport -> ncurses != null;
9 assert waylandSupport -> ! lib.elem null [wayland wayland-protocols];
10 assert x11Support -> xorg != null;
12 stdenv.mkDerivation rec {
16 src = fetchFromGitHub {
20 sha256 = "sha256-YGaAJOyVZBHEWQuZVfPIIbtuntv1klQk9GcWRN+oVF4=";
23 nativeBuildInputs = [ pkg-config pcre ];
25 makeFlags = ["PREFIX=$(out)"];
27 buildFlags = ["clients"]
28 ++ lib.optional ncursesSupport "curses"
29 ++ lib.optional waylandSupport "wayland"
30 ++ lib.optional x11Support "x11";
32 buildInputs = with lib; [
38 ] ++ optional ncursesSupport ncurses
39 ++ optionals waylandSupport [ wayland wayland-protocols ]
40 ++ optionals x11Support [
41 xorg.libX11 xorg.libXinerama xorg.libXft
42 xorg.libXdmcp xorg.libpthreadstubs xorg.libxcb
46 homepage = "https://github.com/Cloudef/bemenu";
47 description = "Dynamic menu library and client program inspired by dmenu";
48 license = licenses.gpl3Plus;
49 maintainers = with maintainers; [ lheckemann ];
50 platforms = with platforms; linux;