2021-07-23 23:44:42 -06:00
|
|
|
{
|
|
|
|
|
inputs = {
|
2025-08-14 14:02:27 -06:00
|
|
|
flake-utils.url = "github:numtide/flake-utils";
|
2026-02-05 00:12:51 -08:00
|
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
2025-08-14 14:02:27 -06:00
|
|
|
xmonad.url = "github:xmonad/xmonad/master";
|
2025-11-28 00:59:56 -08:00
|
|
|
taffybar = {
|
2026-02-05 00:12:51 -08:00
|
|
|
url = "path:/home/imalison/dotfiles/dotfiles/config/taffybar/taffybar";
|
2025-11-28 00:59:56 -08:00
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
inputs.xmonad.follows = "xmonad";
|
|
|
|
|
};
|
2021-07-23 23:44:42 -06:00
|
|
|
};
|
2023-05-17 14:09:41 -06:00
|
|
|
outputs = { self, flake-utils, taffybar, nixpkgs, xmonad }:
|
|
|
|
|
let
|
2025-11-28 00:59:56 -08:00
|
|
|
hoverlay = final: prev: hself: hsuper:
|
2025-12-19 15:49:57 -08:00
|
|
|
{
|
|
|
|
|
taffybar = prev.haskell.lib.overrideCabal hsuper.taffybar (oa: {
|
2024-01-04 20:36:18 -07:00
|
|
|
doHaddock = false;
|
2025-11-28 00:59:56 -08:00
|
|
|
doCheck = false;
|
2026-02-05 00:12:51 -08:00
|
|
|
# Legacy fix for older GHC (harmless on newer)
|
2025-12-19 15:49:57 -08:00
|
|
|
postPatch = (oa.postPatch or "") + ''
|
|
|
|
|
substituteInPlace src/System/Taffybar/DBus/Client/Util.hs \
|
|
|
|
|
--replace-fail "import Control.Monad (forM)" \
|
|
|
|
|
"import Control.Monad (forM)
|
|
|
|
|
import Control.Applicative (liftA2)"
|
|
|
|
|
'';
|
2024-01-04 20:36:18 -07:00
|
|
|
});
|
2025-12-19 15:49:57 -08:00
|
|
|
# gi-gtk-hs patching is now handled by taffybar's fixVersionNamePackages overlay
|
2023-05-17 14:09:41 -06:00
|
|
|
imalison-taffybar = prev.haskell.lib.addPkgconfigDepends (
|
|
|
|
|
hself.callCabal2nix "imalison-taffybar"
|
|
|
|
|
(
|
|
|
|
|
final.lib.sourceByRegex ./.
|
|
|
|
|
["taffybar.hs" "imalison-taffybar.cabal"]
|
|
|
|
|
)
|
|
|
|
|
{ }) [
|
|
|
|
|
final.util-linux.dev
|
|
|
|
|
final.pcre2
|
|
|
|
|
final.pcre
|
|
|
|
|
final.libselinux.dev
|
|
|
|
|
final.libsepol.dev
|
|
|
|
|
final.fribidi.out
|
|
|
|
|
final.fribidi.dev
|
|
|
|
|
final.libthai.dev
|
|
|
|
|
final.libdatrie.dev
|
|
|
|
|
final.xorg.libXdmcp.dev
|
|
|
|
|
final.libxkbcommon.dev
|
|
|
|
|
final.libepoxy.dev
|
|
|
|
|
final.xorg.libXtst.out
|
|
|
|
|
];
|
|
|
|
|
};
|
2026-02-05 00:12:51 -08:00
|
|
|
defComp = { compiler = "ghc98"; };
|
2023-05-17 14:09:41 -06:00
|
|
|
overlay = xmonad.lib.fromHOL hoverlay defComp;
|
2025-11-28 00:59:56 -08:00
|
|
|
overlayList = [ taffybar.overlays.default overlay ];
|
2021-07-23 23:44:42 -06:00
|
|
|
in flake-utils.lib.eachDefaultSystem (system:
|
2025-11-28 00:59:56 -08:00
|
|
|
let pkgs = import nixpkgs { inherit system; overlays = overlayList; config.allowBroken = true; };
|
2023-05-17 14:09:41 -06:00
|
|
|
hpkgs = pkgs.lib.attrsets.getAttrFromPath (xmonad.lib.hpath defComp) pkgs;
|
2021-07-23 23:44:42 -06:00
|
|
|
in
|
2025-08-14 14:02:27 -06:00
|
|
|
{
|
2023-05-17 14:09:41 -06:00
|
|
|
devShell = hpkgs.shellFor {
|
2021-07-24 03:10:46 -06:00
|
|
|
packages = p: [ p.imalison-taffybar p.taffybar ];
|
2026-02-05 00:12:51 -08:00
|
|
|
nativeBuildInputs = (with hpkgs; [
|
2023-05-17 14:09:41 -06:00
|
|
|
cabal-install
|
|
|
|
|
# ghcid ormolu implicit-hie haskell-language-server hlint
|
2026-02-05 00:12:51 -08:00
|
|
|
]) ++ [
|
|
|
|
|
pkgs.gdk-pixbuf
|
|
|
|
|
pkgs.librsvg
|
2021-08-14 02:14:00 -06:00
|
|
|
];
|
2026-02-05 00:12:51 -08:00
|
|
|
shellHook = ''
|
|
|
|
|
if [ -z "''${GDK_PIXBUF_MODULE_FILE:-}" ]; then
|
|
|
|
|
export GDK_PIXBUF_MODULE_FILE="${pkgs.gdk-pixbuf}/lib/gdk-pixbuf-2.0/${pkgs.gdk-pixbuf.version}/loaders.cache"
|
|
|
|
|
fi
|
|
|
|
|
if [ -z "''${GDK_PIXBUF_MODULEDIR:-}" ]; then
|
|
|
|
|
export GDK_PIXBUF_MODULEDIR="${pkgs.gdk-pixbuf}/lib/gdk-pixbuf-2.0/${pkgs.gdk-pixbuf.version}/loaders"
|
|
|
|
|
fi
|
|
|
|
|
'';
|
2021-07-23 23:44:42 -06:00
|
|
|
};
|
2023-05-17 14:09:41 -06:00
|
|
|
defaultPackage = hpkgs.imalison-taffybar;
|
2025-11-28 00:59:56 -08:00
|
|
|
}) // {
|
|
|
|
|
inherit overlay;
|
|
|
|
|
overlays = {
|
|
|
|
|
default = overlay;
|
|
|
|
|
taffybar = taffybar.overlays.default;
|
|
|
|
|
};
|
|
|
|
|
} ;
|
2021-07-23 23:44:42 -06:00
|
|
|
}
|