15 # The dmenu-rs package has extensive plugin support. However, this derivation
16 # only builds the package with the default set of plugins. If you'd like to
17 # further customize dmenu-rs you can build it from the source.
18 # See: https://github.com/Shizcow/dmenu-rs#plugins
19 stdenv.mkDerivation rec {
23 src = fetchFromGitHub {
27 hash = "sha256-05Ia+GHeL8PzOwR7H+NEVhKJVMPhlIaQLwGfvwOAl0g=";
35 rustPlatform.bindgenHook
36 rustPlatform.cargoSetupHook
46 # The dmenu-rs repository does not include a Cargo.lock because of its
47 # dynamic build and plugin support. Generating it with make and checking it
48 # in to nixpkgs here was the easiest way to supply it to rustPlatform.
49 # See: https://github.com/Shizcow/dmenu-rs/issues/34#issuecomment-757415584
50 cargoDeps = rustPlatform.importCargoLock {
51 lockFile = ./Cargo.lock;
54 # Copy the Cargo.lock stored here in nixpkgs into the build directory.
56 cp ${./Cargo.lock} src/Cargo.lock
61 installFlags = [ "PREFIX=$(out)" ];
63 # Running make test requires an X11 server. It also runs dmenu, which then
64 # hangs on user input. It was too hard to figure out how to run these tests
65 # deterministically. See the original PR for some discussion on this.
69 description = "A pixel perfect port of dmenu, rewritten in Rust with extensive plugin support";
70 homepage = "https://github.com/Shizcow/dmenu-rs";
71 license = with licenses; [ gpl3Only ];
72 maintainers = with maintainers; [ benjaminedwardwebb ];
73 platforms = platforms.linux;
74 broken = (stdenv.isLinux && stdenv.isAarch64);