mirror of
https://codeberg.org/leana8959/.files.git
synced 2026-02-01 14:29:40 +00:00
59 lines
1.4 KiB
Nix
59 lines
1.4 KiB
Nix
# A thicker family of custom build of iosevkas. Optimized for Haskell and Nix.
|
|
final: prev:
|
|
let
|
|
inherit (prev) lib;
|
|
|
|
iosevkaConfig = final: import ./privateBuildPlan.nix;
|
|
|
|
mkIosevka =
|
|
mergedConfig:
|
|
prev.iosevka.override {
|
|
# HACK:
|
|
# Used to construct pname internally, appended to "Iosevka".
|
|
# We drop the prefix so it is not duplicated.
|
|
set = lib.removePrefix "Iosevka" mergedConfig.family;
|
|
privateBuildPlan = mergedConfig;
|
|
};
|
|
|
|
mkNerdFont =
|
|
font:
|
|
final.callPackage ../../lib/mkNerdFont.nix { } {
|
|
inherit font;
|
|
patcherArgs = [
|
|
"--complete"
|
|
"--careful"
|
|
"--name {/.}-NFM"
|
|
"--mono"
|
|
];
|
|
};
|
|
|
|
identityOverlay = _: _: { };
|
|
overlays =
|
|
lib.crossLists
|
|
(
|
|
spacingCfg: variantCfg:
|
|
lib.composeManyExtensions [
|
|
spacingCfg
|
|
variantCfg
|
|
]
|
|
)
|
|
[
|
|
(import ./spacings.nix { inherit lib; })
|
|
([ identityOverlay ] ++ import ./variants.nix)
|
|
];
|
|
|
|
iosevkas = lib.genAttrs' overlays (
|
|
overlay:
|
|
let
|
|
mergedConfig = lib.fix (lib.extends overlay iosevkaConfig);
|
|
toKebabCase = x: builtins.replaceStrings [ " " ] [ "-" ] (lib.toLower x);
|
|
in
|
|
lib.nameValuePair (toKebabCase mergedConfig.family) (mkIosevka mergedConfig)
|
|
);
|
|
|
|
iosevka-nerds = builtins.mapAttrs (_: mkNerdFont) iosevkas;
|
|
in
|
|
iosevkas
|
|
// {
|
|
nerd-fonts = prev.nerd-fonts // iosevka-nerds;
|
|
}
|