Refactor font management: move fonts out of Home-Manager configuration and add Monocraft Nerd Fonts and Lexend

This commit is contained in:
Chris Toph 2025-03-17 16:39:13 -04:00
parent 8b0aa2d2f7
commit 2d95dcf3c5
5 changed files with 84 additions and 11 deletions

View file

@ -18,7 +18,6 @@
./direnv.nix ./direnv.nix
./fastfetch ./fastfetch
./fish ./fish
./fonts.nix
./git.nix ./git.nix
./ranger.nix ./ranger.nix
./screen.nix ./screen.nix
@ -95,6 +94,13 @@
enable = true; enable = true;
}; };
# disable manuals as nmd fails to build often
manual = {
html.enable = false;
json.enable = false;
manpages.enable = false;
};
nix = { nix = {
package = lib.mkDefault pkgs.nix; package = lib.mkDefault pkgs.nix;
settings = { settings = {

View file

@ -1,10 +0,0 @@
{ pkgs, ... }:
{
fonts.fontconfig.enable = true;
home.packages = with pkgs; [
noto-fonts
nerd-fonts.fira-code
meslo-lgs-nf
monocraft
];
}

View file

@ -16,6 +16,7 @@ in
(map lib.custom.relativeToRoot [ (map lib.custom.relativeToRoot [
"modules/common" "modules/common"
"hosts/common/core/fonts.nix"
"hosts/common/core/ssh.nix" "hosts/common/core/ssh.nix"
"hosts/users" "hosts/users"
]) ])
@ -39,6 +40,9 @@ in
sshfs sshfs
]; ];
# Enable CUPS to print documents.
services.printing.enable = true;
# Force home-manager to use global packages # Force home-manager to use global packages
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
# If there is a conflict file that is backed up, use this extension # If there is a conflict file that is backed up, use this extension

View file

@ -0,0 +1,47 @@
{ pkgs, lib, ... }:
let
path = lib.custom.relativeToRoot "pkgs/common/monocraft-nerd-fonts/package.nix";
monocraft-nerd-fonts = pkgs.callPackage path { inherit pkgs; };
in
{
fonts = {
packages = with pkgs; [
# icon fonts
material-symbols
# Sans(Serif) fonts
lexend
noto-fonts
noto-fonts-emoji
roboto
(google-fonts.override {
fonts = [
"Inter"
"Laila"
];
})
# monospace fonts
monocraft
monocraft-nerd-fonts
# nerdfonts
nerd-fonts.fira-code
nerd-fonts.symbols-only
];
# causes more issues than it solves
enableDefaultPackages = false;
# user defined fonts
fontconfig = {
enable = true;
defaultFonts = {
serif = [ "Laila" ];
sansSerif = [ "Lexend" ];
monospace = [ "Monocraft" ];
emoji = [ "Noto Color Emoji" ];
};
};
};
}

View file

@ -0,0 +1,26 @@
{ pkgs, lib, ... }:
pkgs.stdenvNoCC.mkDerivation {
pname = "monocraft-nerd-fonts";
version = "4.0";
phases = [ "installPhase" ]; # Removes all phases except installPhase
src = pkgs.fetchurl {
url = "https://github.com/IdreesInc/Monocraft/releases/download/v4.0/Monocraft-nerd-fonts-patched.ttc";
sha256 = "95801bf21826bf8572af3787af82e77ee48df4bfb87e90c4317fcffbe7eaf037";
};
# unpackPhase = ":".
installPhase = ''
mkdir -p $out/share/fonts/truetype/
cp -r $src $out/share/fonts/truetype/monocraft-nerd-fonts.ttc
'';
meta = with lib; {
description = "Monocraft Nerd Fonts";
homepage = "https://github.com/IdreesInc/Monocraft";
platforms = platforms.all;
};
}