push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
lib:
let
ls = lib.licenses;
in
licenseString:
builtins.getAttr licenseString (
(
with builtins;
lib.trivial.pipe (attrValues ls) [
(filter (l: l ? spdxId))
(map (l: lib.attrsets.nameValuePair l.spdxId l))
listToAttrs
]
)
// {
"Bitstream-Vera AND MIT" = with ls; [
bitstreamVera
mit
];
"LicenseRef-Monofur" = ls.free; # upstream `src/unpatched-fonts/Monofur/LICENSE.txt`
"LicenseRef-UbuntuFont" = ls.ufl;
"LicenseRef-VicFieger" = ls.free; # upstream `src/unpatched-fonts/HeavyData/Vic Fieger License.txt`
"MIT OR OFL-1.1-no-RFN" = ls.mit;
"OFL-1.1-RFN" = ls.ofl;
"OFL-1.1-no-RFN or LGPL-2.1-only" = ls.ofl;
"OFL-1.1-no-RFN" = ls.ofl;
}
)

View File

@@ -0,0 +1,103 @@
{
lib,
stdenvNoCC,
fetchurl,
}:
let
releaseInfo = lib.trivial.importJSON ./manifests/release.json;
fontsInfo = lib.trivial.importJSON ./manifests/fonts.json;
checksums = lib.trivial.importJSON ./manifests/checksums.json;
releaseVersion = lib.removePrefix "v" releaseInfo.tag_name;
convertAttrName =
name:
let
lowerName = lib.strings.toLower name;
in
if builtins.match "^[[:digit:]].*" lowerName != null then "_" + lowerName else lowerName;
convertVersion =
version: if builtins.match "^[[:digit:]].*" version != null then "+" + version else "";
convertLicense = import ./convert-license.nix lib;
makeNerdFont =
{
caskName,
description,
folderName,
licenseId,
patchedName,
version,
...
}:
stdenvNoCC.mkDerivation {
pname = "nerd-fonts-" + lib.strings.toLower caskName;
version = releaseVersion + convertVersion version;
src =
let
filename = folderName + ".tar.xz";
url = "https://github.com/ryanoasis/nerd-fonts/releases/download/${releaseInfo.tag_name}/${filename}";
sha256 = checksums.${filename};
in
fetchurl {
inherit url sha256;
};
sourceRoot = ".";
installPhase =
let
dirName = lib.strings.concatStrings (lib.strings.splitString " " patchedName);
in
''
runHook preInstall
dst_opentype=$out/share/fonts/opentype/NerdFonts/${dirName}
dst_truetype=$out/share/fonts/truetype/NerdFonts/${dirName}
find -name \*.otf -exec mkdir -p $dst_opentype \; -exec cp -p {} $dst_opentype \;
find -name \*.ttf -exec mkdir -p $dst_truetype \; -exec cp -p {} $dst_truetype \;
runHook postInstall
'';
passthru = {
inherit releaseVersion;
updateScript = {
command = ./update.py;
supportedFeatures = [ "commit" ];
};
};
meta = {
description = "Nerd Fonts: " + description;
license = lib.unique (
(with lib.licenses; [
# > Nerd Fonts source fonts, patched fonts, and folders with explicit OFL SIL files
ofl
# > Nerd Fonts original source code files (such as `.sh`, `.py`, `font-patcher` and others)
mit
])
++ lib.toList (convertLicense licenseId)
);
homepage = "https://nerdfonts.com/";
changelog = "https://github.com/ryanoasis/nerd-fonts/blob/${releaseInfo.tag_name}/changelog.md";
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [
doronbehar
rc-zb
];
};
};
nerdFonts = lib.trivial.pipe fontsInfo [
(map (font: lib.nameValuePair (convertAttrName font.caskName) (makeNerdFont font)))
builtins.listToAttrs
];
in
nerdFonts

View File

