biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / applications / misc / yambar / default.nix
blobee679a630b60b2f5b83888d72fccb325bc36f62f
1 { lib
2 , stdenv
3 , fetchFromGitea
4 , alsa-lib
5 , bison
6 , fcft
7 , flex
8 , json_c
9 , libmpdclient
10 , libxcb
11 , libyaml
12 , meson
13 , ninja
14 , pipewire
15 , pixman
16 , pkg-config
17 , pulseaudio
18 , scdoc
19 , tllist
20 , udev
21 , wayland
22 , wayland-protocols
23 , wayland-scanner
24 , xcbutil
25 , xcbutilcursor
26 , xcbutilerrors
27 , xcbutilwm
28 , waylandSupport ? true
29 , x11Support ? true
32 assert (x11Support || waylandSupport);
33 stdenv.mkDerivation (finalAttrs: {
34   pname = "yambar";
35   version = "1.10.0";
37   src = fetchFromGitea {
38     domain = "codeberg.org";
39     owner = "dnkl";
40     repo = "yambar";
41     rev = finalAttrs.version;
42     hash = "sha256-+bNTEPGV5xaVXhsejyK+FCcJ9J06KS6x7/qo6P2DnZI=";
43   };
45   outputs = [ "out" "man" ];
47   depsBuildBuild = [ pkg-config ];
49   nativeBuildInputs = [
50     bison
51     flex
52     meson
53     ninja
54     pkg-config
55     scdoc
56     wayland-scanner
57   ];
59   buildInputs = [
60     alsa-lib
61     fcft
62     json_c
63     libmpdclient
64     libyaml
65     pipewire
66     pixman
67     pulseaudio
68     tllist
69     udev
70   ] ++ lib.optionals (waylandSupport) [
71     wayland
72     wayland-protocols
73   ] ++ lib.optionals (x11Support) [
74     xcbutil
75     xcbutilcursor
76     xcbutilerrors
77     xcbutilwm
78   ];
80   strictDeps = true;
82   mesonBuildType = "release";
84   mesonFlags = [
85     (lib.mesonBool "werror" false)
86     (lib.mesonEnable "backend-x11" x11Support)
87     (lib.mesonEnable "backend-wayland" waylandSupport)
88   ];
90   meta = {
91     homepage = "https://codeberg.org/dnkl/yambar";
92     description = "Modular status panel for X11 and Wayland";
93     longDescription = ''
94       yambar is a lightweight and configurable status panel (bar, for short) for
95       X11 and Wayland, that goes to great lengths to be both CPU and battery
96       efficient - polling is only done when absolutely necessary.
98       It has a number of modules that provide information in the form of tags.
99       For example, the clock module has a date tag that contains the current
100       date.
102       The modules do not know how to present the information though. This is
103       instead done by particles. And the user, you, decides which particles (and
104       thus how to present the data) to use.
106       Furthermore, each particle can have a decoration - a background color or a
107       graphical underline, for example.
109       There is no support for images or icons. use an icon font (e.g. Font
110       Awesome, or Material Icons) if you want a graphical representation.
112       There are a number of modules and particles builtin. More can be added as
113       plugins. You can even write your own!
115       To summarize: a bar displays information provided by modules, using
116       particles and decorations. How is configured by you.
117     '';
118     changelog = "https://codeberg.org/dnkl/yambar/releases/tag/${finalAttrs.version}";
119     license = lib.licenses.mit;
120     maintainers = with lib.maintainers; [ AndersonTorres ];
121     platforms = lib.platforms.linux;
122     mainProgram = "yambar";
123   };