nix-dotfiles/modules/fonts.nix
2025-03-16 23:44:16 -06:00

52 lines
1.5 KiB
Nix

{ config, pkgs, lib, ... }:
let
clear-sans = pkgs.stdenv.mkDerivation {
name = "clear-sans";
src = pkgs.fetchurl {
url = "https://raw.githubusercontent.com/resir014/Clear-Sans-Webfont/97eec13/fonts/TTF/ClearSans-Regular.ttf";
sha256 = "0vzhy3l056gj5vkcs1kglr4mr0546fq093v78i4ri8xni7w1m0dv";
};
dontUnpack = true;
installPhase = ''
mkdir -p $out/share/fonts/truetype
cp $src $out/share/fonts/truetype/ClearSans-Regular.ttf
'';
};
in
{
fonts = {
packages = with pkgs; [
noto-fonts
noto-fonts-cjk-sans
noto-fonts-cjk-serif
noto-fonts-emoji
(nerdfonts.override { fonts = [ "0xProto" "FiraCode" "JetBrainsMono" "Hack" "Noto" "NerdFontsSymbolsOnly" ]; })
ipafont
kochi-substitute
clear-sans
(stdenv.mkDerivation {
name = "binary-clock-font";
src = fetchurl {
url = "https://github.com/jamessouth/polybar-binary-clock-fonts/raw/master/BinaryClockBoldMono.ttf";
sha256 = "0vxy23zr8r8faa5s7vy5bf8z2q7my39ghmd9ilk7aww9wqsrsjqx";
};
dontUnpack = true;
installPhase = ''
mkdir -p $out/share/fonts/truetype
cp $src $out/share/fonts/truetype/BinaryClockBoldMono.ttf
'';
})
];
fontconfig = {
enable = true;
defaultFonts = {
monospace = [ "0xProto Nerd Font" "Noto Sans Mono CJK JP" ];
sansSerif = [ "Clear Sans" "Noto Sans CJK JP" ];
serif = [ "Noto Serif" "Noto Serif CJK JP" ];
emoji = [ "Noto Color Emoji" ];
};
};
};
}