Files
nix-config/modules/nixos/desktop/fonts.nix
2025-10-19 09:28:09 +08:00

74 lines
2.4 KiB
Nix

{ pkgs, ... }:
{
# all fonts are linked to /nix/var/nix/profiles/system/sw/share/X11/fonts
fonts = {
# use fonts specified by user rather than default ones
enableDefaultPackages = false;
fontDir.enable = true;
# fonts are defined in /modules/base/fonts.nix, used by both NixOS & Darwin.
# packages = [ ... ];
fontconfig = {
# User defined default fonts
# https://catcat.cc/post/2021-03-07/
defaultFonts = {
serif = [
# 西文: 衬线字体(笔画末端有修饰(衬线)的字体,通常用于印刷。)
"Source Serif 4"
# 中文: 宋体(港台称明體)
"Source Han Serif SC" # 思源宋体
"Source Han Serif TC"
];
# SansSerif 也简写做 Sans, Sans 在法语中就是「without」或者「无」的意思
sansSerif = [
# 西文: 无衬线字体(指笔画末端没有修饰(衬线)的字体,通常用于屏幕显示)
"Source Sans 3"
# 中文: 黑体
"LXGW WenKai Screen" # 霞鹜文楷 屏幕阅读版
"Source Han Sans SC" # 思源黑体
"Source Han Sans TC"
];
# 等宽字体
monospace = [
# 中文
"Maple Mono NF CN" # 中英文宽度完美 2:1 的字体
"Source Han Mono SC" # 思源等宽
"Source Han Mono TC"
# 西文
"JetBrainsMono Nerd Font"
];
emoji = [ "Noto Color Emoji" ];
};
antialias = true; # 抗锯齿
hinting.enable = false; # 禁止字体微调 - 高分辨率下没这必要
subpixel = {
rgba = "rgb"; # IPS 屏幕使用 rgb 排列
};
};
};
# https://wiki.archlinux.org/title/KMSCON
services.kmscon = {
# Use kmscon as the virtual console instead of gettys.
# kmscon is a kms/dri-based userspace virtual terminal implementation.
# It supports a richer feature set than the standard linux console VT,
# including full unicode support, and when the video card supports drm should be much faster.
enable = true;
fonts = with pkgs; [
{
name = "Maple Mono NF CN";
package = maple-mono.NF-CN-unhinted;
}
{
name = "JetBrainsMono Nerd Font";
package = nerd-fonts.jetbrains-mono;
}
];
extraOptions = "--term xterm-256color";
extraConfig = "font-size=14";
# Whether to use 3D hardware acceleration to render the console.
hwRender = true;
};
}