74 lines
2.0 KiB
Nix
74 lines
2.0 KiB
Nix
{ lib
|
||
, stdenvNoCC
|
||
, fetchFromGitHub
|
||
}:
|
||
|
||
let
|
||
mkMonaspace =
|
||
{ pname
|
||
, variants ? [ ]
|
||
}: stdenvNoCC.mkDerivation rec {
|
||
inherit pname;
|
||
version = "1.000";
|
||
|
||
src = fetchFromGitHub {
|
||
owner = "githubnext";
|
||
repo = "monaspace";
|
||
rev = "v${version}";
|
||
hash = "sha256-Zo56r0QoLwxwGQtcWP5cDlasx000G9BFeGINvvwEpQs=";
|
||
};
|
||
|
||
_variants = map (builtins.replaceStrings [ " " ] [ "" ]) variants;
|
||
|
||
installPhase = ''
|
||
local out_font=$out/share/fonts/monaspace
|
||
'' + (if variants == [ ] then ''
|
||
install -m444 -Dt $out_font fonts/otf/*.otf
|
||
install -m444 -Dt $out_font fonts/variable/*.ttf
|
||
'' else ''
|
||
for variant in $_variants; do
|
||
install -m444 -Dt $out_font fonts/otf/"$variant"-*.otf
|
||
install -m444 -Dt $out_font fonts/variable/"$variant"Var*.ttf
|
||
done
|
||
'');
|
||
|
||
meta = {
|
||
description = "An innovative superfamily of fonts for code";
|
||
homepage = "https://monaspace.githubnext.com/";
|
||
longDescription = ''
|
||
Since the earliest days of the teletype machine, code has been set in
|
||
monospaced type — letters, on a grid. Monaspace is a new type system
|
||
that advances the state of the art for the display of code on screen.
|
||
'';
|
||
license = lib.licenses.ofl;
|
||
platforms = lib.platforms.all;
|
||
};
|
||
};
|
||
in
|
||
{
|
||
monaspace = mkMonaspace {
|
||
pname = "monaspace";
|
||
};
|
||
|
||
monaspace-argon = mkMonaspace {
|
||
pname = "monaspace-argon";
|
||
variants = [ "Monaspace Argon" ];
|
||
};
|
||
monaspace-krypton = mkMonaspace {
|
||
pname = "monaspace-krypton";
|
||
variants = [ "Monaspace Krypton" ];
|
||
};
|
||
monaspace-neon = mkMonaspace {
|
||
pname = "monaspace-neon";
|
||
variants = [ "Monaspace Neon" ];
|
||
};
|
||
monaspace-radon = mkMonaspace {
|
||
pname = "monaspace-radon";
|
||
variants = [ "Monaspace Radon" ];
|
||
};
|
||
monaspace-xenon = mkMonaspace {
|
||
pname = "monaspace-xenon";
|
||
variants = [ "Monaspace Xenon" ];
|
||
};
|
||
}
|