nixpkgs/pkgs/applications/misc/yambar/default.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

120 lines
2.7 KiB
Nix
Raw Normal View History

{ lib
, stdenv
, fetchFromGitea
, alsa-lib
2022-12-17 13:17:47 +00:00
, bison
2021-02-10 13:56:11 +00:00
, fcft
2022-12-17 13:17:47 +00:00
, flex
2021-02-10 13:56:11 +00:00
, json_c
, libmpdclient
, libxcb
2021-02-10 13:56:11 +00:00
, libyaml
, meson
, ninja
2022-12-17 13:17:47 +00:00
, pipewire
2021-02-10 13:56:11 +00:00
, pixman
, pkg-config
2022-12-17 13:17:47 +00:00
, pulseaudio
, scdoc
2021-02-10 13:56:11 +00:00
, tllist
, udev
, wayland
, wayland-protocols
, wayland-scanner
2021-02-10 13:56:11 +00:00
, xcbutil
, xcbutilcursor
, xcbutilerrors
, xcbutilwm
, waylandSupport ? true
, x11Support ? true
2021-02-10 13:56:11 +00:00
}:
let
2022-12-17 13:17:47 +00:00
inherit (lib) mesonEnable;
in
2022-12-17 13:17:47 +00:00
assert (x11Support || waylandSupport);
stdenv.mkDerivation (finalAttrs: {
2021-02-10 13:56:11 +00:00
pname = "yambar";
2022-12-17 13:17:47 +00:00
version = "1.9.0";
2021-02-10 13:56:11 +00:00
src = fetchFromGitea {
domain = "codeberg.org";
owner = "dnkl";
repo = "yambar";
2022-12-17 13:17:47 +00:00
rev = finalAttrs.version;
hash = "sha256-0bgRnZYLGWJ9PE62i04hPBcgzWyd30DK7AUuejSgta4=";
2021-02-10 13:56:11 +00:00
};
nativeBuildInputs = [
2022-12-17 13:17:47 +00:00
bison
flex
meson
ninja
2022-12-17 13:17:47 +00:00
pkg-config
scdoc
wayland-scanner
];
2021-02-10 13:56:11 +00:00
buildInputs = [
alsa-lib
2021-02-10 13:56:11 +00:00
fcft
json_c
libmpdclient
libyaml
2022-12-17 13:17:47 +00:00
pipewire
2021-02-10 13:56:11 +00:00
pixman
2022-12-17 13:17:47 +00:00
pulseaudio
2021-02-10 13:56:11 +00:00
tllist
udev
] ++ lib.optionals (waylandSupport) [
2021-02-10 13:56:11 +00:00
wayland
wayland-protocols
] ++ lib.optionals (x11Support) [
2021-02-10 13:56:11 +00:00
xcbutil
xcbutilcursor
xcbutilerrors
xcbutilwm
];
mesonBuildType = "release";
mesonFlags = [
2022-12-17 13:17:47 +00:00
(mesonEnable "backend-x11" x11Support)
(mesonEnable "backend-wayland" waylandSupport)
];
2021-02-10 13:56:11 +00:00
meta = with lib; {
homepage = "https://codeberg.org/dnkl/yambar";
2022-12-17 13:17:47 +00:00
changelog = "https://codeberg.org/dnkl/yambar/releases/tag/${finalAttrs.version}";
2021-02-10 13:56:11 +00:00
description = "Modular status panel for X11 and Wayland";
longDescription = ''
yambar is a lightweight and configurable status panel (bar, for short) for
X11 and Wayland, that goes to great lengths to be both CPU and battery
efficient - polling is only done when absolutely necessary.
It has a number of modules that provide information in the form of tags.
For example, the clock module has a date tag that contains the current
date.
2021-02-10 13:56:11 +00:00
The modules do not know how to present the information though. This is
instead done by particles. And the user, you, decides which particles (and
thus how to present the data) to use.
Furthermore, each particle can have a decoration - a background color or a
graphical underline, for example.
There is no support for images or icons. use an icon font (e.g. Font
Awesome, or Material Icons) if you want a graphical representation.
There are a number of modules and particles builtin. More can be added as
plugins. You can even write your own!
To summarize: a bar displays information provided by modules, using
particles and decorations. How is configured by you.
'';
license = licenses.mit;
maintainers = with maintainers; [ AndersonTorres ];
2022-12-17 13:17:47 +00:00
platforms = platforms.linux;
2021-02-10 13:56:11 +00:00
};
2022-12-17 13:17:47 +00:00
})