|
|
|
@ -1,13 +1,29 @@ |
|
|
|
|
{ cairo, cmake, fetchFromGitHub, libXdmcp, libpthreadstubs, libxcb, pcre, pkg-config |
|
|
|
|
, python3, lib, stdenv, xcbproto, xcbutil, xcbutilcursor, xcbutilimage |
|
|
|
|
, xcbutilrenderutil, xcbutilwm, xcbutilxrm, makeWrapper |
|
|
|
|
{ cairo |
|
|
|
|
, cmake |
|
|
|
|
, fetchFromGitHub |
|
|
|
|
, libXdmcp |
|
|
|
|
, libpthreadstubs |
|
|
|
|
, libxcb |
|
|
|
|
, pcre |
|
|
|
|
, pkg-config |
|
|
|
|
, python3 |
|
|
|
|
, lib |
|
|
|
|
, stdenv |
|
|
|
|
, xcbproto |
|
|
|
|
, xcbutil |
|
|
|
|
, xcbutilcursor |
|
|
|
|
, xcbutilimage |
|
|
|
|
, xcbutilrenderutil |
|
|
|
|
, xcbutilwm |
|
|
|
|
, xcbutilxrm |
|
|
|
|
, makeWrapper |
|
|
|
|
, removeReferencesTo |
|
|
|
|
|
|
|
|
|
# optional packages-- override the variables ending in 'Support' to enable or |
|
|
|
|
# disable modules |
|
|
|
|
, alsaSupport ? true, alsaLib ? null |
|
|
|
|
, githubSupport ? false, curl ? null |
|
|
|
|
, mpdSupport ? false, mpd_clientlib ? null |
|
|
|
|
, mpdSupport ? false, libmpdclient ? null |
|
|
|
|
, pulseSupport ? false, libpulseaudio ? null |
|
|
|
|
, iwSupport ? false, wirelesstools ? null |
|
|
|
|
, nlSupport ? true, libnl ? null |
|
|
|
@ -16,7 +32,7 @@ |
|
|
|
|
|
|
|
|
|
assert alsaSupport -> alsaLib != null; |
|
|
|
|
assert githubSupport -> curl != null; |
|
|
|
|
assert mpdSupport -> mpd_clientlib != null; |
|
|
|
|
assert mpdSupport -> libmpdclient != null; |
|
|
|
|
assert pulseSupport -> libpulseaudio != null; |
|
|
|
|
|
|
|
|
|
assert iwSupport -> ! nlSupport && wirelesstools != null; |
|
|
|
@ -37,26 +53,24 @@ stdenv.mkDerivation rec { |
|
|
|
|
fetchSubmodules = true; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
meta = with lib; { |
|
|
|
|
homepage = "https://polybar.github.io/"; |
|
|
|
|
description = "A fast and easy-to-use tool for creating status bars"; |
|
|
|
|
longDescription = '' |
|
|
|
|
Polybar aims to help users build beautiful and highly customizable |
|
|
|
|
status bars for their desktop environment, without the need of |
|
|
|
|
having a black belt in shell scripting. |
|
|
|
|
''; |
|
|
|
|
license = licenses.mit; |
|
|
|
|
maintainers = with maintainers; [ afldcr Br1ght0ne ]; |
|
|
|
|
platforms = platforms.linux; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
buildInputs = [ |
|
|
|
|
cairo libXdmcp libpthreadstubs libxcb pcre python3 xcbproto xcbutil |
|
|
|
|
xcbutilcursor xcbutilimage xcbutilrenderutil xcbutilwm xcbutilxrm |
|
|
|
|
cairo |
|
|
|
|
libXdmcp |
|
|
|
|
libpthreadstubs |
|
|
|
|
libxcb |
|
|
|
|
pcre |
|
|
|
|
python3 |
|
|
|
|
xcbproto |
|
|
|
|
xcbutil |
|
|
|
|
xcbutilcursor |
|
|
|
|
xcbutilimage |
|
|
|
|
xcbutilrenderutil |
|
|
|
|
xcbutilwm |
|
|
|
|
xcbutilxrm |
|
|
|
|
|
|
|
|
|
(if alsaSupport then alsaLib else null) |
|
|
|
|
(if githubSupport then curl else null) |
|
|
|
|
(if mpdSupport then mpd_clientlib else null) |
|
|
|
|
(if mpdSupport then libmpdclient else null) |
|
|
|
|
(if pulseSupport then libpulseaudio else null) |
|
|
|
|
|
|
|
|
|
(if iwSupport then wirelesstools else null) |
|
|
|
@ -69,16 +83,36 @@ stdenv.mkDerivation rec { |
|
|
|
|
(if i3Support || i3GapsSupport then makeWrapper else null) |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
postInstall = if (i3Support || i3GapsSupport) then '' |
|
|
|
|
wrapProgram $out/bin/polybar \ |
|
|
|
|
--prefix PATH : "${if i3Support then i3 else i3-gaps}/bin" |
|
|
|
|
'' else ""; |
|
|
|
|
postInstall = if i3Support |
|
|
|
|
then ''wrapProgram $out/bin/polybar \ |
|
|
|
|
--prefix PATH : "${i3}/bin" |
|
|
|
|
'' |
|
|
|
|
else if i3GapsSupport |
|
|
|
|
then ''wrapProgram $out/bin/polybar \ |
|
|
|
|
--prefix PATH : "${i3-gaps}/bin" |
|
|
|
|
'' |
|
|
|
|
else ''''; |
|
|
|
|
|
|
|
|
|
nativeBuildInputs = [ |
|
|
|
|
cmake pkg-config removeReferencesTo |
|
|
|
|
cmake |
|
|
|
|
pkg-config |
|
|
|
|
removeReferencesTo |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
postFixup = '' |
|
|
|
|
remove-references-to -t ${stdenv.cc} $out/bin/polybar |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|
meta = with lib; { |
|
|
|
|
homepage = "https://polybar.github.io/"; |
|
|
|
|
description = "A fast and easy-to-use tool for creating status bars"; |
|
|
|
|
longDescription = '' |
|
|
|
|
Polybar aims to help users build beautiful and highly customizable |
|
|
|
|
status bars for their desktop environment, without the need of |
|
|
|
|
having a black belt in shell scripting. |
|
|
|
|
''; |
|
|
|
|
license = licenses.mit; |
|
|
|
|
maintainers = with maintainers; [ afldcr Br1ght0ne ]; |
|
|
|
|
platforms = platforms.linux; |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|