packages default all fonts, devShell tools for compiling fonts.
This commit is contained in:
parent
4b8974f7aa
commit
17bb7663ad
18
collection.nix
Normal file
18
collection.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
# vim: set noet sw=2 ts=2 sts=2:
|
||||||
|
{lib, pkgs, fonts, ...}:
|
||||||
|
with pkgs;
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "fonts-collection";
|
||||||
|
nativeBuildInputs = [ coreutils ];
|
||||||
|
srcs = [ fonts.fira_code ];# lib.attrsets.attrValues fonts;
|
||||||
|
unpackPhase = " ";
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p "$out/share/"{fonts,doc}
|
||||||
|
for src in $srcs
|
||||||
|
do
|
||||||
|
cd $src
|
||||||
|
find * -type d -exec mkdir -p "$out/{}" \;
|
||||||
|
find * -not -type d -exec ln -s "$src/{}" "$out/{}" \;
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
# vim: set noet sw=2 ts=2 sts=2:
|
# vim: set noet sw=2 ts=2 sts=2:
|
||||||
{lib, nixpkgs, sfnt2woff-zopfli, ...}:
|
{lib, pkgs, ...}:
|
||||||
{src ? null , srcs ? null, name ? "", pname ? "", version ? ""}:
|
{src ? null , srcs ? null, name ? "", pname ? "", version ? ""}:
|
||||||
|
with pkgs;
|
||||||
let
|
let
|
||||||
name_ =
|
name_ =
|
||||||
if "" != name
|
if "" != name
|
||||||
|
@ -8,7 +9,7 @@
|
||||||
else "${pname}-v${version}";
|
else "${pname}-v${version}";
|
||||||
in stdenv.mkDerivation ({
|
in stdenv.mkDerivation ({
|
||||||
name = name_;
|
name = name_;
|
||||||
nativeBuildInputs = with nixpkgs; [ sfnt2woff-zopfli unzip coreutils fontconfig woff2 ];
|
nativeBuildInputs = [ sfnt2woff-zopfli unzip coreutils fontconfig woff2 ];
|
||||||
unpackPhase = ''
|
unpackPhase = ''
|
||||||
source_dir="$TMPDIR/src"
|
source_dir="$TMPDIR/src"
|
||||||
mkdir "$source_dir"
|
mkdir "$source_dir"
|
||||||
|
@ -87,4 +88,4 @@
|
||||||
find "$source_dir" -name \*.html -exec cp \{\} $out/share/doc/${name_} \;
|
find "$source_dir" -name \*.html -exec cp \{\} $out/share/doc/${name_} \;
|
||||||
find "$source_dir" -name \*.css -exec cp \{\} $out/share/doc/${name_} \;
|
find "$source_dir" -name \*.css -exec cp \{\} $out/share/doc/${name_} \;
|
||||||
'';
|
'';
|
||||||
} // (if null != src then { src = src; } else { srcs = srcs; }));
|
} // (if null != src then { src = src; } else { srcs = srcs; }))
|
||||||
|
|
27
flake.lock
Normal file
27
flake.lock
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1686926720,
|
||||||
|
"narHash": "sha256-S49KAii1WiYGAYza+ZJR8Nem142YJ4Nkt4gMvZiovS0=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "b1bdd38ad9c3b67c25101b87906f6cc3b628317d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-23.05-small",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
36
flake.nix
36
flake.nix
|
@ -1,23 +1,33 @@
|
||||||
# vim: set noet sw=2 ts=2 sts=2:
|
# vim: set et sw=2 ts=2 sts=2:
|
||||||
{
|
{
|
||||||
description = "fonts";
|
description = "fonts";
|
||||||
inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-23.05-small;
|
inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-23.05-small;
|
||||||
outputs = { self, nixpkgs }:
|
outputs = { self, nixpkgs }:
|
||||||
let
|
let
|
||||||
sfnt2woff-zopfli = callPackage ./sfnt2woff-zopfli.nix {};
|
|
||||||
fetchfont = callPackage ./fetchfont.nix {sfnt2woff-zopfli = sfnt2woff-zopfli; };
|
|
||||||
fonts = callPackage ./fonts.nix {fetchfont = fetchfont; };
|
|
||||||
allSystems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
|
allSystems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
|
||||||
forAllSystems = f: nixpkgs.lib.genAttrs allSystems (system: f {
|
forAllSystems = f: (nixpkgs.lib.genAttrs allSystems (system: f {
|
||||||
pkgs = import nixpkgs { inherit system; };
|
pkgs = import nixpkgs { inherit system; };
|
||||||
});
|
}));
|
||||||
in {
|
in rec {
|
||||||
lib = {
|
#lib = {
|
||||||
fetchfont = fetchfont;
|
# fetchfont = fetchfont;
|
||||||
};
|
#};
|
||||||
packages = forAllSystems {pkgs}: {
|
packages = forAllSystems ({pkgs}:
|
||||||
default = fonts // { sfnt2woff-zopfli = sfnt2woff-zopfli; };
|
with pkgs;
|
||||||
};
|
let
|
||||||
|
fetchfont = callPackage ./fetchfont.nix { pkgs = pkgs // { inherit sfnt2woff-zopfli; }; };
|
||||||
|
sfnt2woff-zopfli = callPackage ./sfnt2woff-zopfli.nix {};
|
||||||
|
fonts = callPackage ./fonts.nix { fetchfont = fetchfont; };
|
||||||
|
default = callPackage ./collection.nix { fonts = fonts; };
|
||||||
|
in
|
||||||
|
fonts // { inherit sfnt2woff-zopfli default; }
|
||||||
|
);
|
||||||
|
devShell = forAllSystems ({pkgs}:
|
||||||
|
pkgs.mkShell {
|
||||||
|
name = "fonts-dev";
|
||||||
|
nativeBuildInputs = [ packages.${pkgs.system}.sfnt2woff-zopfli pkgs.woff2 ];
|
||||||
|
}
|
||||||
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
43
fonts.nix
43
fonts.nix
|
@ -1,51 +1,54 @@
|
||||||
# vim: set noet sw=2 ts=2 sts=2:
|
# vim: set noet sw=2 ts=2 sts=2:
|
||||||
{lib, nixpkgs, fetchfont, ...}:
|
{lib, pkgs, fetchfont, ...}:
|
||||||
with nixpkgs; {
|
with pkgs;
|
||||||
|
let
|
||||||
|
github = path: "https://github.com/${path}";
|
||||||
|
in {
|
||||||
libre_barcode =
|
libre_barcode =
|
||||||
fetchfont rec {
|
fetchfont rec {
|
||||||
pname = "LibreBarcode";
|
pname = "LibreBarcode";
|
||||||
version = "1.008";
|
version = "1.008";
|
||||||
src = fetchurl { name = "${pname}-${version}.zip"; hash = "sha256-47ntjMcZR4j5ybGU2UAA5t4FTPvyAvTiDSKYGEdRDQU="; url = "https://github.com/graphicore/librebarcode/releases/download/v${version}/${pname}_v${version}.zip"; };
|
src = fetchurl { name = "${pname}-${version}.zip"; hash = "sha256-47ntjMcZR4j5ybGU2UAA5t4FTPvyAvTiDSKYGEdRDQU="; url = github "graphicore/librebarcode/releases/download/v${version}/${pname}_v${version}.zip"; };
|
||||||
};
|
};
|
||||||
fira_code =
|
fira_code =
|
||||||
fetchfont rec {
|
fetchfont rec {
|
||||||
pname = "FiraCode";
|
pname = "FiraCode";
|
||||||
version = "6.2";
|
version = "6.2";
|
||||||
src = fetchurl { name = "${pname}-${version}.zip"; hash = "sha256-CUmRW6jrJNif2T0Qp/9iP0KDDXxf/D7L+WDk7K0+Pnk="; url = "https://github.com/tonsky/FiraCode/releases/download/${version}/Fira_Code_v${version}.zip"; };
|
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 =
|
fira_mono =
|
||||||
fetchfont rec {
|
fetchfont rec {
|
||||||
pname = "FiraMono";
|
pname = "FiraMono";
|
||||||
version = "4.202";
|
version = "4.202";
|
||||||
src = fetchurl { name = "${pname}-${version}.tar.gz"; hash = "sha256-2GJpZXOH8UTXe6EgERJPMPQj9wZy4VdtwW+Ri7Ft3+Q="; url = "https://github.com/mozilla/Fira/archive/refs/tags/${version}.tar.gz"; };
|
src = fetchurl { name = "${pname}-${version}.tar.gz"; hash = "sha256-2GJpZXOH8UTXe6EgERJPMPQj9wZy4VdtwW+Ri7Ft3+Q="; url = github "mozilla/Fira/archive/refs/tags/${version}.tar.gz"; };
|
||||||
};
|
};
|
||||||
alegreya =
|
alegreya =
|
||||||
fetchfont rec {
|
fetchfont rec {
|
||||||
pname = "Alegreya";
|
pname = "Alegreya";
|
||||||
version = "2.008";
|
version = "2.008";
|
||||||
src = fetchurl { name = "${pname}-${version}.tar.gz"; hash = "sha256-RNrL48S2DCA7HWDwpV6/bBOYI/g/0jT5sHjs58sVZ24="; url = "https://github.com/huertatipografica/${pname}/archive/refs/tags/v${version}.tar.gz"; };
|
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 =
|
alegreya_sans =
|
||||||
fetchfont rec {
|
fetchfont rec {
|
||||||
pname = "Alegreya-Sans";
|
pname = "Alegreya-Sans";
|
||||||
version = "2.008";
|
version = "2.008";
|
||||||
src = fetchurl { name = "${pname}-${version}.tar.gz"; hash = "sha256-6lRVctSeGOZ11rcqZ1TaNE4kucrMPSt2wesr+a5zpAI="; url = "https://github.com/huertatipografica/${pname}/archive/refs/tags/v${version}.tar.gz"; };
|
src = fetchurl { name = "${pname}-${version}.tar.gz"; hash = "sha256-6lRVctSeGOZ11rcqZ1TaNE4kucrMPSt2wesr+a5zpAI="; url = github "huertatipografica/${pname}/archive/refs/tags/v${version}.tar.gz"; };
|
||||||
};
|
};
|
||||||
inconsolata =
|
inconsolata =
|
||||||
fetchfont rec {
|
fetchfont rec {
|
||||||
pname = "Inconsolata";
|
pname = "Inconsolata";
|
||||||
version = "3.000";
|
version = "3.000";
|
||||||
src = fetchurl { name = "${pname}-${version}.tar.gz"; hash = "sha256-8tjYumyqeFqWbvF5loIqsUupHsQjQxop4bbEsUvEzaU="; url = "https://github.com/googlefonts/${pname}/archive/refs/tags/v${version}.tar.gz"; };
|
src = fetchurl { name = "${pname}-${version}.tar.gz"; hash = "sha256-8tjYumyqeFqWbvF5loIqsUupHsQjQxop4bbEsUvEzaU="; url = github "googlefonts/${pname}/archive/refs/tags/v${version}.tar.gz"; };
|
||||||
};
|
|
||||||
rubik_dirt =
|
|
||||||
fetchfont rec {
|
|
||||||
pname = "RubikDirt";
|
|
||||||
version = "2";
|
|
||||||
srcs = let baseurl = "https://github.com/NaN-xyz/Rubik-Filtered/raw/7f47b7f79f903e1d6af9883da43a84928e02b816/dirt/fonts";
|
|
||||||
in [
|
|
||||||
(fetchurl { name = "${pname}-Regular.ttf"; hash = "sha256-nePZKOQ0pH7IXXWQEsig6/6rCGAHbupOOYmkfF4hMSM="; url = "${baseurl}/ttf/${pname}-Regular.ttf"; })
|
|
||||||
(fetchurl { name = "${pname}-Regular.woff2"; hash = "sha256-xh1jUaN5FRaU/omXT7U9T9Qhu+Cl/YddAJnSpgCOqYk="; url = "${baseurl}/webfonts/${pname}-Regular.woff2"; })
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
#rubik_dirt =
|
||||||
|
# fetchfont rec {
|
||||||
|
# pname = "RubikDirt";
|
||||||
|
# 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/${pname}-Regular.ttf"; })
|
||||||
|
# (fetchurl { name = "${pname}-Regular.woff2"; hash = "sha256-xh1jUaN5FRaU/omXT7U9T9Qhu+Cl/YddAJnSpgCOqYk="; url = "${baseurl}/webfonts/${pname}-Regular.woff2"; })
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# vim: set noet sw=2 ts=2 sts=2:
|
# vim: set noet sw=2 ts=2 sts=2:
|
||||||
{lib, nixpkgs, ...}:
|
{lib, pkgs, ...}:
|
||||||
with nixpkgs;
|
with pkgs;
|
||||||
stdenv.mkDerivation rec{
|
stdenv.mkDerivation rec{
|
||||||
pname = "sfnt2woff-zopfli";
|
pname = "sfnt2woff-zopfli";
|
||||||
version = "1.3.1";
|
version = "1.3.1";
|
||||||
|
@ -17,4 +17,4 @@ stdenv.mkDerivation rec{
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
cp sfnt2woff-zopfli $out/bin
|
cp sfnt2woff-zopfli $out/bin
|
||||||
'';
|
'';
|
||||||
};
|
}
|
||||||
|
|
Loading…
Reference in a new issue