1
0
Fork 0

full rewrite, first commit

This commit is contained in:
Philipp 2025-02-05 17:58:09 +01:00
commit a83c37a638
Signed by: Philipp
GPG key ID: 9EBD8439AFBAB750
24 changed files with 4358 additions and 0 deletions

View file

@ -0,0 +1,77 @@
{
options,
config,
pkgs,
lib,
namespace,
...
}:
with lib;
with lib.${namespace};
let
cfg = config.${namespace}.system.fonts;
in
{
options.${namespace}.system.fonts = with types; {
enable = mkBoolOpt false "Whether or not to manage fonts.";
emoji = mkBoolOpt false "Whether or not to enable emojis.";
fonts = mkOpt (listOf package) [ ] "Custom font packages to install.";
};
config = mkIf cfg.enable {
environment.variables = {
LOG_ICONS = "true";
};
environment.systemPackages = with pkgs; [ font-manager ];
fonts = {
fontconfig = mkIf cfg.emoji {
enable = true;
localConf = ''
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias binding="weak">
<family>monospace</family>
<prefer>
<family>emoji</family>
</prefer>
</alias>
<alias binding="weak">
<family>sans-serif</family>
<prefer>
<family>emoji</family>
</prefer>
</alias>
<alias binding="weak">
<family>serif</family>
<prefer>
<family>emoji</family>
</prefer>
</alias>
</fontconfig>
'';
defaultFonts = {
emoji = [ "Noto Color Emoji" ];
monospace = [ "FreeMono" ];
sansSerif = [ "FreeSans" ];
serif = [ "FreeSerif" ];
};
};
packages =
with pkgs;
[
twemoji-color-font
noto-fonts
noto-fonts-cjk-sans
noto-fonts-cjk-serif
noto-fonts-emoji
(nerdfonts.override { fonts = [ "Hack" ]; })
]
++ cfg.fonts;
};
};
}