# vim: set noet sw=2 ts=2 sts=2: {lib, pkgs, fetchfont, ...}: with pkgs; let github = path: "https://github.com/${path}"; googlefonts = path: github "googlefonts/${path}"; fonts = { alegreya = fetchfont rec { pname = "Alegreya"; version = "2.008"; src = fetchurl { name = "${pname}-${version}.tar.gz"; hash = "sha256-RNrL48S2DCA7HWDwpV6/bBOYI/g/0jT5sHjs58sVZ24="; url = github "huertatipografica/${pname}/archive/refs/tags/v${version}.tar.gz"; }; }; alegreya_sans = fetchfont rec { pname = "Alegreya-Sans"; version = "2.008"; src = fetchurl { name = "${pname}-${version}.tar.gz"; hash = "sha256-6lRVctSeGOZ11rcqZ1TaNE4kucrMPSt2wesr+a5zpAI="; url = github "huertatipografica/${pname}/archive/refs/tags/v${version}.tar.gz"; }; }; fira_code = fetchfont rec { pname = "Fira-Code"; version = "6.2"; src = fetchurl { name = "${pname}-${version}.zip"; hash = "sha256-CUmRW6jrJNif2T0Qp/9iP0KDDXxf/D7L+WDk7K0+Pnk="; url = github "tonsky/FiraCode/releases/download/${version}/Fira_Code_v${version}.zip"; }; }; fira_mono = fetchfont rec { pname = "Fira-Mono"; version = "4.202"; src = fetchurl { name = "${pname}-${version}.tar.gz"; hash = "sha256-2GJpZXOH8UTXe6EgERJPMPQj9wZy4VdtwW+Ri7Ft3+Q="; url = github "mozilla/Fira/archive/refs/tags/${version}.tar.gz"; }; }; inconsolata = fetchfont rec { pname = "Inconsolata"; version = "3.000"; src = fetchurl { name = "${pname}-${version}.tar.gz"; hash = "sha256-8tjYumyqeFqWbvF5loIqsUupHsQjQxop4bbEsUvEzaU="; url = googlefonts "${pname}/archive/refs/tags/v${version}.tar.gz"; }; }; lato = fetchfont rec { pname = "Lato"; version = "2.015"; src = fetchurl { name = "${pname}-${version}.tar.gz"; hash = "sha256-aefWlxXVMcea7HgtbrP6PdgmM+/bZC7bXGZUdJVAE0Y="; url = googlefonts "LatoGFVersion/archive/080cb69711ca050d91e9c866e58df7a73095c69a.tar.gz"; }; #src = fetchurl { name = "${pname}-${version}.zip"; hash = "sha256-QrVOlsB+KZ2Wf8MifHvWOiDWz7Hcj9ba6DYoCR4gpbg="; url = "https://www.latofonts.com/download/lato2ofl-zip/"; }; #srcs = # let baseurl = "https://raw.githubusercontent.com/google/fonts/658d6674d14c20ddb6ccc70288f902f04c2bbdc4/ofl/lato/"; # # Black BlackItalic ExtraBold ExtraBoldItalic ExtraLight ExtraLightItalic Italic Light LightItalic Medium MediumItalic Regular SemiBold SemiBoldItalic Thin ThinItalic # list = { # Black = "0ds31mc8fb11lpc3gx8d3swgiivgcq1pdbw9wrywxnv2kj1n5340"; # BlackItalic = "1gkcdrnpcqvvibqjg8h8gig7r7k6gj38qcr5pmqsb0v7z5dzf51j"; # ExtraBold = "15xgd5cbvj9zfz9a7bhrja76qx9hq72m678br150vyfs5gk8s0b1"; # ExtraBoldItalic = "0x4k109y8vy9l3kckfr7c5vnxlpagz04ffiy09hkm49pki5khax4"; # ExtraLight = "0vckhw23n3aab3i4cw1n9syffkq2ip81zichgn1g0pfvh6s8k6cq"; # ExtraLightItalic = "0cfvmf8ppr8j9a1x53xhxjpq86z90c5kallcj3h4rdmra1i54mpw"; # Italic = "11hprdwwdiwq6156bmlhp18j5lf50147wv6j642i11qkzr7c96g3"; # Light = "024gg33lw0i85xh2afy1hzq067hf2syng6glhkaiix5s0d2pfang"; # LightItalic = "0d8nh7kwwp0b1v3n3fkkldjc7m46qha6nyil8rv0x88lzli6f3kh"; # Medium = "0f5365x82mzdv0xfkx2xac90n708mpxpjmnpbms0bq1kd0m1ib6k"; # MediumItalic = "01c40i43m0wyk37cxcnlh4afh5fmhmp9symjzrxadn22zb7ydg7c"; # Regular = "0ldjhpqw0qg4pqlgj0mspp9vz0nh8klqim92lbnk3y9i69lf8dnn"; # SemiBold = "0g40mzain3afvam5i5kr1d1fkl9b82fm7gk7s8g8hnp7rggbgf3i"; # SemiBoldItalic = "0p1pa6yyh31cl5lddqg02m1m8gbpaawm5h1v0pprkyyq6jrvdpjs"; # Thin = "1rymqn0ask06qdi1y871wz1sybkr9nzp78jdykzp10m3x6zmag36"; # ThinItalic = "1srvlccqs3m64xixlddnc0c7sf1sfmblvnbhahbpp676khhnxs75"; # }; # in lib.attrsets.mapAttrsToList (n: h: fetchurl { name = "${pname}-${n}-${version}.ttf"; sha256 = h; url = "${baseurl}${pname}-${n}.ttf"; }) list; }; libre_barcode = fetchfont rec { pname = "Libre-Barcode"; version = "1.008"; src = fetchurl { name = "${pname}-${version}.zip"; hash = "sha256-47ntjMcZR4j5ybGU2UAA5t4FTPvyAvTiDSKYGEdRDQU="; url = github "graphicore/librebarcode/releases/download/v${version}/LibreBarcode_v${version}.zip"; }; }; oswald = fetchfont rec { pname = "Oswald"; version = "4.004"; src = fetchurl { name = "${pname}-${version}.tar.gz"; hash = "sha256-XWiMR+0KU76RE7bP4q2urQGYpryqLJayXAEzrT1Gk2Y="; url = googlefonts "OswaldFont/archive/65c0044bd1e113993d193529361f02fa4fd7ad94.tar.gz"; }; }; source-code-pro = fetchfont rec { pname = "Source-Code-Pro"; version = "2.042"; srcs = let baseurl = github "adobe-fonts/source-code-pro/releases/download/2.042R-u%2F1.062R-i%2F1.026R-vf"; in [ (fetchurl { name = "${pname}-${version}-otf.zip"; hash = "sha256-dUouPruUWukF1yCsWJazs0rMlUbdZVHvlTaGl4hina4="; url = "${baseurl}/OTF-source-code-pro-2.042R-u_1.062R-i.zip"; }) # Totaly useless .woff/.woff2 files, because they convert .otf to .otf.woff and .ttf to .ttf.woff. So better to generate them self. #(fetchurl { name = "${pname}-${version}-woff.zip"; hash = "sha256-6pXBFpB7OgLb6QPbWsMuTbrNGD3Vj/S1oXUxLG3a8oo="; url = "${baseurl}/WOFF-source-code-pro-2.042R-u_1.062R-i_1.026Rvf.zip"; }) #(fetchurl { name = "${pname}-${version}-woff2.zip"; hash = "sha256-IYTB8rrEj099lSsBR9wOSAaf0ftKjDG4abcI78l402U="; url = "${baseurl}/WOFF2-source-code-pro-2.042R-u_1.062R-i_1.026Rvf.zip"; }) (fetchurl { name = "${pname}-${version}-vf.zip"; hash = "sha256-BmC6DNFHj5LPzyrXkLeqKfitstrxVZj0UqZa5hycn7E="; url = "${baseurl}/VF-source-code-VF-1.026R.zip"; }) ]; }; source-sans = fetchfont rec { pname = "Source-Sans"; version = "3.052"; srcs = let baseurl = github "adobe-fonts/source-sans/releases/download/${version}R/"; in [ (fetchurl { name = "${pname}-${version}.zip"; hash = "sha256-pOu96iCwjMvXvzZlqUYkVO790B2aYwcSnTs9RnKYEHQ="; url = "${baseurl}/OTF-source-sans-3.052R.zip"; }) (fetchurl { name = "${pname}-${version}-vf.zip"; hash = "sha256-2OKsNV4G5qDw4KCxrAwkUa+nB1hNe7nWsR755LdJkEw="; url = "${baseurl}/VF-source-sans-3.052R.zip"; }) ]; }; source-serif = fetchfont rec { pname = "Source-Serif"; version = "4.005"; src = stdenv.mkDerivation { pname = "Source-Serif"; version = "4.005"; nativeBuildInputs = [ coreutils ]; src = fetchzip { stripRoot=false; name = "${pname}-${version}.zip"; hash = "sha256-JVt+uJED/M2S2RBOXZ1th+aPLOuCNTl9jx6dC5cyMlQ="; url = github "adobe-fonts/source-serif/releases/download/${version}R/source-serif-${version}_Desktop.zip"; }; installPhase = '' mkdir -p "$out/" echo "================ src=$src" find $src -name \*.otf -print -exec cp -a \{\} "$out/" \; ''; }; #srcs = # let baseurl = github "adobe-fonts/source-serif/releases/download/${version}R/"; # in [ # (fetchurl { name = "${pname}-${version}.zip"; hash = "sha256-VJ/bj5poK9BpRCmGIUBJafbed8LkIv87gkSh3NagxCU="; url = "${baseurl}/source-serif-${version}_Desktop.zip"; }) # # Totaly useless .woff/.woff2 files, because they convert .otf to .otf.woff and .ttf to .ttf.woff. So better to generate them self. # #(fetchurl { name = "${pname}-${version}-woff.zip"; hash = "sha256-aHJU28beIClQaphvN7l+oxGUnf+pHIlAXPDueL8XqOA="; url = "${baseurl}/source-serif-${version}_WOFF.zip"; }) # #(fetchurl { name = "${pname}-${version}-woff2.zip"; hash = "sha256-rxDoDc0ilnSLBMuZF9ufe6CuZRARZf0vDBa5gS2avSg="; url = "${baseurl}/source-serif-${version}_WOFF2.zip"; }) # ]; }; rubik_dirt = fetchfont rec { pname = "Rubik-Dirt"; version = "2"; srcs = let baseurl = github "NaN-xyz/Rubik-Filtered/raw/7f47b7f79f903e1d6af9883da43a84928e02b816/dirt/fonts"; in [ (fetchurl { name = "${pname}-Regular.ttf"; hash = "sha256-nePZKOQ0pH7IXXWQEsig6/6rCGAHbupOOYmkfF4hMSM="; url = "${baseurl}/ttf/RubikDirt-Regular.ttf"; }) (fetchurl { name = "${pname}-Regular.woff2"; hash = "sha256-xh1jUaN5FRaU/omXT7U9T9Qhu+Cl/YddAJnSpgCOqYk="; url = "${baseurl}/webfonts/RubikDirt-Regular.woff2"; }) ]; }; unifraktur-cook = fetchfont rec { pname = "Unifraktur-Cook"; version = "2013.08.25"; src = fetchurl { name = "${pname}-${version}.zip"; hash = "sha256-RerEn/6cc45SAVYBSfZmJSpU+z8ExpmCJeXcOdBGeAc="; url = "mirror://sourceforge/unifraktur/UnifrakturCook.2013-08-25.zip"; }; }; unifraktur-maguntia = fetchfont rec { pname = "Unifraktur-Maguntia"; version = "2017.03.19"; src = fetchurl { name = "${pname}-${version}.zip"; hash = "sha256-+j0JOeGYwP/FkhizdagYog7Kra9fw9OaIyKglavwz5o="; url = "mirror://sourceforge/unifraktur/UnifrakturMaguntia.2017-03-19.zip"; }; }; vollkorn = fetchfont rec { pname = "Vollkorn"; version = "4.105"; src = fetchurl { name = "${pname}-${version}.zip"; hash = "sha256-5lDqnZZ8KvHpuNNOERhyFyi81zzP0yINpCZGYTAeivU="; url = "http://vollkorn-typeface.com/download/vollkorn-4-105.zip"; }; }; wiener-norm = fetchfont rec { pname = "Wiener-Norm"; version = "1"; src = fetchurl { name = "wiener-norm.zip"; hash = "sha256-dvHTRIYGURNx+1NMX4ts0xlb/GgRguWFIC0NMiESjvc="; url = "http://www.horaczek.net/download/wiener_norm.zip"; }; }; }; in { all = fonts; } // fonts