me like nix
1{ inputs, ... }:
2
3let
4 hasBerkeleyMono = inputs ? berkeley-mono && !(inputs.berkeley-mono ? isStub);
5in
6{
7 flake.modules.nixos.fonts =
8 { pkgs, lib, ... }:
9 let
10 berkeley-mono-typeface =
11 if hasBerkeleyMono then inputs.berkeley-mono.packages.${pkgs.stdenv.hostPlatform.system}.default else null;
12 in
13 {
14 fonts = {
15 fontDir.enable = true;
16 fontconfig = {
17 enable = true;
18 defaultFonts = {
19 monospace =
20 lib.optionals hasBerkeleyMono [
21 "BerkeleyMono Nerd Font"
22 "BerkeleyMono"
23 ]
24 ++ [ "JetBrainsMono Nerd Font" ];
25 };
26 };
27 packages = lib.optionals hasBerkeleyMono [ berkeley-mono-typeface ];
28 };
29 };
30
31 flake.modules.homeManager.fonts =
32 { pkgs, ... }:
33 {
34 home.packages = with pkgs; [
35 font-awesome
36 noto-fonts
37 noto-fonts-cjk-sans
38 noto-fonts-color-emoji
39 nerd-fonts.jetbrains-mono
40 nerd-fonts.symbols-only
41 ];
42
43 fonts.fontconfig = {
44 enable = true;
45 defaultFonts = {
46 monospace = [ "BerkeleyMono Nerd Font" ];
47 sansSerif = [ "Noto Sans" ];
48 serif = [ "Noto Serif" ];
49 };
50 };
51 };
52}