From 2d95dcf3c5ba9a3a60f5bb5992ece0a1fb924ed9 Mon Sep 17 00:00:00 2001 From: Chris Toph Date: Mon, 17 Mar 2025 16:39:13 -0400 Subject: [PATCH] Refactor font management: move fonts out of Home-Manager configuration and add Monocraft Nerd Fonts and Lexend --- home/toph/common/core/default.nix | 8 +++- home/toph/common/core/fonts.nix | 10 ----- hosts/common/core/default.nix | 4 ++ hosts/common/core/fonts.nix | 47 ++++++++++++++++++++ pkgs/common/monocraft-nerd-fonts/package.nix | 26 +++++++++++ 5 files changed, 84 insertions(+), 11 deletions(-) delete mode 100644 home/toph/common/core/fonts.nix create mode 100644 hosts/common/core/fonts.nix create mode 100644 pkgs/common/monocraft-nerd-fonts/package.nix diff --git a/home/toph/common/core/default.nix b/home/toph/common/core/default.nix index d08debf..67ad0b5 100644 --- a/home/toph/common/core/default.nix +++ b/home/toph/common/core/default.nix @@ -18,7 +18,6 @@ ./direnv.nix ./fastfetch ./fish - ./fonts.nix ./git.nix ./ranger.nix ./screen.nix @@ -95,6 +94,13 @@ enable = true; }; + # disable manuals as nmd fails to build often + manual = { + html.enable = false; + json.enable = false; + manpages.enable = false; + }; + nix = { package = lib.mkDefault pkgs.nix; settings = { diff --git a/home/toph/common/core/fonts.nix b/home/toph/common/core/fonts.nix deleted file mode 100644 index 01d1710..0000000 --- a/home/toph/common/core/fonts.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ pkgs, ... }: -{ - fonts.fontconfig.enable = true; - home.packages = with pkgs; [ - noto-fonts - nerd-fonts.fira-code - meslo-lgs-nf - monocraft - ]; -} diff --git a/hosts/common/core/default.nix b/hosts/common/core/default.nix index 383cbc2..605bd0c 100644 --- a/hosts/common/core/default.nix +++ b/hosts/common/core/default.nix @@ -16,6 +16,7 @@ in (map lib.custom.relativeToRoot [ "modules/common" + "hosts/common/core/fonts.nix" "hosts/common/core/ssh.nix" "hosts/users" ]) @@ -39,6 +40,9 @@ in sshfs ]; + # Enable CUPS to print documents. + services.printing.enable = true; + # Force home-manager to use global packages home-manager.useGlobalPkgs = true; # If there is a conflict file that is backed up, use this extension diff --git a/hosts/common/core/fonts.nix b/hosts/common/core/fonts.nix new file mode 100644 index 0000000..f40c4e0 --- /dev/null +++ b/hosts/common/core/fonts.nix @@ -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" ]; + }; + }; + }; +} diff --git a/pkgs/common/monocraft-nerd-fonts/package.nix b/pkgs/common/monocraft-nerd-fonts/package.nix new file mode 100644 index 0000000..aa152f2 --- /dev/null +++ b/pkgs/common/monocraft-nerd-fonts/package.nix @@ -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; + }; + +}