@@ -0,0 +1,72 @@
{
"0xProto.tar.xz": "effaa4c257c1f25e6d2d50679e9b845eab36b346dea9ee26f4405da1a21e6428",
"3270.tar.xz": "6d9dd76987968e8a0b30d3ae4d18b8139d6ddf6cd53409272dbc596654ea38b1",
"AdwaitaMono.tar.xz": "39b7598b2ec30111d1ace82b274809e5d0930e241683c1c91f5b4c7e64a975cf",
"Agave.tar.xz": "fe4879b0cff2d33d7fb08d1c8ba4e0cad9f44843644fe284fda1e89addf9c4ab",
"AnonymousPro.tar.xz": "7ebace54eda35943062eaad9dd4f16de24390b672f31bff45475b82acb1955c0",
"Arimo.tar.xz": "006464de19502bd49a72265058811665b62b823509bbbd2e7181ba87046b6b08",
"AtkinsonHyperlegibleMono.tar.xz": "8643ab571f547c6af0352a08e617ba7303965b2882ab9f36d61e8d4680761a59",
"AurulentSansMono.tar.xz": "a0d642ace8f9d616a9c9cbbe46e188c60ddf7486b0cf2685a3558e06aba2c284",
"BigBlueTerminal.tar.xz": "9df627ec74a21f4da8df4821dba85cabcc452f95b636e8802eeaa2e6f3129e13",
"BitstreamVeraSansMono.tar.xz": "59162ab2d67d39827e497beda03fbe6327d3535d2ee3b1dd7050fdeafe1f9c36",
"CascadiaCode.tar.xz": "804b3d311665a059140466fe142cc76cf14ef0695b7c4d3a174f7f8fba46b6e3",
"CascadiaMono.tar.xz": "7c22db8c8460ef62abffbb6d5c7b212507de0798a4a762fa2a005a8bc4c90fc6",
"CodeNewRoman.tar.xz": "2db8def7863ea49b6ef69f353988d7e0f73a8646722e5946932740d76eb46b25",
"ComicShannsMono.tar.xz": "23d90d18dae663b7d0dcdb4edd2f5087eecb40b00f046a1f46a9abf3ecb47651",
"CommitMono.tar.xz": "44cdabae7708de3548fdd78ed59cdbb1fedbca18e16644047ed4a23623a530ca",
"Cousine.tar.xz": "63bc50fc2b88897096626cf9e835d4237ee0052f9bfd902dc1f5304c693c32e6",
"D2Coding.tar.xz": "5b4e8c53599ee79067a4439bfbf31bb3f1b40e93ac6493f718b48feaf972173d",
"DaddyTimeMono.tar.xz": "854c8cbf59e1fcc48f114408d93f63cad70c6ba8eefad5bf3071bd9dd8ef48f8",
"DejaVuSansMono.tar.xz": "0e58ff9c1f9378922b7f324fdba953929d88d61b36aedd80ee43964567b226cc",
"DepartureMono.tar.xz": "f099f71bc240fb59ffeaba50d26206b32df7e54051e49d6837a1702e4d3b4f3f",
"DroidSansMono.tar.xz": "43ad0a4e238ad078300d0aa2ebca5f7aaf6ff2cdb25c5cfe8191b79aab7d0af2",
"EnvyCodeR.tar.xz": "b631d34ab3e3e26aba7169b382d573d82bc6647d3ddae67e9ce28481f64715e7",
"FantasqueSansMono.tar.xz": "462b5490475fb8560dded4eb6cdd9cfd0049b800acee329094def095557d0ffd",
"FiraCode.tar.xz": "d83fb093e0e05a531cd6f19886a6ceb884a4fa5ea3b53cf099fc1f30c5b3e47d",
"FiraMono.tar.xz": "2e4adc97fefdfa2ad70a6e6e79bc0418acd401a305bcb5fcd848a84e03e35a74",
"GeistMono.tar.xz": "43ef3d73cadddea5be746e20c9f27fbaa59ceb106b8b26f7245ba2de2e46b1f6",
"Go-Mono.tar.xz": "81c879e6a86dd6e6cb94d7a73322bf39f06b3294a727effb5a5bb5c7f9274fd6",
"Gohu.tar.xz": "458b08f1216c18a46fc3e00701d6d171a4d536192b0885c041d8cc1befb6b44d",
"Hack.tar.xz": "1d00a1435638084174516975840854368a45ac30bb0bad2c0c49db713b5925f0",
"Hasklig.tar.xz": "e82418895a7036158baf9a425faea7de1fe332267b218341eec44c6b5071d1ad",
"HeavyData.tar.xz": "ed0d49911ae0caa1d625ae64832b49b4c94e90fa2ec0b1e5e7df440ccb28698b",
"Hermit.tar.xz": "206ae23c386dcb84a2dfaca678af36123fbaff1fb402326021973485018467f3",
"IBMPlexMono.tar.xz": "95e6ecaa5dfb9a96f27a6b6edc7be396fb6df30bc311a6f7e15cad56a30051c2",
"Inconsolata.tar.xz": "47df94d3826a9f3e94b4c596a78f5baaddfb27f25bdb7906c5cf65caf8962eb2",
"InconsolataGo.tar.xz": "0407ab5ddd9f6a9af5f178d5fa1732cbf8275c4fe6e03793adbe48bfd6c04884",
"InconsolataLGC.tar.xz": "59b5961b83f0fd64ef579099ca0209dd706d5025feac813c80fcc2d0648d717f",
"IntelOneMono.tar.xz": "9d55174210a512c6c9d0601532033d05d9e8817c760cb9ccca3c6c9c4ff6d7c1",
"Iosevka.tar.xz": "213ee24cda99ca84d0a8326de133e7e8b2baf9ba23659ce829f589f771d357d2",
"IosevkaTerm.tar.xz": "cad9da572d25e3413f7a15a319d2f3c9e7e915ee016baa99e0d88fc08cf5b781",
"IosevkaTermSlab.tar.xz": "8990ca82b481a02734cb96f46db789716735ca8f6c4bf89d800899a593a1f0ca",
"JetBrainsMono.tar.xz": "ef552a3e638f25125c6ad4c51176a6adcdce295ab1d2ffacf0db060caf8c1582",
"Lekton.tar.xz": "2a7fa12bf2b376307c9ca2501227b0d91dcae25c453ec095e5f768a2ca5b6fe9",
"LiberationMono.tar.xz": "64a9519dd6b75179a9363f9c8a0cefe2984ec8578394ced66e9d0fffd2be922f",
"Lilex.tar.xz": "1d011e82a59aec26bff5564ca90a8e51636364e5b7f79417708aa2c846c633b3",
"MPlus.tar.xz": "9c03e388d0ff2e0bc28be9bf6ab95f1e0260c5828b3159b18867a9e7a1f17f7b",
"MartianMono.tar.xz": "e12f5ca02756268e794d06d9cb2ada93d021ec915f5a43ec2cd77355022f3624",
"Meslo.tar.xz": "a57936d96aefb5cfff0660f3294210ee04705529af6cf811e2274b0923a03939",
"Monaspace.tar.xz": "5fdb97828e1a23fd28ea5ed0e7d15cdebb77ef079aaa48b93f1526764b40ef8c",
"Monofur.tar.xz": "539dc64f089b189c5f14ee60df6368742cc63ccc3be753bd3c8bfba7632fe068",
"Monoid.tar.xz": "5c6efd6fe2f2856d5294748dc751770d1c8889665f42687a0ac8f1b3a86a3299",
"Mononoki.tar.xz": "5c9b3035d45aabfe1fb3ce5e3028130043398cecc1409b20fe8273692192726e",
"NerdFontsSymbolsOnly.tar.xz": "7f8c090da3b0eaa7108646bf34cbbb6ed13d5358a72460522108b06c7ecd716a",
"Noto.tar.xz": "e28b31609d17fc50bdf9e6730c947a61b0e474af726c2c044c39bc78fcd9bfde",
"OpenDyslexic.tar.xz": "2155e95e9c7b12d785dc589033290a8caff07c11cf1697ec3ad0bda37e3b0433",
"Overpass.tar.xz": "4d6d7e8b91840bb2b18bc7ac427f979183e68b6b061db58b4139ad5679bdc36f",
"ProFont.tar.xz": "c6d595ac9f7e0d6ac87c4c57e26c7515c544e8e5ac553c5a215394d12b201a8f",
"ProggyClean.tar.xz": "910c51cb06ff3233daee1d045e606ed77c290ea25dd1a54378e0517601f4785c",
"Recursive.tar.xz": "a047ac2e724c1614ef4350af83f35cd1d044d8d20e6477c319172b860b19329a",
"RobotoMono.tar.xz": "4bc63bf0105c664e466e62cb2fd1c143b310877de93dc35b3b5d48e0e4cb6702",
"ShareTechMono.tar.xz": "11bb01a73894f932a3702551245aa0c57d121ebf59dd293fac5ceac81af822d1",
"SourceCodePro.tar.xz": "d52d97b66c4c5d6d9d99c88df55148faf39738f244485026f22f8e47407744f4",
"SpaceMono.tar.xz": "d159c6f13291723f1821d1064a7d3e0933d96297d55bab27d76861472af68111",
"Terminus.tar.xz": "e857b18a99701528f873275b6012792caf6e30c34c512ee92cda51520140054f",
"Tinos.tar.xz": "c54f03f38fbf897f34235bc5989500361251f61220cf63afedd730edd221714e",
"Ubuntu.tar.xz": "534bf0ffb311a993fd23666a7f3e4f4a0cfc0662abfa8b81594705cceefb69e3",
"UbuntuMono.tar.xz": "a13cf890ef10517c59e812ced167245f2db47d37d2b03c9fb43ddef023a3e776",
"UbuntuSans.tar.xz": "0a399b03565c577ae2da9f8362e6276b0adb13bac288e49fec085c517243e27b",
"VictorMono.tar.xz": "67bb8c729aedbe2e0258435c78e52bb1753618a1d3d7c0c94e6f1c47763a56a9",
"ZedMono.tar.xz": "7dfff6bb0e45143c33703c3fdf3ff77b00f3617fef29671c7ff6af166dcf31a0",
"iA-Writer.tar.xz": "0156f309d942d9066a83005dd42588719a1755fb78e345e5f22ff582da46211b"
}

