summary refs log tree commit diff
path: root/pkgs/data/fonts/noto-fonts/default.nix
diff options
context:
space:
mode:
authorjopejoe1 <johannes@joens.email>2023-04-08 22:08:04 +0200
committerjopejoe1 <johannes@joens.email>2023-04-11 21:26:17 +0200
commitc347bd62a16ba88322be96cf733f7c49d7988afc (patch)
treeee44df253996d1a8f129706214c9bd9a4db8621a /pkgs/data/fonts/noto-fonts/default.nix
parentfbe6137a0d773bb44e6f92129a4995eae2e12b03 (diff)
downloadnixpkgs-c347bd62a16ba88322be96cf733f7c49d7988afc.tar
nixpkgs-c347bd62a16ba88322be96cf733f7c49d7988afc.tar.gz
nixpkgs-c347bd62a16ba88322be96cf733f7c49d7988afc.tar.bz2
nixpkgs-c347bd62a16ba88322be96cf733f7c49d7988afc.tar.lz
nixpkgs-c347bd62a16ba88322be96cf733f7c49d7988afc.tar.xz
nixpkgs-c347bd62a16ba88322be96cf733f7c49d7988afc.tar.zst
nixpkgs-c347bd62a16ba88322be96cf733f7c49d7988afc.zip
noto-fonts: switch to variable fonts and remove noto-font-extra
Diffstat (limited to 'pkgs/data/fonts/noto-fonts/default.nix')
-rw-r--r--pkgs/data/fonts/noto-fonts/default.nix34
1 files changed, 20 insertions, 14 deletions
diff --git a/pkgs/data/fonts/noto-fonts/default.nix b/pkgs/data/fonts/noto-fonts/default.nix
index abd6ad0b2c3..822bde41abe 100644
--- a/pkgs/data/fonts/noto-fonts/default.nix
+++ b/pkgs/data/fonts/noto-fonts/default.nix
@@ -29,7 +29,6 @@ in
 rec {
   mkNoto =
     { pname
-    , weights
     , variants ? [ ]
     , longDescription ? notoLongDescription
     }:
@@ -47,17 +46,31 @@ rec {
       _variants = map (variant: builtins.replaceStrings [ " " ] [ "" ] variant) variants;
 
       installPhase = ''
-        # We copy in reverse preference order -- unhinted first, then
-        # hinted -- to get the "best" version of each font while
+        # We check availability in order of variable -> otf -> ttf
+        # unhinted -- the hinted versions use autohint
         # maintaining maximum coverage.
         #
-        # TODO: install OpenType, variable versions?
-        local out_ttf=$out/share/fonts/truetype/noto
+        # We have a mix of otf and ttf fonts
+        local out_font=$out/share/fonts/noto
       '' + (if _variants == [ ] then ''
-        install -m444 -Dt $out_ttf fonts/*/hinted/ttf/*-${weights}.ttf
+        for folder in $(ls -d fonts/*/); do
+          if [[ -d "$folder"unhinted/variable-ttf ]]; then
+            install -m444 -Dt $out_font "$folder"unhinted/variable-ttf/*.ttf
+          elif [[ -d "$folder"unhinted/otf ]]; then
+            install -m444 -Dt $out_font "$folder"unhinted/otf/*.otf
+          else
+            install -m444 -Dt $out_font "$folder"unhinted/ttf/*.ttf
+          fi
+        done
       '' else ''
         for variant in $_variants; do
-          install -m444 -Dt $out_ttf fonts/$variant/hinted/ttf/*-${weights}.ttf
+          if [[ -d fonts/"$variant"/unhinted/variable-ttf ]]; then
+            install -m444 -Dt $out_font fonts/"$variant"/unhinted/variable-ttf/*.ttf
+          elif [[ -d fonts/"$variant"/unhinted/otf ]]; then
+            install -m444 -Dt $out_font fonts/"$variant"/unhinted/otf/*.otf
+          else
+            install -m444 -Dt $out_font fonts/"$variant"/unhinted/ttf/*.ttf
+          fi
         done
       '');
 
@@ -112,12 +125,10 @@ rec {
 
   noto-fonts = mkNoto {
     pname = "noto-fonts";
-    weights = "{Regular,Bold,Light,Italic,BoldItalic,LightItalic}";
   };
 
   noto-fonts-lgc-plus = mkNoto {
     pname = "noto-fonts-lgc-plus";
-    weights = "{Regular,Bold,Light,Italic,BoldItalic,LightItalic}";
     variants = [
       "Noto Sans"
       "Noto Serif"
@@ -135,11 +146,6 @@ rec {
     '';
   };
 
-  noto-fonts-extra = mkNoto {
-    pname = "noto-fonts-extra";
-    weights = "{Black,Condensed,Extra,Medium,Semi,Thin}*";
-  };
-
   noto-fonts-cjk-sans = mkNotoCJK {
     typeface = "Sans";
     version = "2.004";