mirror of
https://codeberg.org/leana8959/.files.git
synced 2026-02-01 14:39:39 +00:00
overlays/iosevka: refactor
iosevka overlay now uses iosevka config build plans in extesible forms!
This commit is contained in:
parent
acab4af809
commit
f2bd846e22
7 changed files with 325 additions and 193 deletions
59
nix/overlays/iosevka/default.nix
Normal file
59
nix/overlays/iosevka/default.nix
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
# 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;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue