improve nix dev shell; override the nixpkgs waybar
for example, the update from 0.9.16 to 0.9.17 broke this flake, after this change the derivation will be the same as the nixpkgs one. This is the better option since the flake is unmaintained in this repo (although it may still break inbetween releases)
This commit is contained in:
parent
ea38eec2af
commit
4dcce810d2
43
flake.nix
43
flake.nix
|
@ -26,9 +26,9 @@
|
||||||
]);
|
]);
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
overlays.default = _: prev: rec {
|
overlays.default = _: prev: {
|
||||||
waybar = prev.callPackage ./nix/default.nix {
|
waybar = prev.callPackage ./nix/default.nix {
|
||||||
version = "0.9.16" + "+date=" + (mkDate (self.lastModifiedDate or "19700101")) + "_" + (self.shortRev or "dirty");
|
version = prev.waybar.version + "+date=" + (mkDate (self.lastModifiedDate or "19700101")) + "_" + (self.shortRev or "dirty");
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
packages = genSystems
|
packages = genSystems
|
||||||
|
@ -55,10 +55,47 @@
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
devshell.packages = with pkgs; [
|
devshell.packages = with pkgs; [
|
||||||
|
# from nativeBuildInputs
|
||||||
clang-tools
|
clang-tools
|
||||||
gdb
|
gdb
|
||||||
];
|
meson
|
||||||
|
ninja
|
||||||
|
pkg-config
|
||||||
|
scdoc
|
||||||
|
] ++ (map lib.getDev [
|
||||||
|
# from buildInputs
|
||||||
|
wayland wlroots gtkmm3 libsigcxx jsoncpp spdlog gtk-layer-shell howard-hinnant-date libxkbcommon
|
||||||
|
# opttional dependencies
|
||||||
|
gobject-introspection glib playerctl python3.pkgs.pygobject3
|
||||||
|
libevdev libinput libjack2 libmpdclient playerctl libnl
|
||||||
|
libpulseaudio sndio sway libdbusmenu-gtk3 udev upower wireplumber
|
||||||
|
|
||||||
|
# from propagated build inputs?
|
||||||
|
at-spi2-atk atkmm cairo cairomm catch2 fmt_8 fontconfig
|
||||||
|
gdk-pixbuf glibmm gtk3 harfbuzz pango pangomm wayland-protocols
|
||||||
|
]);
|
||||||
language.c.libraries = with pkgs; [
|
language.c.libraries = with pkgs; [
|
||||||
|
# runtime dependencies (normally handled by patchElf)
|
||||||
|
bzip2 celt dbus expat flac fontconfig freetype fribidi glibc
|
||||||
|
graphite2 gtk3 howard-hinnant-date icu json-glib libGL
|
||||||
|
libasyncns libcap libdatrie libepoxy libffi libgcrypt
|
||||||
|
libgpg-error libgudev libjpeg libogg libopus libpng
|
||||||
|
libselinux libsndfile libthai libvorbis libwacom libxml2 lz4
|
||||||
|
mtdev pcre pcre2 pipewire pixman pulseaudio sndio sqlite
|
||||||
|
tracker util-linux xorg.libX11 xorg.libXau
|
||||||
|
xorg.libXcomposite xorg.libXcursor xorg.libXdmcp
|
||||||
|
xorg.libXext xorg.libXfixes xorg.libXi xorg.libXinerama
|
||||||
|
xorg.libXrandr xorg.libXrender xorg.libxcb xz zlib zstd
|
||||||
|
];
|
||||||
|
env = with pkgs; [
|
||||||
|
{ name = "CPLUS_INCLUDE_PATH"; prefix = "$DEVSHELL_DIR/include"; }
|
||||||
|
{ name = "PKG_CONFIG_PATH"; prefix = "$DEVSHELL_DIR/lib/pkgconfig"; }
|
||||||
|
{ name = "PKG_CONFIG_PATH"; prefix = "$DEVSHELL_DIR/share/pkgconfig"; }
|
||||||
|
{ name = "PATH"; prefix = "${wayland.bin}/bin"; }
|
||||||
|
{ name = "LIBRARY_PATH"; prefix = "${lib.getLib sndio}/lib"; }
|
||||||
|
{ name = "LIBRARY_PATH"; prefix = "${lib.getLib zlib}/lib"; }
|
||||||
|
{ name = "LIBRARY_PATH"; prefix = "${lib.getLib howard-hinnant-date}/lib"; }
|
||||||
|
{ name = "LD_LIBRARY_PATH"; prefix = "${lib.getLib pulseaudio}/lib/pulseaudio"; }
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
127
nix/default.nix
127
nix/default.nix
|
@ -1,60 +1,11 @@
|
||||||
{ lib
|
{ lib
|
||||||
, stdenv
|
, waybar
|
||||||
, fetchFromGitHub
|
|
||||||
, meson
|
|
||||||
, pkg-config
|
|
||||||
, ninja
|
|
||||||
, wrapGAppsHook
|
|
||||||
, wayland
|
|
||||||
, wlroots
|
|
||||||
, gtkmm3
|
|
||||||
, libsigcxx
|
|
||||||
, jsoncpp
|
|
||||||
, scdoc
|
|
||||||
, spdlog
|
|
||||||
, gtk-layer-shell
|
|
||||||
, howard-hinnant-date
|
|
||||||
, libinotify-kqueue
|
|
||||||
, libxkbcommon
|
|
||||||
, evdevSupport ? true
|
|
||||||
, libevdev
|
|
||||||
, inputSupport ? true
|
|
||||||
, libinput
|
|
||||||
, jackSupport ? true
|
|
||||||
, libjack2
|
|
||||||
, mpdSupport ? true
|
|
||||||
, libmpdclient
|
|
||||||
, nlSupport ? true
|
|
||||||
, libnl
|
|
||||||
, pulseSupport ? true
|
|
||||||
, libpulseaudio
|
|
||||||
, rfkillSupport ? true
|
|
||||||
, runTests ? true
|
|
||||||
, catch2_3
|
|
||||||
, sndioSupport ? true
|
|
||||||
, sndio
|
|
||||||
, swaySupport ? true
|
|
||||||
, sway
|
|
||||||
, traySupport ? true
|
|
||||||
, libdbusmenu-gtk3
|
|
||||||
, udevSupport ? true
|
|
||||||
, udev
|
|
||||||
, upowerSupport ? true
|
|
||||||
, upower
|
|
||||||
, wireplumberSupport ? true
|
|
||||||
, wireplumber
|
|
||||||
, withMediaPlayer ? false
|
|
||||||
, glib
|
|
||||||
, gobject-introspection
|
|
||||||
, python3
|
|
||||||
, playerctl
|
|
||||||
, version
|
, version
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
waybar.overrideAttrs (prev: {
|
||||||
pname = "waybar";
|
|
||||||
inherit version;
|
inherit version;
|
||||||
# version = "0.9.16";
|
# version = "0.9.17";
|
||||||
|
|
||||||
src = lib.cleanSourceWith {
|
src = lib.cleanSourceWith {
|
||||||
filter = name: type:
|
filter = name: type:
|
||||||
|
@ -66,74 +17,4 @@ stdenv.mkDerivation rec {
|
||||||
);
|
);
|
||||||
src = lib.cleanSource ../.;
|
src = lib.cleanSource ../.;
|
||||||
};
|
};
|
||||||
|
})
|
||||||
nativeBuildInputs = [
|
|
||||||
meson
|
|
||||||
ninja
|
|
||||||
pkg-config
|
|
||||||
scdoc
|
|
||||||
wrapGAppsHook
|
|
||||||
] ++ lib.optional withMediaPlayer gobject-introspection;
|
|
||||||
|
|
||||||
propagatedBuildInputs = lib.optionals withMediaPlayer [
|
|
||||||
glib
|
|
||||||
playerctl
|
|
||||||
python3.pkgs.pygobject3
|
|
||||||
];
|
|
||||||
strictDeps = false;
|
|
||||||
|
|
||||||
buildInputs = with lib;
|
|
||||||
[ wayland wlroots gtkmm3 libsigcxx jsoncpp spdlog gtk-layer-shell howard-hinnant-date libxkbcommon ]
|
|
||||||
++ optional (!stdenv.isLinux) libinotify-kqueue
|
|
||||||
++ optional evdevSupport libevdev
|
|
||||||
++ optional inputSupport libinput
|
|
||||||
++ optional jackSupport libjack2
|
|
||||||
++ optional mpdSupport libmpdclient
|
|
||||||
++ optional nlSupport libnl
|
|
||||||
++ optional pulseSupport libpulseaudio
|
|
||||||
++ optional sndioSupport sndio
|
|
||||||
++ optional swaySupport sway
|
|
||||||
++ optional traySupport libdbusmenu-gtk3
|
|
||||||
++ optional udevSupport udev
|
|
||||||
++ optional upowerSupport upower
|
|
||||||
++ optional wireplumberSupport wireplumber;
|
|
||||||
|
|
||||||
checkInputs = [ catch2_3 ];
|
|
||||||
doCheck = runTests;
|
|
||||||
|
|
||||||
mesonFlags = (lib.mapAttrsToList
|
|
||||||
(option: enable: "-D${option}=${if enable then "enabled" else "disabled"}")
|
|
||||||
{
|
|
||||||
dbusmenu-gtk = traySupport;
|
|
||||||
jack = jackSupport;
|
|
||||||
libinput = inputSupport;
|
|
||||||
libnl = nlSupport;
|
|
||||||
libudev = udevSupport;
|
|
||||||
mpd = mpdSupport;
|
|
||||||
pulseaudio = pulseSupport;
|
|
||||||
rfkill = rfkillSupport;
|
|
||||||
sndio = sndioSupport;
|
|
||||||
tests = runTests;
|
|
||||||
upower_glib = upowerSupport;
|
|
||||||
wireplumber = wireplumberSupport;
|
|
||||||
}
|
|
||||||
) ++ [
|
|
||||||
"-Dsystemd=disabled"
|
|
||||||
"-Dgtk-layer-shell=enabled"
|
|
||||||
"-Dman-pages=enabled"
|
|
||||||
];
|
|
||||||
|
|
||||||
preFixup = lib.optionalString 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 lib; {
|
|
||||||
description = "Highly customizable Wayland bar for Sway and Wlroots based compositors";
|
|
||||||
license = licenses.mit;
|
|
||||||
maintainers = with maintainers; [ FlorianFranzen minijackson synthetica lovesegfault ];
|
|
||||||
platforms = platforms.unix;
|
|
||||||
homepage = "https://github.com/alexays/waybar";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue