diff options
Diffstat (limited to 'nixpkgs/pkgs/data/fonts/dina/default.nix')
-rw-r--r-- | nixpkgs/pkgs/data/fonts/dina/default.nix | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/data/fonts/dina/default.nix b/nixpkgs/pkgs/data/fonts/dina/default.nix new file mode 100644 index 000000000000..2a770222ed10 --- /dev/null +++ b/nixpkgs/pkgs/data/fonts/dina/default.nix @@ -0,0 +1,64 @@ +{ lib, stdenv, fetchurl, unzip +, bdftopcf, mkfontscale, fontforge +}: + +stdenv.mkDerivation { + pname = "dina-font"; + version = "2.92"; + + src = fetchurl { + url = "http://www.donationcoder.com/Software/Jibz/Dina/downloads/Dina.zip"; + sha256 = "1kq86lbxxgik82aywwhawmj80vsbz3hfhdyhicnlv9km7yjvnl8z"; + }; + + nativeBuildInputs = + [ unzip bdftopcf mkfontscale fontforge ]; + + patchPhase = "sed -i 's/microsoft-cp1252/ISO8859-1/' *.bdf"; + + buildPhase = '' + newName() { + test "''${1:5:1}" = i && _it=Italic || _it= + case ''${1:6:3} in + 400) test -z $it && _weight=Medium ;; + 700) _weight=Bold ;; + esac + _pt=''${1%.bdf} + _pt=''${_pt#*-} + echo "Dina$_weight$_it$_pt" + } + + # convert bdf fonts to pcf + for i in *.bdf; do + bdftopcf -t -o $(newName "$i").pcf "$i" + done + gzip -n -9 *.pcf + + # convert bdf fonts to otb + for i in *.bdf; do + fontforge -lang=ff -c "Open(\"$i\"); Generate(\"$(newName $i).otb\")" + done + ''; + + installPhase = '' + install -D -m 644 -t "$out/share/fonts/misc" *.pcf.gz *.otb + install -D -m 644 -t "$bdf/share/fonts/misc" *.bdf + mkfontdir "$out/share/fonts/misc" + mkfontdir "$bdf/share/fonts/misc" + ''; + + outputs = [ "out" "bdf" ]; + + meta = with lib; { + description = "A monospace bitmap font aimed at programmers"; + longDescription = '' + Dina is a monospace bitmap font, primarily aimed at programmers. It is + relatively compact to allow a lot of code on screen, while (hopefully) + clear enough to remain readable even at high resolutions. + ''; + homepage = "https://www.donationcoder.com/Software/Jibz/Dina/"; + downloadPage = "https://www.donationcoder.com/Software/Jibz/Dina/"; + license = licenses.free; + maintainers = [ maintainers.prikhi ]; + }; +} |