From 0bef7e8133821712abcd268d3da6bcd79791b242 Mon Sep 17 00:00:00 2001 From: Ryan Cao <70191398+ryanccn@users.noreply.github.com> Date: Mon, 4 Sep 2023 23:01:30 +0800 Subject: [PATCH] feat(fonts): patch IBM Plex for compliant font weight names --- modules/nix.nix | 1 + overlays/ibm-plex.nix | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 overlays/ibm-plex.nix diff --git a/modules/nix.nix b/modules/nix.nix index 00f53fd..02753a0 100644 --- a/modules/nix.nix +++ b/modules/nix.nix @@ -27,6 +27,7 @@ inputs.discord-applemusic-rich-presence.overlays.default inputs.nyoom.overlays.default (import ../overlays/ryan-mono-bin.nix) + (import ../overlays/ibm-plex.nix) ]; config.allowUnfree = true; diff --git a/overlays/ibm-plex.nix b/overlays/ibm-plex.nix new file mode 100644 index 0000000..ff3a552 --- /dev/null +++ b/overlays/ibm-plex.nix @@ -0,0 +1,41 @@ +(_: prev: { + ibm-plex = prev.ibm-plex.overrideAttrs (prev': { + postInstall = '' + set -eo pipefail + PATH="${prev.fd}/bin:${prev.python311Packages.fonttools}/bin:$PATH" + + cd "$out/share/fonts/opentype" + + ansi_dim="\033[2m" + ansi_blue="\033[34m" + ansi_green="\033[32m" + ansi_reset="\033[0m" + + medium_fonts=$(fd --extension=otf Medium) + + for medium_font in $medium_fonts; do + echo -e "''${ansi_blue}Patching''${ansi_reset} $medium_font (Medm -> Medium)" + + ttx_path="''${medium_font%.*}.ttx" + + ttx "$medium_font" + sed -i 's/Medm/Medium/g' "$ttx_path" + ttx -f "$ttx_path" + done + + semibold_fonts=$(fd --extension=otf SemiBold) + + for semibold_font in $semibold_fonts; do + echo -e "''${ansi_blue}Patching''${ansi_reset} $semibold_font (SmBld -> Semibold)" + + ttx_path="''${semibold_font%.*}.ttx" + + ttx "$semibold_font" + sed -i 's/SmBld/Semibold/g' "$ttx_path" + ttx -f "$ttx_path" + done + + echo -e "''${ansi_green}Done!''${ansi_reset}" + ''; + }); +})