forked from mirrors/nixpkgs
37e47b7f7c
The default configuration use the pulseaudio module, but it fails to load with errors since we've built the package without pulseaudio support. Most systems already have pulseaudio in the system closure anyways so the closure size change won't be noticable on end user systems.
72 lines
2.4 KiB
Nix
72 lines
2.4 KiB
Nix
{ stdenv, fetchFromGitHub, meson, pkgconfig, ninja, wrapGAppsHook
|
|
, wayland, wlroots, gtkmm3, libsigcxx, jsoncpp, fmt, scdoc, spdlog, gtk-layer-shell
|
|
, howard-hinnant-date, cmake
|
|
, traySupport ? true, libdbusmenu-gtk3
|
|
, pulseSupport ? true, libpulseaudio
|
|
, nlSupport ? true, libnl
|
|
, udevSupport ? true, udev
|
|
, swaySupport ? true, sway
|
|
, mpdSupport ? true, mpd_clientlib
|
|
, withMediaPlayer ? false, glib, gobject-introspection, python3, python38Packages, playerctl
|
|
}:
|
|
stdenv.mkDerivation rec {
|
|
pname = "waybar";
|
|
version = "0.9.4";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "Alexays";
|
|
repo = "Waybar";
|
|
rev = version;
|
|
sha256 = "038vnma7y7z81caywp45yr364bc1aq8d01j5vycyiyfv33nm76fy";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
meson ninja pkgconfig scdoc wrapGAppsHook cmake
|
|
] ++ stdenv.lib.optional withMediaPlayer gobject-introspection;
|
|
|
|
propagatedBuildInputs = stdenv.lib.optionals withMediaPlayer [
|
|
glib
|
|
playerctl
|
|
python38Packages.pygobject3
|
|
];
|
|
strictDeps = false;
|
|
|
|
buildInputs = with stdenv.lib;
|
|
[ wayland wlroots gtkmm3 libsigcxx jsoncpp fmt spdlog gtk-layer-shell howard-hinnant-date ]
|
|
++ optional traySupport libdbusmenu-gtk3
|
|
++ optional pulseSupport libpulseaudio
|
|
++ optional nlSupport libnl
|
|
++ optional udevSupport udev
|
|
++ optional swaySupport sway
|
|
++ optional mpdSupport mpd_clientlib;
|
|
|
|
mesonFlags = (stdenv.lib.mapAttrsToList
|
|
(option: enable: "-D${option}=${if enable then "enabled" else "disabled"}")
|
|
{
|
|
dbusmenu-gtk = traySupport;
|
|
pulseaudio = pulseSupport;
|
|
libnl = nlSupport;
|
|
libudev = udevSupport;
|
|
mpd = mpdSupport;
|
|
}
|
|
) ++ [
|
|
"-Dout=${placeholder "out"}"
|
|
"-Dsystemd=disabled"
|
|
];
|
|
|
|
preFixup = stdenv.lib.optional withMediaPlayer ''
|
|
cp $src/resources/custom_modules/mediaplayer.py $out/bin/waybar-mediaplayer.py
|
|
|
|
wrapProgram $out/bin/waybar-mediaplayer.py \
|
|
--prefix PYTHONPATH : "$PYTHONPATH:$out/${python3.sitePackages}"
|
|
'';
|
|
|
|
meta = with stdenv.lib; {
|
|
description = "Highly customizable Wayland bar for Sway and Wlroots based compositors";
|
|
license = licenses.mit;
|
|
maintainers = with maintainers; [ FlorianFranzen minijackson synthetica ];
|
|
platforms = platforms.unix;
|
|
homepage = "https://github.com/alexays/waybar";
|
|
};
|
|
}
|