config/modules/nixos/ui/fonts/default.nix

163 lines
4.6 KiB
Nix
Raw Normal View History

2024-05-23 20:26:30 +00:00
{
options,
config,
lib,
pkgs,
...
}:
with lib;
with lib.custom; let
cfg = config.ui.fonts;
in {
options.ui.fonts = with types; {
enable = mkBoolOpt false "Enable Custom Fonts";
};
config = mkIf cfg.enable {
fonts = {
packages = with pkgs; [
material-icons
material-design-icons
roboto
work-sans
comic-neue
source-sans
twemoji-color-font
comfortaa
inter
lato
lexend
jost
dejavu_fonts
2025-04-27 11:11:51 -04:00
# iosevka
2025-01-12 13:37:57 -05:00
cantarell-fonts
2025-04-27 11:11:51 -04:00
(iosevka.override
{
set = "Custom";
privateBuildPlan = ''
# [buildPlans.IosevkaCustom]
# family = "Iosevka"
# spacing = "fontconfig-mono"
# serifs = "sans"
# noCvSs = true
# exportGlyphNames = true
#
# [buildPlans.IosevkaCustom.variants]
# inherits = "ss08"
#
# [buildPlans.IosevkaCustom.widths.Normal]
# shape = 500
# menu = 5
# css = "normal"
#
# [buildPlans.IosevkaCustom.widths.Extended]
# shape = 600
# menu = 7
# css = "expanded"
[buildPlans.IosevkaCustom]
family = "Iosevka"
spacing = "normal"
serifs = "sans"
noCvSs = true
exportGlyphNames = true
2025-05-06 20:02:36 -04:00
[buildPlans.IosevkaCustom.variants.design]
one = "base-flat-top-serif"
two = "straight-neck-serifless"
four = "closed-serifless"
five = "oblique-arched-serifless"
six = "closed-contour"
seven = "bend-serifless"
eight = "crossing-asymmetric"
nine = "closed-contour"
zero = "oval-dotted"
capital-d = "more-rounded-serifless"
capital-g = "toothless-corner-serifless-hooked"
a = "double-storey-serifless"
g = "double-storey"
i = "hooky"
l = "serifed-semi-tailed"
r = "hookless-serifless"
t = "bent-hook-short-neck"
w = "straight-flat-top-serifless"
y = "straight-turn-serifless"
capital-eszet = "rounded-serifless"
long-s = "bent-hook-middle-serifed"
eszet = "longs-s-lig-serifless"
lower-lambda = "straight-turn"
lower-tau = "short-tailed"
lower-phi = "straight"
partial-derivative = "closed-contour"
cyrl-capital-u = "straight-turn-serifless"
cyrl-u = "straight-turn-serifless"
cyrl-ef = "split-serifless"
asterisk = "penta-low"
caret = "high"
guillemet = "straight"
number-sign = "slanted"
dollar = "open"
cent = "through-cap"
bar = "force-upright"
micro-sign = "tailed-serifless"
lig-ltgteq = "slanted"
lig-neq = "more-slanted-dotted"
lig-equal-chain = "without-notch"
lig-hyphen-chain = "without-notch"
lig-plus-chain = "with-notch"
2025-04-27 11:11:51 -04:00
2025-05-06 20:02:36 -04:00
[buildPlans.IosevkaCustom.weights.Regular]
shape = 400
menu = 400
css = 400
2025-04-27 11:11:51 -04:00
2025-05-06 20:02:36 -04:00
[buildPlans.IosevkaCustom.weights.Bold]
shape = 700
menu = 700
css = 700
2025-04-27 11:11:51 -04:00
2025-05-06 20:02:36 -04:00
[buildPlans.IosevkaCustom.slopes.Upright]
angle = 0
shape = "upright"
menu = "upright"
css = "normal"
2025-04-27 11:11:51 -04:00
2025-05-06 20:02:36 -04:00
[buildPlans.IosevkaCustom.slopes.Italic]
angle = 9.4
shape = "italic"
menu = "italic"
css = "italic"
2025-04-27 11:11:51 -04:00
'';
})
2024-05-23 20:26:30 +00:00
noto-fonts
2024-10-31 21:01:42 -04:00
noto-fonts-cjk-sans
2024-05-23 20:26:30 +00:00
noto-fonts-emoji
jetbrains-mono
2024-12-16 16:39:20 -05:00
nerd-fonts.iosevka
2025-01-19 15:04:19 -05:00
nerd-fonts.zed-mono
2025-05-06 20:02:36 -04:00
nerd-fonts.fira-code
nerd-fonts.jetbrains-mono
2025-03-22 16:03:07 -04:00
adwaita-fonts
2025-04-07 13:07:15 -04:00
cozette
scientifica
2024-12-16 16:39:20 -05:00
# (nerdfonts.override {fonts = ["ZedMono" "Iosevka"];})
2024-05-23 20:26:30 +00:00
];
enableDefaultPackages = false;
# this fixes emoji stuff
fontconfig = {
defaultFonts = {
monospace = [
2025-05-06 20:02:36 -04:00
fonts.mono
2024-05-23 20:26:30 +00:00
"Noto Color Emoji"
];
2025-05-06 20:02:36 -04:00
sansSerif = [fonts.ui "Noto Color Emoji"];
serif = [fonts.ui "Noto Color Emoji"];
2024-05-23 20:26:30 +00:00
emoji = ["Noto Color Emoji"];
};
};
};
};
}