View File

@@ -0,0 +1,562 @@
[
{
"caskName": "0xproto",
"description": "A programming font focused on source code legibility",
"folderName": "0xProto",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "0xProto",
"version": "2.300"
},
{
"caskName": "3270",
"description": "Derived from the x3270 font, a modern format of a font with high nostalgic value",
"folderName": "3270",
"licenseId": "BSD-3-Clause",
"patchedName": "3270",
"version": "3.0.1"
},
{
"caskName": "adwaita-mono",
"description": "The monospace typeface for GNOME",
"folderName": "AdwaitaMono",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "AdwaitaMono",
"version": "32.4"
},
{
"caskName": "agave",
"description": "A small, monospace, outline font that is geometrically regular and simple",
"folderName": "Agave",
"licenseId": "MIT",
"patchedName": "Agave",
"version": "37"
},
{
"caskName": "anonymice",
"description": "Inspired by Anonymous 9 on Macintosh, since 2009, distinct `O`, `0`, `I`, `l`, `1`",
"folderName": "AnonymousPro",
"licenseId": "OFL-1.1-RFN",
"patchedName": "AnonymicePro",
"version": "1.002"
},
{
"caskName": "arimo",
"description": "Metrically similar to Arial, pan-European WGL character set, sans serif",
"folderName": "Arimo",
"licenseId": "Apache-2.0",
"patchedName": "Arimo",
"version": "1.33"
},
{
"caskName": "atkynson-mono",
"description": "A monospaced font designed to improve legibility and readability for individuals with low vision",
"folderName": "AtkinsonHyperlegibleMono",
"licenseId": "OFL-1.1-RFN",
"patchedName": "AtkynsonMono",
"version": "2.001"
},
{
"caskName": "aurulent-sans-mono",
"description": "Sans serif, designed by Stephen G. Hartke which also created Verily Serif",
"folderName": "AurulentSansMono",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "AurulentSansM",
"version": "-"
},
{
"caskName": "bigblue-terminal",
"description": "Nostalgic, closely based on IBM's 8x14 EGA/VGA charset",
"folderName": "BigBlueTerminal",
"licenseId": "CC-BY-SA-4.0",
"patchedName": "BigBlueTerm",
"version": "-"
},
{
"caskName": "bitstream-vera-sans-mono",
"description": "Dotted zero, compact lowercase characters",
"folderName": "BitstreamVeraSansMono",
"licenseId": "Bitstream-Vera",
"patchedName": "BitstromWera",
"version": "1.1"
},
{
"caskName": "blex-mono",
"description": "It's global, it's versatile and it's distinctly IBM",
"folderName": "IBMPlexMono",
"licenseId": "OFL-1.1-RFN",
"patchedName": "BlexMono",
"version": "2.004 (6.4.0)"
},
{
"caskName": "caskaydia-cove",
"description": "A fun, new monospaced font that includes programming ligatures and is designed to enhance the modern look and feel of the Windows Terminal",
"folderName": "CascadiaCode",
"licenseId": "OFL-1.1-RFN",
"patchedName": "CaskaydiaCove",
"version": "2407.24"
},
{
"caskName": "caskaydia-mono",
"description": "Like Cascadia Code but without any ligatures",
"folderName": "CascadiaMono",
"licenseId": "OFL-1.1-RFN",
"patchedName": "CaskaydiaMono",
"version": "2407.24"
},
{
"caskName": "code-new-roman",
"description": "Tunable, slashed zeros, compact smaller characters",
"folderName": "CodeNewRoman",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "CodeNewRoman",
"version": "2.0"
},
{
"caskName": "comic-shanns-mono",
"description": "The very typeface youve been trained to recognize since childhood",
"folderName": "ComicShannsMono",
"licenseId": "MIT",
"patchedName": "ComicShannsMono",
"version": "1.3.1"
},
{
"caskName": "commit-mono",
"description": "An anonymous and neutral programming typeface",
"folderName": "CommitMono",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "CommitMono",
"version": "1.143"
},
{
"caskName": "cousine",
"description": "Similar to Courier New with better readablitiy, dotted zeros",
"folderName": "Cousine",
"licenseId": "Apache-2.0",
"patchedName": "Cousine",
"version": "1.211"
},
{
"caskName": "d2coding",
"description": "A coding font for Koreans. This is the variant with ligatures.",
"folderName": "D2Coding",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "D2CodingLigature",
"version": "1.3.2"
},
{
"caskName": "daddy-time-mono",
"description": "A monospaced font for programmers and other terminal groupies",
"folderName": "DaddyTimeMono",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "DaddyTimeMono",
"version": "1.2.3"
},
{
"caskName": "dejavu-sans-mono",
"description": "Dotted zero, based on the Bitstream Vera Fonts with a wider range of character",
"folderName": "DejaVuSansMono",
"licenseId": "Bitstream-Vera",
"patchedName": "DejaVuSansM",
"version": "2.37"
},
{
"caskName": "departure-mono",
"description": "A monospaced pixel font with a lo-fi, techy vibe",
"folderName": "DepartureMono",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "DepartureMono",
"version": "1.422"
},
{
"caskName": "droid-sans-mono",
"description": "Good for small screens or font sizes",
"folderName": "DroidSansMono",
"licenseId": "Apache-2.0",
"patchedName": "DroidSansM",
"version": "1.00-113"
},
{
"caskName": "envy-code-r",
"description": "Fully-scalable monospaced font designed for programming and command prompts",
"folderName": "EnvyCodeR",
"licenseId": "OFL-1.1-RFN",
"patchedName": "EnvyCodeR",
"version": "0.79"
},
{
"caskName": "fantasque-sans-mono",
"description": "\"Wibbly-wobbly handwriting-like fuzziness\", takes some inspiration from Inconsolata and Monaco",
"folderName": "FantasqueSansMono",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "FantasqueSansM",
"version": "1.8.0"
},
{
"caskName": "fira-code",
"description": "Programming ligatures, extension of Fira Mono font, enlarged operators",
"folderName": "FiraCode",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "FiraCode",
"version": "6.2"
},
{
"caskName": "fira-mono",
"description": "Mozilla typeface, dotted zero",
"folderName": "FiraMono",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "FiraMono",
"version": "3.206"
},
{
"caskName": "geist-mono",
"description": "Monospaced typeface designed to be used in code editors, diagrams, terminals, and other textbased interfaces where code is represented",
"folderName": "GeistMono",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "GeistMono",
"version": "1.401"
},
{
"caskName": "go-mono",
"description": "Created specifically for the Go project, looks particularly clear for use with the Go language",
"folderName": "Go-Mono",
"licenseId": "BSD-3-Clause-Clear",
"patchedName": "GoMono",
"version": "2.010"
},
{
"caskName": "gohufont",
"description": "Bitmap font, tall capitals and ascenders, small serifs",
"folderName": "Gohu",
"licenseId": "WTFPL",
"patchedName": "GohuFont",
"version": "2.0"
},
{
"caskName": "hack",
"description": "Dotted zero, short descenders, expands upon work done for Bitstream Vera & DejaVu, legible at common sizes",
"folderName": "Hack",
"licenseId": "Bitstream-Vera AND MIT",
"patchedName": "Hack",
"version": "3.003"
},
{
"caskName": "hasklug",
"description": "Monospaced ligatures, makes composite glyphs (e.g. ->) more reabable, especially in Haskell",
"folderName": "Hasklig",
"licenseId": "OFL-1.1-RFN",
"patchedName": "Hasklug",
"version": "1.2"
},
{
"caskName": "heavy-data",
"description": "Novel and unique design, dotted zero",
"folderName": "HeavyData",
"licenseId": "LicenseRef-VicFieger",
"patchedName": "HeavyData",
"version": "1"
},
{
"caskName": "hurmit",
"description": "Symbols stand out from common text",
"folderName": "Hermit",
"licenseId": "OFL-1.1-RFN",
"patchedName": "Hurmit",
"version": "2.0"
},
{
"caskName": "im-writing",
"description": "A heavy modification of IBM's Plex font",
"folderName": "iA-Writer",
"licenseId": "OFL-1.1-RFN",
"patchedName": "iMWriting",
"version": "Dec 2018"
},
{
"caskName": "inconsolata",
"description": "Slashed zero, takes inspiration from many different fonts and glyphs, subtle curves in lowercase",
"folderName": "Inconsolata",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "Inconsolata",
"version": "3.000"
},
{
"caskName": "inconsolata-go",
"description": "Inconsolata with straight quotes",
"folderName": "InconsolataGo",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "InconsolataGo",
"version": "1.013"
},
{
"caskName": "inconsolata-lgc",
"description": "Inconsolata with added the Cyrillic alphabet",
"folderName": "InconsolataLGC",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "Inconsolata LGC",
"version": "1.13"
},
{
"caskName": "intone-mono",
"description": "Expressive monospaced font family thats built with clarity, legibility, and the needs of developers in mind",
"folderName": "IntelOneMono",
"licenseId": "OFL-1.1-RFN",
"patchedName": "IntoneMono",
"version": "1.4.0"
},
{
"caskName": "iosevka",
"description": "Narrow and horizontally tight characters, slashed zero",
"folderName": "Iosevka",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "Iosevka",
"version": "33.2.1"
},
{
"caskName": "iosevka-term",
"description": "A narrower variant focusing terminal uses: Arrows and geometric symbols will be narrow to follow typical terminal usages",
"folderName": "IosevkaTerm",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "IosevkaTerm",
"version": "33.2.1"
},
{
"caskName": "iosevka-term-slab",
"description": "Nice as Iosevka but with slab serifs",
"folderName": "IosevkaTermSlab",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "IosevkaTermSlab",
"version": "33.2.1"
},
{
"caskName": "jetbrains-mono",
"description": "JetBrains officially created font for developers",
"folderName": "JetBrainsMono",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "JetBrainsMono",
"version": "2.304"
},
{
"caskName": "lekton",
"description": "Very light and thin characters, sharp m's, `0` and `O` very similar",
"folderName": "Lekton",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "Lekton",
"version": "34"
},
{
"caskName": "liberation",
"description": "`0` and `O` very similar, very short tight descenders",
"folderName": "LiberationMono",
"licenseId": "OFL-1.1-RFN",
"patchedName": "LiterationMono",
"version": "2.1.5"
},
{
"caskName": "lilex",
"description": "Modern with ligatures",
"folderName": "Lilex",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "Lilex",
"version": "2.600"
},
{
"caskName": "martian-mono",
"description": "Free and open-source monospaced font from Evil Martians",
"folderName": "MartianMono",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "MartianMono",
"version": "1.1.0"
},
{
"caskName": "meslo-lg",
"description": "Slashed zeros, customized version of Apple's Menlo",
"folderName": "Meslo",
"licenseId": "Apache-2.0",
"patchedName": "MesloLG",
"version": "1.21"
},
{
"caskName": "monaspace",
"description": "Five matching fonts all having 'texture healing' to improve legibility",
"folderName": "Monaspace",
"licenseId": "OFL-1.1-RFN",
"patchedName": "Monaspice",
"version": "1.200"
},
{
"caskName": "monofur",
"description": "Dotted zeros, slightly exaggerated curvy characters, compact characters",
"folderName": "Monofur",
"licenseId": "LicenseRef-Monofur",
"patchedName": "Monofur",
"version": "1.0"
},
{
"caskName": "monoid",
"description": "Ligatures, distinguishable glyphs with short ascenders & descenders, large operators & punctuation",
"folderName": "Monoid",
"licenseId": "MIT OR OFL-1.1-no-RFN",
"patchedName": "Monoid",
"version": "0.61"
},
{
"caskName": "mononoki",
"description": "Keeps in mind differentiation of characters and resolution sizes",
"folderName": "Mononoki",
"licenseId": "OFL-1.1-RFN",
"patchedName": "Mononoki",
"version": "1.6"
},
{
"caskName": "m+",
"description": "Multiple styles and weights, many glyph sets (e.g. Kana glyphs)",
"folderName": "MPlus",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "M+",
"version": "1.007"
},
{
"caskName": "noto",
"description": "`0` and `O` very similar, characters are either very curvy or straight lined",
"folderName": "Noto",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "Noto",
"version": "div"
},
{
"caskName": "open-dyslexic",
"description": "Designed specifically to alleviate reading errors caused by dyslexia",
"folderName": "OpenDyslexic",
"licenseId": "Bitstream-Vera",
"patchedName": "OpenDyslexic",
"version": "2.001"
},
{
"caskName": "overpass",
"description": "An open source font family inspired by Highway Gothic",
"folderName": "Overpass",
"licenseId": "OFL-1.1-no-RFN or LGPL-2.1-only",
"patchedName": "Overpass",
"version": "3.0.5"
},
{
"caskName": "profont",
"description": "Looks best with anti-aliasing turned off, squared off character corners, vertically tight small `s`",
"folderName": "ProFont",
"licenseId": "MIT",
"patchedName": "ProFont",
"version": "2.3/2.2"
},
{
"caskName": "proggy-clean-tt",
"description": "Designed particularly for use at small point sizes",
"folderName": "ProggyClean",
"licenseId": "MIT",
"patchedName": "ProggyClean",
"version": "2004/04/15"
},
{
"caskName": "recursive-mono",
"description": "inspired by casual script signpainting, 4 variants",
"folderName": "Recursive",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "RecMono",
"version": "1.085"
},
{
"caskName": "roboto-mono",
"description": "Dashed zero, curved and straight character lines",
"folderName": "RobotoMono",
"licenseId": "Apache-2.0",
"patchedName": "RobotoMono",
"version": "3.0"
},
{
"caskName": "shure-tech-mono",
"description": "Dotted zeros, distinguishable 1 and l, curved and straight character lines",
"folderName": "ShareTechMono",
"licenseId": "OFL-1.1-RFN",
"patchedName": "ShureTechMono",
"version": "1.003"
},
{
"caskName": "sauce-code-pro",
"description": "Monospaced font family for user interface and coding environments",
"folderName": "SourceCodePro",
"licenseId": "OFL-1.1-RFN",
"patchedName": "SauceCodePro",
"version": "2.042"
},
{
"caskName": "space-mono",
"description": "Squarish character lines, dotted zero, aggressive parethesis",
"folderName": "SpaceMono",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "SpaceMono",
"version": "1.001"
},
{
"caskName": "symbols-only",
"description": "Just the Nerd Font Icons. I.e Symbol font only",
"folderName": "NerdFontsSymbolsOnly",
"licenseId": "MIT",
"patchedName": "Symbols",
"version": "latest"
},
{
"caskName": "terminess-ttf",
"description": "Squarish characters that are slightly askew",
"folderName": "Terminus",
"licenseId": "OFL-1.1-RFN",
"patchedName": "Terminess",
"version": "4.49.2"
},
{
"caskName": "tinos",
"description": "Some similarities to Times New Roman, designed by Steve Matteson, includes pan-European WGL character set",
"folderName": "Tinos",
"licenseId": "Apache-2.0",
"patchedName": "Tinos",
"version": "1.23"
},
{
"caskName": "ubuntu",
"description": "Specially created for Ubuntu",
"folderName": "Ubuntu",
"licenseId": "LicenseRef-UbuntuFont",
"patchedName": "Ubuntu",
"version": "0.83"
},
{
"caskName": "ubuntu-mono",
"description": "Dotted zeros, used the `n`, `o`, `H` & `O` Latin characters as a base for design",
"folderName": "UbuntuMono",
"licenseId": "LicenseRef-UbuntuFont",
"patchedName": "UbuntuMono",
"version": "0.80"
},
{
"caskName": "ubuntu-sans",
"description": "Refreshed version of Ubuntu and Ubuntu Mono fonts",
"folderName": "UbuntuSans",
"licenseId": "LicenseRef-UbuntuFont",
"patchedName": "UbuntuSans",
"version": "1.006"
},
{
"caskName": "victor-mono",
"description": "Clean, crisp and narrow, with a large x-height and clear punctuation",
"folderName": "VictorMono",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "VictorMono",
"version": "1.5.6"
},
{
"caskName": "zed-mono",
"description": "Zed Mono is a more rounded version of Iosevka",
"folderName": "ZedMono",
"licenseId": "OFL-1.1-no-RFN",
"patchedName": "ZedMono",
"version": "1.2.0"
}
]

