Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / applications / window-managers / dwm / default.nix
bloba09790070772763c3c5601ecee5c229d0f1eb874
1 { lib, stdenv, fetchurl, libX11, libXinerama, libXft, writeText, patches ? [ ], conf ? null}:
3 stdenv.mkDerivation rec {
4   pname = "dwm";
5   version = "6.4";
7   src = fetchurl {
8     url = "https://dl.suckless.org/dwm/${pname}-${version}.tar.gz";
9     sha256 = "sha256-+pwNaaWESFB2z8GICf1wXlwggNr7E9XnKaNkbKdwOm4=";
10   };
12   buildInputs = [ libX11 libXinerama libXft ];
14   prePatch = ''
15     sed -i "s@/usr/local@$out@" config.mk
16   '';
18   # Allow users set their own list of patches
19   inherit patches;
21   # Allow users to set the config.def.h file containing the configuration
22   postPatch =
23     let
24       configFile =
25         if lib.isDerivation conf || builtins.isPath conf
26         then conf else writeText "config.def.h" conf;
27     in
28     lib.optionalString (conf != null) "cp ${configFile} config.def.h";
30   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
32   meta = with lib; {
33     homepage = "https://dwm.suckless.org/";
34     description = "An extremely fast, small, and dynamic window manager for X";
35     longDescription = ''
36       dwm is a dynamic window manager for X. It manages windows in tiled,
37       monocle and floating layouts. All of the layouts can be applied
38       dynamically, optimising the environment for the application in use and the
39       task performed.
40       Windows are grouped by tags. Each window can be tagged with one or
41       multiple tags. Selecting certain tags displays all windows with these
42       tags.
43     '';
44     license = licenses.mit;
45     maintainers = with maintainers; [ viric neonfuz ];
46     platforms = platforms.all;
47   };