ripasso-cursive: cosmetic changes (#361736)
[NixPkgs.git] / pkgs / by-name / po / polybar / package.nix
blob520b7753d3f0fba638f790dc0332718061f7a952
1 { config
2 , cairo
3 , cmake
4 , fetchFromGitHub
5 , libuv
6 , libXdmcp
7 , libpthreadstubs
8 , libxcb
9 , pcre
10 , pkg-config
11 , python3
12 , python3Packages # sphinx-build
13 , lib
14 , stdenv
15 , xcbproto
16 , xcbutil
17 , xcbutilcursor
18 , xcbutilimage
19 , xcbutilrenderutil
20 , xcbutilwm
21 , xcbutilxrm
22 , makeWrapper
23 , removeReferencesTo
24 , alsa-lib
25 , curl
26 , libmpdclient
27 , libpulseaudio
28 , wirelesstools
29 , libnl
30 , i3
31 , jsoncpp
33   # override the variables ending in 'Support' to enable or disable modules
34 , alsaSupport ? true
35 , githubSupport ? false
36 , mpdSupport ? false
37 , pulseSupport ? config.pulseaudio or false
38 , iwSupport ? false
39 , nlSupport ? true
40 , i3Support ? false
43 stdenv.mkDerivation (finalAttrs: {
44   pname = "polybar";
45   version = "3.7.2";
47   src = fetchFromGitHub {
48     owner = "polybar";
49     repo = "polybar";
50     rev = finalAttrs.version;
51     hash = "sha256-5PYKl6Hi4EYEmUBwkV0rLiwxNqIyR5jwm495YnNs0gI=";
52     fetchSubmodules = true;
53   };
55   nativeBuildInputs = [
56     cmake
57     pkg-config
58     python3Packages.sphinx
59     removeReferencesTo
60   ] ++ lib.optional i3Support makeWrapper;
62   buildInputs = [
63     cairo
64     libuv
65     libXdmcp
66     libpthreadstubs
67     libxcb
68     pcre
69     python3
70     xcbproto
71     xcbutil
72     xcbutilcursor
73     xcbutilimage
74     xcbutilrenderutil
75     xcbutilwm
76     xcbutilxrm
77   ] ++ lib.optional alsaSupport alsa-lib
78   ++ lib.optional githubSupport curl
79   ++ lib.optional mpdSupport libmpdclient
80   ++ lib.optional pulseSupport libpulseaudio
81   ++ lib.optional iwSupport wirelesstools
82   ++ lib.optional nlSupport libnl
83   ++ lib.optionals i3Support [ jsoncpp i3 ];
85   patches = [ ./remove-hardcoded-etc.diff ];
87   # Replace hardcoded /etc when copying and reading the default config.
88   postPatch = ''
89     substituteInPlace CMakeLists.txt --replace "/etc" $out
90     substituteAllInPlace src/utils/file.cpp
91   '';
93   postInstall =
94     lib.optionalString i3Support ''
95       wrapProgram $out/bin/polybar \
96         --prefix PATH : "${i3}/bin"
97     '';
99   postFixup = ''
100     remove-references-to -t ${stdenv.cc} $out/bin/polybar
101   '';
103   meta = with lib; {
104     homepage = "https://polybar.github.io/";
105     changelog = "https://github.com/polybar/polybar/releases/tag/${finalAttrs.version}";
106     description = "Fast and easy-to-use tool for creating status bars";
107     longDescription = ''
108       Polybar aims to help users build beautiful and highly customizable
109       status bars for their desktop environment, without the need of
110       having a black belt in shell scripting.
111     '';
112     license = licenses.mit;
113     maintainers = with maintainers; [ afldcr Br1ght0ne moni ];
114     mainProgram = "polybar";
115     platforms = platforms.linux;
116   };