{ pkgs, ... }: let fontSources = { sf-pro = { url = "https://devimages-cdn.apple.com/design/resources/download/SF-Pro.dmg"; hash = "sha256-IccB0uWWfPCidHYX6sAusuEZX906dVYo8IaqeX7/O88="; }; sf-compact = { url = "https://devimages-cdn.apple.com/design/resources/download/SF-Compact.dmg"; hash = "sha256-PlraM6SwH8sTxnVBo6Lqt9B6tAZDC//VCPwr/PNcnlk="; }; sf-mono = { url = "https://devimages-cdn.apple.com/design/resources/download/SF-Mono.dmg"; hash = "sha256-bUoLeOOqzQb5E/ZCzq0cfbSvNO1IhW1xcaLgtV2aeUU="; }; sf-arabic = { url = "https://devimages-cdn.apple.com/design/resources/download/SF-Arabic.dmg"; hash = "sha256-J2DGLVArdwEsSVF8LqOS7C1MZH/gYJhckn30jRBRl7k="; }; ny = { url = "https://devimages-cdn.apple.com/design/resources/download/NY.dmg"; hash = "sha256-HC7ttFJswPMm+Lfql49aQzdWR2osjFYHJTdgjtuI+PQ="; }; }; makeAppleFont = name: pkgName: source: pkgs.stdenv.mkDerivation { inherit name; src = pkgs.fetchurl { inherit (source) url hash; }; version = "0.3.0"; unpackPhase = '' undmg $src 7z x '${pkgName}' 7z x 'Payload~' ''; buildInputs = [ pkgs.undmg pkgs.p7zip ]; setSourceRoot = "sourceRoot=`pwd`"; installPhase = '' mkdir -p $out/share/fonts/opentype mkdir -p $out/share/fonts/truetype find -name \*.otf -exec mv {} $out/share/fonts/opentype/ \; find -name \*.ttf -exec mv {} $out/share/fonts/truetype/ \; ''; }; appleColorEmoji = pkgs.stdenv.mkDerivation { name = "apple-color-emoji"; src = pkgs.fetchurl { url = "https://github.com/samuelngs/apple-emoji-linux/releases/download/v17.4/AppleColorEmoji.ttf"; hash = "sha256-SG3JQLybhY/fMX+XqmB/BKhQSBB0N1VRqa+H6laVUPE="; }; unpackPhase = ":"; installPhase = '' mkdir -p $out/share/fonts/truetype cp $src $out/share/fonts/truetype/AppleColorEmoji.ttf ''; }; in { fonts = { enableDefaultPackages = true; packages = with pkgs; [ jetbrains-mono nerdfonts noto-fonts noto-fonts-emoji (makeAppleFont "sf-pro" "SF Pro Fonts.pkg" fontSources.sf-pro) (makeAppleFont "sf-compact" "SF Compact Fonts.pkg" fontSources.sf-compact) (makeAppleFont "sf-mono" "SF Mono Fonts.pkg" fontSources.sf-mono) (makeAppleFont "sf-arabic" "SF Arabic Fonts.pkg" fontSources.sf-arabic) (makeAppleFont "ny" "NY Fonts.pkg" fontSources.ny) appleColorEmoji ]; fontconfig = { defaultFonts = { serif = [ "SF Pro" ]; sansSerif = [ "SF Pro" ]; monospace = [ "JetBrainsMono Nerd Font Mono" ]; emoji = [ "Apple Color Emoji" ]; }; useEmbeddedBitmaps = true; }; }; }