flake-fonts/fonts.nix

150 lines
9.1 KiB
Nix

# 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