old
 1{
 2  pkgs,
 3  lib,
 4  ...
 5}: {
 6  fonts = {
 7    enableDefaultPackages = false;
 8    fontDir.enable = true;
 9
10    packages = with pkgs; [
11      nur.repos.rewine.ttf-ms-win10
12
13      noto-fonts
14      # noto-fonts-cjk-sans
15      # noto-fonts-cjk-serif
16      noto-fonts-emoji
17      # noto-fonts-extra
18
19      source-sans
20      source-serif
21      source-han-sans
22      source-han-serif
23
24      lxgw-wenkai
25
26      maple-mono.NF-CN
27    ];
28
29    # user defined fonts
30    # the reason there's Noto Color Emoji everywhere is to override DejaVu's
31    # B&W emojis that would sometimes show instead of some Color emojis
32    fontconfig.defaultFonts = {
33      serif = ["Source Han Serif SC" "Source Han Serif TC" "Noto Color Emoji"];
34      sansSerif = ["Source Han Sans SC" "Source Han Sans TC" "Noto Color Emoji"];
35      monospace = ["Maple Mono NF CN" "Noto Color Emoji"];
36      emoji = ["Noto Color Emoji"];
37    };
38  };
39
40  # https://wiki.archlinux.org/title/KMSCON
41  services.kmscon = {
42    # Use kmscon as the virtual console instead of gettys.
43    # kmscon is a kms/dri-based userspace virtual terminal implementation.
44    # It supports a richer feature set than the standard linux console VT,
45    # including full unicode support, and when the video card supports drm should be much faster.
46    enable = true;
47    fonts = [
48      {
49        name = "JetBrains Mono";
50        package = pkgs.jetbrains-mono;
51      }
52    ];
53    extraOptions = "--term xterm-256color";
54    extraConfig = lib.mkDefault "font-size=12";
55    # Whether to use 3D hardware acceleration to render the console.
56    hwRender = true;
57  };
58}