View File

@@ -0,0 +1,3 @@
{
"tag_name": "v3.4.0"
}

View File

@@ -0,0 +1,91 @@
#! /usr/bin/env nix-shell
#! nix-shell -p python3 -i python3
import os
import urllib.request as ureq
import json
import html
if not all(
f"UPDATE_NIX_{v}" in os.environ
for v in ["NAME", "PNAME", "OLD_VERSION", "ATTR_PATH"]
) or not os.environ['UPDATE_NIX_ATTR_PATH'].startswith("nerd-fonts."):
raise Exception(
"Please don't run this script manually, only with:\n"
"nix-shell maintainers/scripts/update.nix --argstr path nerd-fonts "
"--argstr commit true"
)
RELEASE_INFO_URL = "https://api.github.com/repos/ryanoasis/nerd-fonts/releases/latest"
FONTS_INFO_URL_TEMPLATE = "https://raw.githubusercontent.com/ryanoasis/nerd-fonts/refs/tags/{}/bin/scripts/lib/fonts.json"
SHA256_URL_TEMPLATE = "https://github.com/ryanoasis/nerd-fonts/releases/download/{}/SHA-256.txt"
RELEASE_INFO_FILENAME = "release.json"
FONTS_INFO_FILENAME = "fonts.json"
CHECKSUMS_FILENAME = "checksums.json"
def fetchjson(url):
with ureq.urlopen(url) as r:
return json.loads(r.read())
def storejson(path, obj):
with open(path, "w", encoding="utf-8") as f:
json.dump(obj, f, indent=2, ensure_ascii=False)
# Needed to satisfy EditorConfig's rules
f.write('\n')
def slicedict(d, ks):
return {k: html.unescape(d[k]) for k in ks}
os.chdir(os.path.join(os.path.dirname(os.path.abspath(__file__)), "manifests"))
release_info = slicedict(
fetchjson(RELEASE_INFO_URL),
["tag_name"]
)
tag_name = release_info["tag_name"]
with open(RELEASE_INFO_FILENAME, "r", encoding="utf-8") as f:
former_tag_name = json.load(f)["tag_name"]
if tag_name == former_tag_name:
raise Exception("no newer version available")
# See: https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#supported-features
print(json.dumps(
[
{
"attrPath": "nerd-fonts",
"oldVersion": former_tag_name.removeprefix("v"),
"newVersion": tag_name.removeprefix("v"),
},
],
indent=2
))
storejson(RELEASE_INFO_FILENAME, release_info)
storejson(
FONTS_INFO_FILENAME,
[
slicedict(
item,
[
"caskName",
"description",
"folderName",
"licenseId",
"patchedName",
"version",
]
)
for item in fetchjson(FONTS_INFO_URL_TEMPLATE.format(tag_name))["fonts"]
],
)
storejson(
CHECKSUMS_FILENAME,
{
filename: sha256
for row in ureq.urlopen(SHA256_URL_TEMPLATE.format(tag_name))
for sha256, filename in [row.decode('utf-8').split()]
if filename.endswith(".tar.xz")
},
)