diff --git a/bin/scripts/gotta-patch-em-all-font-patcher!.sh b/bin/scripts/gotta-patch-em-all-font-patcher!.sh index 73dd8a12b0..0b7941b008 100755 --- a/bin/scripts/gotta-patch-em-all-font-patcher!.sh +++ b/bin/scripts/gotta-patch-em-all-font-patcher!.sh @@ -214,79 +214,56 @@ function patch_font { config_parent_dir=$( cd "$( dirname "$f" )" && cd ".." && pwd) config_dir=$( cd "$( dirname "$f" )" && pwd) - # source the font config file if exists: - # fetches for example config_patch_flags - unset config_patch_flags + # find the font config file: if [ -f "$config_dir/config.cfg" ] then - # shellcheck source=/dev/null - source "$config_dir/config.cfg" + font_config="--configfile=$config_dir/config.cfg" elif [ -f "$config_parent_dir/config.cfg" ] then - # shellcheck source=/dev/null - source "$config_parent_dir/config.cfg" + font_config="--configfile=$config_parent_dir/config.cfg" elif [ -f "$(find_font_root "$config_parent_dir")/config.cfg" ] then - # shellcheck source=/dev/null - source "$(find_font_root "$config_parent_dir")/config.cfg" - fi - - if [ -f "$config_dir/config.json" ] - then - # load font configuration file and remove selected ligatures: - font_config="--removeligatures --configfile $config_dir/config.json" - elif [ -f "$config_parent_dir/config.json" ] - then - font_config="--removeligatures --configfile $config_parent_dir/config.json" - else - font_config="" - fi - - if [ "$post_process" ] - then - # There is no postprocess active anymore, see the commit that introduced - # this comment for the Hack postprocess we once had. It called e.g. ttfautohint. - post_process="--postprocess=${repo_root_dir}/${post_process}" + font_config="--configfile=$(find_font_root "$config_parent_dir")/config.cfg" else - post_process="" + # We need to give some argument because empty arguments will break the patcher call + font_config="-q" fi cd "$repo_root_dir" || { echo >&2 "# Could not find project parent directory" exit 3 } - # Add logfile always (but can be overridden by config_patch_flags in config.cfg and env var NERDFONTS) - config_patch_flags="--debug 1 ${config_patch_flags}" + # Add logfile always (but can be overridden by config.cfg and env var NERDFONTS) # Use absolute path to allow fontforge being an AppImage (used in CI) PWD=$(pwd) # Create "Nerd Font" if [ -n "${verbose}" ] then - echo "fontforge -quiet -script \"${PWD}/font-patcher\" \"$f\" -q ${font_config} $post_process -c --no-progressbars --outputdir \"${patched_font_dir}\" $config_patch_flags ${NERDFONTS}" + echo "fontforge -quiet -script \"${PWD}/font-patcher\" --debug 1 \"$f\" -q \"${font_config}\" -c --no-progressbars --outputdir \"${patched_font_dir}\" ${NERDFONTS}" fi # shellcheck disable=SC2086 # We want splitting for the unquoted variables to get multiple options out of them - { OUT=$(fontforge -quiet -script "${PWD}/font-patcher" "$f" -q ${font_config} $post_process -c --no-progressbars \ - --outputdir "${patched_font_dir}" $config_patch_flags ${NERDFONTS} 2>&1 1>&3 3>&- ); } 3>&1 + { OUT=$(fontforge -quiet -script "${PWD}/font-patcher" --debug 1 "$f" -q "${font_config}" -c --no-progressbars \ + --outputdir "${patched_font_dir}" ${NERDFONTS} 2>&1 1>&3 3>&- ); } 3>&1 # shellcheck disable=SC2181 # Checking the code directly is very unreadable here, as we execute a whole block if [ $? -ne 0 ]; then printf "%s\nPatcher run aborted!\n\n" "$OUT"; fi # Create "Nerd Font Mono" if [ -n "${verbose}" ] then - echo "fontforge -quiet -script \"${PWD}/font-patcher\" \"$f\" -q -s ${font_config} $post_process -c --no-progressbars --outputdir \"${patched_font_dir}\" $config_patch_flags ${NERDFONTS}" + echo "fontforge -quiet -script \"${PWD}/font-patcher\" --debug 1 \"$f\" -q -s \"${font_config}\" -c --no-progressbars --outputdir \"${patched_font_dir}\" ${NERDFONTS}" fi # shellcheck disable=SC2086 # We want splitting for the unquoted variables to get multiple options out of them - { OUT=$(fontforge -quiet -script "${PWD}/font-patcher" "$f" -q -s ${font_config} $post_process -c --no-progressbars \ - --outputdir "${patched_font_dir}" $config_patch_flags ${NERDFONTS} 2>&1 1>&3 3>&- ); } 3>&1 + { OUT=$(fontforge -quiet -script "${PWD}/font-patcher" --debug 1 "$f" -q -s "${font_config}" -c --no-progressbars \ + --outputdir "${patched_font_dir}" ${NERDFONTS} 2>&1 1>&3 3>&- ); } 3>&1 # shellcheck disable=SC2181 # Checking the code directly is very unreadable here, as we execute a whole block if [ $? -ne 0 ]; then printf "%s\nPatcher run aborted!\n\n" "$OUT"; fi # Create "Nerd Font Propo" if [ -n "${verbose}" ] then - echo "fontforge -quiet -script \"${PWD}/font-patcher\" \"$f\" -q --variable ${font_config} $post_process -c --no-progressbars --outputdir \"${patched_font_dir}\" $config_patch_flags ${NERDFONTS}" + echo "fontforge -quiet -script \"${PWD}/font-patcher\" --debug 1 \"$f\" -q --variable \"${font_config}\" -c --no-progressbars --outputdir \"${patched_font_dir}\" ${NERDFONTS}" fi # shellcheck disable=SC2086 # We want splitting for the unquoted variables to get multiple options out of them - { OUT=$(fontforge -quiet -script "${PWD}/font-patcher" "$f" -q --variable ${font_config} $post_process -c --no-progressbars \ - --outputdir "${patched_font_dir}" $config_patch_flags ${NERDFONTS} 2>&1 1>&3 3>&- ); } 3>&1 + { OUT=$(fontforge -quiet -script "${PWD}/font-patcher" --debug 1 "$f" -q --variable "${font_config}" -c --no-progressbars \ + --outputdir "${patched_font_dir}" ${NERDFONTS} 2>&1 1>&3 3>&- ); } 3>&1 # shellcheck disable=SC2181 # Checking the code directly is very unreadable here, as we execute a whole block if [ $? -ne 0 ]; then printf "%s\nPatcher run aborted!\n\n" "$OUT"; fi diff --git a/font-patcher b/font-patcher index c2535a1dce..d7d27355e2 100755 --- a/font-patcher +++ b/font-patcher @@ -6,7 +6,7 @@ from __future__ import absolute_import, print_function, unicode_literals # Change the script version when you edit this script: -script_version = "4.13.1" +script_version = "4.14.0" version = "3.2.1" projectName = "Nerd Fonts" @@ -320,10 +320,10 @@ def create_filename(fonts): class font_patcher: - def __init__(self, args): + def __init__(self, args, conf): self.args = args # class 'argparse.Namespace' self.sym_font_args = [] - self.config = None # class 'configparser.ConfigParser' + self.config = conf # class 'configparser.ConfigParser' self.sourceFont = None # class 'fontforge.font' self.patch_set = None # class 'list' self.font_dim = None # class 'dict' @@ -332,7 +332,6 @@ class font_patcher: self.symbolsonly = False # Are we generating the SymbolsOnly font? self.onlybitmaps = 0 self.essential = set() - self.config = configparser.ConfigParser(empty_lines_in_values=False, allow_no_value=True) self.xavgwidth = [] # list of ints def patch(self, font): @@ -340,6 +339,7 @@ class font_patcher: self.setup_version() self.assert_monospace() self.remove_ligatures() + self.manipulate_hints() self.get_essential_references() self.get_sourcefont_dimensions() self.setup_patch_set() @@ -772,20 +772,39 @@ class font_patcher: def remove_ligatures(self): # let's deal with ligatures (mostly for monospaced fonts) # Usually removes 'fi' ligs that end up being only one cell wide, and 'ldot' - if self.args.configfile and self.config.read(self.args.configfile): - if self.args.removeligatures: - logger.info("Removing ligatures from configfile `Subtables` section") - ligature_subtables = json.loads(self.config.get("Subtables", "ligatures")) - for subtable in ligature_subtables: - logger.debug("Removing subtable: %s", subtable) - try: - self.sourceFont.removeLookupSubtable(subtable) - logger.debug("Successfully removed subtable: %s", subtable) - except Exception: - logger.error("Failed to remove subtable: %s", subtable) - elif self.args.removeligatures: - logger.error("Unable to read configfile, unable to remove ligatures") + if self.args.removeligatures: + logger.info("Removing ligatures from configfile `Subtables` section") + if 'Subtables' not in self.config: + logger.warning("No ligature data (config file missing?)") + return + ligature_subtables = json.loads(self.config.get('Subtables', 'ligatures', fallback='[]')) + for subtable in ligature_subtables: + logger.debug("Removing subtable: %s", subtable) + try: + self.sourceFont.removeLookupSubtable(subtable) + logger.debug("Successfully removed subtable: %s", subtable) + except Exception: + logger.error("Failed to remove subtable: %s", subtable) + + def manipulate_hints(self): + """ Redo the hinting on some problematic glyphs """ + if 'Hinting' not in self.config: + return + redo = json.loads(self.config.get('Hinting', 're_hint', fallback='[]')) + if not len(redo): + return + logger.debug("Working on {} rehinting rules (this may create a lot of fontforge warnings)".format(len(redo))) + count = 0 + for gname in self.sourceFont: + for regex in redo: + if re.fullmatch(regex, gname): + glyph = self.sourceFont[gname] + glyph.autoHint() + glyph.autoInstr() + count += 1 + break + logger.info("Rehinted {} glyphs".format(count)) def assert_monospace(self): # Check if the sourcefont is monospaced @@ -1886,6 +1905,7 @@ def check_version_with_git(version): return False def setup_arguments(): + """ Parse the command line parameters and load the config file if needed """ parser = argparse.ArgumentParser( description=( 'Nerd Fonts Font Patcher: patches a given font with programming and development related glyphs\n\n' @@ -1935,7 +1955,7 @@ def setup_arguments(): expert_group = parser.add_argument_group('Expert Options') expert_group.add_argument('--boxdrawing', dest='forcebox', default=False, action='store_true', help='Force patching in (over existing) box drawing glyphs') - expert_group.add_argument('--configfile', dest='configfile', default=False, type=str, help='Specify a file path for JSON configuration file (see sample: src/config.sample.json)') + expert_group.add_argument('--configfile', dest='configfile', default=False, type=str, help='Specify a file path for configuration file (see sample: src/config.sample.cfg)') expert_group.add_argument('--custom', dest='custom', default=False, type=str, help='Specify a custom symbol font, all glyphs will be copied; absolute path suggested') expert_group.add_argument('--dry', dest='dry_run', default=False, action='store_true', help='Do neither patch nor store the font, to check naming') @@ -1946,7 +1966,7 @@ def setup_arguments(): expert_group.add_argument('--name', dest='force_name', default=None, type=str, help='Specify naming source (\'full\', \'postscript\', \'filename\', or concrete free name-string)') expert_group.add_argument('--postprocess', dest='postprocess', default=False, type=str, help='Specify a Script for Post Processing') progressbars_group_parser = expert_group.add_mutually_exclusive_group(required=False) - expert_group.add_argument('--removeligs', '--removeligatures', dest='removeligatures', default=False, action='store_true', help='Removes ligatures specificed in JSON configuration file (needs --configfile)') + expert_group.add_argument('--removeligs', '--removeligatures', dest='removeligatures', default=False, action='store_true', help='Removes ligatures specificed in configuration file (needs --configfile)') expert_group.add_argument('--xavgcharwidth', dest='xavgwidth', default=None, type=int, nargs='?', help='Adjust xAvgCharWidth (optional: concrete value)', const=True) # --xavgcharwidth for compatibility with old applications like notepad and non-latin fonts # Possible values with examples: @@ -1960,6 +1980,23 @@ def setup_arguments(): expert_group.set_defaults(progressbars=True) args = parser.parse_args() + setup_global_logger(args) + + # if we have a config file: fetch commandline arguments from there and process again with all arguments + config = configparser.ConfigParser(empty_lines_in_values=False, allow_no_value=True) + if args.configfile: + if not os.path.isfile(args.configfile): + logger.critical("Configfile does not exist: %s", args.configfile) + sys.exit(1) + if not os.access(args.configfile, os.R_OK): + logger.critical("Can not open configfile for reading: %s", args.configfile) + sys.exit(1) + config.read(args.configfile) + extraflags = config.get("Config", "commandline", fallback='') + if len(extraflags): + logger.info("Adding config commandline options: %s", extraflags) + extraflags += ' ' + args.font # Need to re-add the mandatory argument + args = parser.parse_args(extraflags.split(), args) if args.makegroups > 0 and not FontnameParserOK: logger.critical("FontnameParser module missing (bin/scripts/name_parser/Fontname*), specify --makegroups 0") @@ -2042,25 +2079,11 @@ def setup_arguments(): logger.critical("--xavgcharwidth takes only numbers up to 16384") sys.exit(2) - return args + return (args, config) -def main(): +def setup_global_logger(args): + """ Set up the logger and take options into account """ global logger - logger = logging.getLogger("start") # Use start logger until we can set up something sane - s_handler = logging.StreamHandler(stream=sys.stdout) - s_handler.setFormatter(logging.Formatter('%(levelname)s: %(message)s')) - logger.addHandler(s_handler) - - global version - git_version = check_version_with_git(version) - allversions = "Patcher v{} ({}) (ff {})".format( - git_version if git_version else version, script_version, fontforge.version()) - print("{} {}".format(projectName, allversions)) - if git_version: - version = git_version - check_fontforge_min_version() - args = setup_arguments() - logger = logging.getLogger(os.path.basename(args.font)) logger.setLevel(logging.DEBUG) log_to_file = (args.debugmode & 1 == 1) @@ -2080,9 +2103,27 @@ def main(): logger.addHandler(c_handler) if (args.debugmode & 1 == 1) and not log_to_file: logger.info("Can not write logfile, disabling") + +def main(): + global logger + logger = logging.getLogger("start") # Use start logger until we can set up something sane + s_handler = logging.StreamHandler(stream=sys.stdout) + s_handler.setFormatter(logging.Formatter('%(levelname)s: %(message)s')) + logger.addHandler(s_handler) + + global version + git_version = check_version_with_git(version) + global allversions + allversions = "Patcher v{} ({}) (ff {})".format( + git_version if git_version else version, script_version, fontforge.version()) + print("{} {}".format(projectName, allversions)) + if git_version: + version = git_version + check_fontforge_min_version() + (args, conf) = setup_arguments() logger.debug("Naming mode %d", args.makegroups) - patcher = font_patcher(args) + patcher = font_patcher(args, conf) sourceFonts = [] all_fonts = fontforge.fontsInFile(args.font) diff --git a/src/config.sample.cfg b/src/config.sample.cfg new file mode 100644 index 0000000000..71b81621e6 --- /dev/null +++ b/src/config.sample.cfg @@ -0,0 +1,9 @@ +# These config files are read by the font-patcher +# They are INI style files, but some keys have JSON values +[Config] +commandline: --removeligatures --makegroups 2 +[Subtables] +ligatures: [ + "'dlig' Discretionary Ligatures lookup 9 subtable", + "'dlig' Discretionary Ligatures lookup 11 subtable", + "'dlig' Discretionary Ligatures lookup 12 contextual 0" ] diff --git a/src/config.sample.json b/src/config.sample.json deleted file mode 100644 index 886fdbcd06..0000000000 --- a/src/config.sample.json +++ /dev/null @@ -1,18 +0,0 @@ -[Subtables] - ligatures: [ - "'dlig' Discretionary Ligatures lookup 9 subtable", - "'dlig' Discretionary Ligatures lookup 11 subtable", - "'dlig' Discretionary Ligatures lookup 12 contextual 0", - "'dlig' Discretionary Ligatures lookup 12 contextual 1", - "'dlig' Discretionary Ligatures lookup 12 contextual 2", - "'dlig' Discretionary Ligatures lookup 18 subtable", - "'dlig' Discretionary Ligatures lookup 19 contextual 0", - "'dlig' Discretionary Ligatures lookup 24 contextual 0", - "'dlig' Discretionary Ligatures lookup 24 contextual 1", - "'dlig' Discretionary Ligatures lookup 24 contextual 2", - "'dlig' Discretionary Ligatures lookup 24 contextual 3", - "'dlig' Discretionary Ligatures lookup 24 contextual 4", - "'dlig' Discretionary Ligatures lookup 24 contextual 5", - "'dlig' Discretionary Ligatures lookup 26 subtable", - "'dlig' Discretionary Ligatures lookup 33 contextual 0", - "'dlig' Discretionary Ligatures lookup 33 contextual 1" ] diff --git a/src/unpatched-fonts/3270/config.cfg b/src/unpatched-fonts/3270/config.cfg index f397cae70e..31aab6217a 100644 --- a/src/unpatched-fonts/3270/config.cfg +++ b/src/unpatched-fonts/3270/config.cfg @@ -1 +1,2 @@ -config_patch_flags="--makegroups 2" +[Config] +commandline: --makegroups 2 diff --git a/src/unpatched-fonts/BitstreamVeraSansMono/config.cfg b/src/unpatched-fonts/BitstreamVeraSansMono/config.cfg index 132baa477a..8c0dc26934 100644 --- a/src/unpatched-fonts/BitstreamVeraSansMono/config.cfg +++ b/src/unpatched-fonts/BitstreamVeraSansMono/config.cfg @@ -1 +1,2 @@ -config_patch_flags="--has-no-italic" +[Config] +commandline: --has-no-italic diff --git a/src/unpatched-fonts/CascadiaCode/config.cfg b/src/unpatched-fonts/CascadiaCode/config.cfg index bf003486cd..03900dfd3f 100644 --- a/src/unpatched-fonts/CascadiaCode/config.cfg +++ b/src/unpatched-fonts/CascadiaCode/config.cfg @@ -1 +1,7 @@ -config_patch_flags="--makegroups 4" +[Config] +commandline: --makegroups 4 +[Hinting] +re_hint: [ + ".*hyphen.*\\.(liga|seq)", + ".*equal.*\\.(liga|seq)", + ".*numbersign.*\\.(liga|seq)" ] diff --git a/src/unpatched-fonts/CascadiaMono/config.cfg b/src/unpatched-fonts/CascadiaMono/config.cfg index bf003486cd..03900dfd3f 100644 --- a/src/unpatched-fonts/CascadiaMono/config.cfg +++ b/src/unpatched-fonts/CascadiaMono/config.cfg @@ -1 +1,7 @@ -config_patch_flags="--makegroups 4" +[Config] +commandline: --makegroups 4 +[Hinting] +re_hint: [ + ".*hyphen.*\\.(liga|seq)", + ".*equal.*\\.(liga|seq)", + ".*numbersign.*\\.(liga|seq)" ] diff --git a/src/unpatched-fonts/D2Coding/config.cfg b/src/unpatched-fonts/D2Coding/config.cfg index 538ce70100..776021eb30 100644 --- a/src/unpatched-fonts/D2Coding/config.cfg +++ b/src/unpatched-fonts/D2Coding/config.cfg @@ -1 +1,2 @@ -config_patch_flags="--xavgcharwidth 500" +[Config] +commandline: --xavgcharwidth 500 diff --git a/src/unpatched-fonts/DaddyTimeMono/config.cfg b/src/unpatched-fonts/DaddyTimeMono/config.cfg index fe1bf31378..24da489a0b 100644 --- a/src/unpatched-fonts/DaddyTimeMono/config.cfg +++ b/src/unpatched-fonts/DaddyTimeMono/config.cfg @@ -1 +1,2 @@ -config_patch_flags="--ext ttf" +[Config] +commandline: --ext ttf diff --git a/src/unpatched-fonts/DejaVuSansMono/config.cfg b/src/unpatched-fonts/DejaVuSansMono/config.cfg index 132baa477a..8c0dc26934 100644 --- a/src/unpatched-fonts/DejaVuSansMono/config.cfg +++ b/src/unpatched-fonts/DejaVuSansMono/config.cfg @@ -1 +1,2 @@ -config_patch_flags="--has-no-italic" +[Config] +commandline: --has-no-italic diff --git a/src/unpatched-fonts/DroidSansMono/config.cfg b/src/unpatched-fonts/DroidSansMono/config.cfg deleted file mode 100644 index 53c38882b7..0000000000 --- a/src/unpatched-fonts/DroidSansMono/config.cfg +++ /dev/null @@ -1 +0,0 @@ -config_has_powerline=1 diff --git a/src/unpatched-fonts/FantasqueSansMono/config.cfg b/src/unpatched-fonts/FantasqueSansMono/config.cfg deleted file mode 100644 index 53c38882b7..0000000000 --- a/src/unpatched-fonts/FantasqueSansMono/config.cfg +++ /dev/null @@ -1 +0,0 @@ -config_has_powerline=1 diff --git a/src/unpatched-fonts/FiraCode/config.cfg b/src/unpatched-fonts/FiraCode/config.cfg index 11945eed01..31aab6217a 100644 --- a/src/unpatched-fonts/FiraCode/config.cfg +++ b/src/unpatched-fonts/FiraCode/config.cfg @@ -1,2 +1,2 @@ -config_has_powerline=1 -config_patch_flags="--makegroups 2" +[Config] +commandline: --makegroups 2 diff --git a/src/unpatched-fonts/GeistMono/config.cfg b/src/unpatched-fonts/GeistMono/config.cfg index bf003486cd..e9dff85dc2 100644 --- a/src/unpatched-fonts/GeistMono/config.cfg +++ b/src/unpatched-fonts/GeistMono/config.cfg @@ -1 +1,2 @@ -config_patch_flags="--makegroups 4" +[Config] +commandline: --makegroups 4 diff --git a/src/unpatched-fonts/Hack/config.cfg b/src/unpatched-fonts/Hack/config.cfg deleted file mode 100644 index 53c38882b7..0000000000 --- a/src/unpatched-fonts/Hack/config.cfg +++ /dev/null @@ -1 +0,0 @@ -config_has_powerline=1 diff --git a/src/unpatched-fonts/Hasklig/config.cfg b/src/unpatched-fonts/Hasklig/config.cfg index 11945eed01..31aab6217a 100644 --- a/src/unpatched-fonts/Hasklig/config.cfg +++ b/src/unpatched-fonts/Hasklig/config.cfg @@ -1,2 +1,2 @@ -config_has_powerline=1 -config_patch_flags="--makegroups 2" +[Config] +commandline: --makegroups 2 diff --git a/src/unpatched-fonts/Hermit/config.cfg b/src/unpatched-fonts/Hermit/config.cfg deleted file mode 100644 index 53c38882b7..0000000000 --- a/src/unpatched-fonts/Hermit/config.cfg +++ /dev/null @@ -1 +0,0 @@ -config_has_powerline=1 diff --git a/src/unpatched-fonts/IBMPlexMono/config.cfg b/src/unpatched-fonts/IBMPlexMono/config.cfg deleted file mode 100644 index 19f21c8167..0000000000 --- a/src/unpatched-fonts/IBMPlexMono/config.cfg +++ /dev/null @@ -1 +0,0 @@ -#config_has_powerline=1 diff --git a/src/unpatched-fonts/IntelOneMono/config.cfg b/src/unpatched-fonts/IntelOneMono/config.cfg index bf003486cd..e9dff85dc2 100644 --- a/src/unpatched-fonts/IntelOneMono/config.cfg +++ b/src/unpatched-fonts/IntelOneMono/config.cfg @@ -1 +1,2 @@ -config_patch_flags="--makegroups 4" +[Config] +commandline: --makegroups 4 diff --git a/src/unpatched-fonts/Iosevka/config.cfg b/src/unpatched-fonts/Iosevka/config.cfg index 32c1cec77a..e9dff85dc2 100644 --- a/src/unpatched-fonts/Iosevka/config.cfg +++ b/src/unpatched-fonts/Iosevka/config.cfg @@ -1,2 +1,2 @@ -config_has_powerline=1 -config_patch_flags="--makegroups 4" +[Config] +commandline: --makegroups 4 diff --git a/src/unpatched-fonts/IosevkaTerm/config.cfg b/src/unpatched-fonts/IosevkaTerm/config.cfg index 32c1cec77a..e9dff85dc2 100644 --- a/src/unpatched-fonts/IosevkaTerm/config.cfg +++ b/src/unpatched-fonts/IosevkaTerm/config.cfg @@ -1,2 +1,2 @@ -config_has_powerline=1 -config_patch_flags="--makegroups 4" +[Config] +commandline: --makegroups 4 diff --git a/src/unpatched-fonts/IosevkaTermSlab/config.cfg b/src/unpatched-fonts/IosevkaTermSlab/config.cfg index 32c1cec77a..e9dff85dc2 100644 --- a/src/unpatched-fonts/IosevkaTermSlab/config.cfg +++ b/src/unpatched-fonts/IosevkaTermSlab/config.cfg @@ -1,2 +1,2 @@ -config_has_powerline=1 -config_patch_flags="--makegroups 4" +[Config] +commandline: --makegroups 4 diff --git a/src/unpatched-fonts/JetBrainsMono/config.cfg b/src/unpatched-fonts/JetBrainsMono/config.cfg index bf003486cd..e9dff85dc2 100644 --- a/src/unpatched-fonts/JetBrainsMono/config.cfg +++ b/src/unpatched-fonts/JetBrainsMono/config.cfg @@ -1 +1,2 @@ -config_patch_flags="--makegroups 4" +[Config] +commandline: --makegroups 4 diff --git a/src/unpatched-fonts/Lekton/config.cfg b/src/unpatched-fonts/Lekton/config.cfg new file mode 100644 index 0000000000..05bd07b119 --- /dev/null +++ b/src/unpatched-fonts/Lekton/config.cfg @@ -0,0 +1,6 @@ +[Config] +commandline: --removeligatures +[Subtables] +ligatures: [ + "'liga' Standard Ligatures in Latin lookup 6 subtable", + "'liga' Standard Ligatures in Latin lookup 5 subtable" ] diff --git a/src/unpatched-fonts/Lekton/config.json b/src/unpatched-fonts/Lekton/config.json deleted file mode 100644 index fa308418d3..0000000000 --- a/src/unpatched-fonts/Lekton/config.json +++ /dev/null @@ -1,4 +0,0 @@ -[Subtables] - ligatures: [ - "'liga' Standard Ligatures in Latin lookup 6 subtable", - "'liga' Standard Ligatures in Latin lookup 5 subtable" ] diff --git a/src/unpatched-fonts/MPlus/config.cfg b/src/unpatched-fonts/MPlus/config.cfg index f397cae70e..31aab6217a 100644 --- a/src/unpatched-fonts/MPlus/config.cfg +++ b/src/unpatched-fonts/MPlus/config.cfg @@ -1 +1,2 @@ -config_patch_flags="--makegroups 2" +[Config] +commandline: --makegroups 2 diff --git a/src/unpatched-fonts/MartianMono/config.cfg b/src/unpatched-fonts/MartianMono/config.cfg index b0539643c5..a31acd3709 100644 --- a/src/unpatched-fonts/MartianMono/config.cfg +++ b/src/unpatched-fonts/MartianMono/config.cfg @@ -1 +1,2 @@ -config_patch_flags="--name filename --makegroups 5" +[Config] +commandline: --name filename --makegroups 5 diff --git a/src/unpatched-fonts/Meslo/config.cfg b/src/unpatched-fonts/Meslo/config.cfg deleted file mode 100644 index 53c38882b7..0000000000 --- a/src/unpatched-fonts/Meslo/config.cfg +++ /dev/null @@ -1 +0,0 @@ -config_has_powerline=1 diff --git a/src/unpatched-fonts/Monaspace/config.cfg b/src/unpatched-fonts/Monaspace/config.cfg index bf003486cd..e9dff85dc2 100644 --- a/src/unpatched-fonts/Monaspace/config.cfg +++ b/src/unpatched-fonts/Monaspace/config.cfg @@ -1 +1,2 @@ -config_patch_flags="--makegroups 4" +[Config] +commandline: --makegroups 4 diff --git a/src/unpatched-fonts/Monofur/config.cfg b/src/unpatched-fonts/Monofur/config.cfg deleted file mode 100644 index 53c38882b7..0000000000 --- a/src/unpatched-fonts/Monofur/config.cfg +++ /dev/null @@ -1 +0,0 @@ -config_has_powerline=1 diff --git a/src/unpatched-fonts/NerdFontsSymbolsOnly/config.cfg b/src/unpatched-fonts/NerdFontsSymbolsOnly/config.cfg index e96c2cf4cc..367275da8a 100644 --- a/src/unpatched-fonts/NerdFontsSymbolsOnly/config.cfg +++ b/src/unpatched-fonts/NerdFontsSymbolsOnly/config.cfg @@ -1 +1,2 @@ -config_patch_flags="--ext ttf --variable-width-glyphs" +[Config] +commandline: --ext ttf --variable-width-glyphs diff --git a/src/unpatched-fonts/Noto/Sans-Mono/config.cfg b/src/unpatched-fonts/Noto/Sans-Mono/config.cfg new file mode 100644 index 0000000000..9cde43eeea --- /dev/null +++ b/src/unpatched-fonts/Noto/Sans-Mono/config.cfg @@ -0,0 +1,7 @@ +[Config] +commandline: --removeligatures --makegroups 5 +[Subtables] +ligatures: [ + "Ligature Substitution lookup 15 subtable", + "Ligature Substitution lookup 14 subtable", + "Ligature Substitution lookup 13 subtable" ] diff --git a/src/unpatched-fonts/Noto/Sans-Mono/config.json b/src/unpatched-fonts/Noto/Sans-Mono/config.json deleted file mode 100644 index c6bb0c5b8c..0000000000 --- a/src/unpatched-fonts/Noto/Sans-Mono/config.json +++ /dev/null @@ -1,5 +0,0 @@ -[Subtables] - ligatures: [ - "Ligature Substitution lookup 15 subtable", - "Ligature Substitution lookup 14 subtable", - "Ligature Substitution lookup 13 subtable" ] diff --git a/src/unpatched-fonts/Noto/Sans/config.cfg b/src/unpatched-fonts/Noto/Sans/config.cfg new file mode 100644 index 0000000000..86326b209f --- /dev/null +++ b/src/unpatched-fonts/Noto/Sans/config.cfg @@ -0,0 +1,8 @@ +[Config] +commandline: --removeligatures --makegroups 5 +[Subtables] +ligatures: [ + "'liga' Standard Ligatures lookup 41 subtable", + "Ligature Substitution lookup 15 subtable", + "Ligature Substitution lookup 14 subtable", + "Ligature Substitution lookup 13 subtable" ] diff --git a/src/unpatched-fonts/Noto/Sans/config.json b/src/unpatched-fonts/Noto/Sans/config.json deleted file mode 100644 index 74e407e0ce..0000000000 --- a/src/unpatched-fonts/Noto/Sans/config.json +++ /dev/null @@ -1,6 +0,0 @@ -[Subtables] - ligatures: [ - "'liga' Standard Ligatures lookup 41 subtable", - "Ligature Substitution lookup 15 subtable", - "Ligature Substitution lookup 14 subtable", - "Ligature Substitution lookup 13 subtable" ] diff --git a/src/unpatched-fonts/Noto/config.cfg b/src/unpatched-fonts/Noto/config.cfg index 152146fbe5..6fb60abcec 100644 --- a/src/unpatched-fonts/Noto/config.cfg +++ b/src/unpatched-fonts/Noto/config.cfg @@ -1 +1,2 @@ -config_patch_flags="--makegroups 5" +[Config] +commandline: --makegroups 5 diff --git a/src/unpatched-fonts/OpenDyslexic/config.cfg b/src/unpatched-fonts/OpenDyslexic/config.cfg new file mode 100644 index 0000000000..4d22a03ea6 --- /dev/null +++ b/src/unpatched-fonts/OpenDyslexic/config.cfg @@ -0,0 +1,8 @@ +[Config] +commandline: --removeligatures +[Subtables] +ligatures: [ + "Ligature Substitution lookup 8 subtable", + "Ligature Substitution lookup 7 subtable", + "'liga' Standard Ligature lookup 7 subtable", + "'liga' Standard Ligature lookup 4 subtable" ] diff --git a/src/unpatched-fonts/OpenDyslexic/config.json b/src/unpatched-fonts/OpenDyslexic/config.json deleted file mode 100644 index 6c2dc33885..0000000000 --- a/src/unpatched-fonts/OpenDyslexic/config.json +++ /dev/null @@ -1,6 +0,0 @@ -[Subtables] - ligatures: [ - "Ligature Substitution lookup 8 subtable", - "Ligature Substitution lookup 7 subtable", - "'liga' Standard Ligature lookup 7 subtable", - "'liga' Standard Ligature lookup 4 subtable" ] diff --git a/src/unpatched-fonts/Overpass/Mono/config.cfg b/src/unpatched-fonts/Overpass/Mono/config.cfg new file mode 100644 index 0000000000..a0401b8360 --- /dev/null +++ b/src/unpatched-fonts/Overpass/Mono/config.cfg @@ -0,0 +1,5 @@ +[Config] +commandline: --removeligatures --makegroups 2 +[Subtables] +ligatures: [ + "Ligature Substitution lookup 23 subtable" ] diff --git a/src/unpatched-fonts/Overpass/Mono/config.json b/src/unpatched-fonts/Overpass/Mono/config.json deleted file mode 100644 index 0aef5a6f56..0000000000 --- a/src/unpatched-fonts/Overpass/Mono/config.json +++ /dev/null @@ -1,3 +0,0 @@ -[Subtables] - ligatures: [ - "Ligature Substitution lookup 23 subtable" ] diff --git a/src/unpatched-fonts/Overpass/Non-Mono/config.cfg b/src/unpatched-fonts/Overpass/Non-Mono/config.cfg new file mode 100644 index 0000000000..1587f50d84 --- /dev/null +++ b/src/unpatched-fonts/Overpass/Non-Mono/config.cfg @@ -0,0 +1,6 @@ +[Config] +commandline: --removeligatures --makegroups 2 +[Subtables] +ligatures: [ + "Ligature Substitution lookup 20 subtable", + "'liga' Standard Ligatures in Latin lookup 18 subtable" ] diff --git a/src/unpatched-fonts/Overpass/Non-Mono/config.json b/src/unpatched-fonts/Overpass/Non-Mono/config.json deleted file mode 100644 index 13cd8526e2..0000000000 --- a/src/unpatched-fonts/Overpass/Non-Mono/config.json +++ /dev/null @@ -1,4 +0,0 @@ -[Subtables] - ligatures: [ - "Ligature Substitution lookup 20 subtable", - "'liga' Standard Ligatures in Latin lookup 18 subtable" ] diff --git a/src/unpatched-fonts/Overpass/config.cfg b/src/unpatched-fonts/Overpass/config.cfg deleted file mode 100644 index f397cae70e..0000000000 --- a/src/unpatched-fonts/Overpass/config.cfg +++ /dev/null @@ -1 +0,0 @@ -config_patch_flags="--makegroups 2" diff --git a/src/unpatched-fonts/RobotoMono/config.cfg b/src/unpatched-fonts/RobotoMono/config.cfg index c68e3cf15a..6a166d1646 100644 --- a/src/unpatched-fonts/RobotoMono/config.cfg +++ b/src/unpatched-fonts/RobotoMono/config.cfg @@ -1 +1,2 @@ -config_patch_flags="--makegroups 3" +[Config] +commandline: --makegroups 3 diff --git a/src/unpatched-fonts/SourceCodePro/config.cfg b/src/unpatched-fonts/SourceCodePro/config.cfg index 32c1cec77a..e9dff85dc2 100644 --- a/src/unpatched-fonts/SourceCodePro/config.cfg +++ b/src/unpatched-fonts/SourceCodePro/config.cfg @@ -1,2 +1,2 @@ -config_has_powerline=1 -config_patch_flags="--makegroups 4" +[Config] +commandline: --makegroups 4 diff --git a/src/unpatched-fonts/SpaceMono/config.cfg b/src/unpatched-fonts/SpaceMono/config.cfg new file mode 100644 index 0000000000..e5f2be3775 --- /dev/null +++ b/src/unpatched-fonts/SpaceMono/config.cfg @@ -0,0 +1,6 @@ +[Config] +commandline: --removeligatures +[Subtables] +ligatures: [ + "'liga' Standard Ligatures in Latin lookup 9 subtable", + "'liga' Standard Ligatures in Latin lookup 8 subtable" ] diff --git a/src/unpatched-fonts/SpaceMono/config.json b/src/unpatched-fonts/SpaceMono/config.json deleted file mode 100644 index f22b63e631..0000000000 --- a/src/unpatched-fonts/SpaceMono/config.json +++ /dev/null @@ -1,4 +0,0 @@ -[Subtables] - ligatures: [ - "'liga' Standard Ligatures in Latin lookup 9 subtable", - "'liga' Standard Ligatures in Latin lookup 8 subtable" ] diff --git a/src/unpatched-fonts/Ubuntu/config.cfg b/src/unpatched-fonts/Ubuntu/config.cfg index f397cae70e..880fe63f34 100644 --- a/src/unpatched-fonts/Ubuntu/config.cfg +++ b/src/unpatched-fonts/Ubuntu/config.cfg @@ -1 +1,7 @@ -config_patch_flags="--makegroups 2" +[Config] +commandline: --removeligatures --makegroups 2 +[Subtables] +ligatures: [ + "'liga' Standard Ligatures in Latin lookup 20 subtable", + "'liga' Standard Ligatures in Greek lookup 21 subtable", + "'liga' Standard Ligatures in Cyrillic lookup 22 subtable" ] diff --git a/src/unpatched-fonts/Ubuntu/config.json b/src/unpatched-fonts/Ubuntu/config.json deleted file mode 100644 index e2b3cb10a7..0000000000 --- a/src/unpatched-fonts/Ubuntu/config.json +++ /dev/null @@ -1,5 +0,0 @@ -[Subtables] - ligatures: [ - "'liga' Standard Ligatures in Latin lookup 20 subtable", - "'liga' Standard Ligatures in Greek lookup 21 subtable", - "'liga' Standard Ligatures in Cyrillic lookup 22 subtable" ] diff --git a/src/unpatched-fonts/UbuntuMono/config.cfg b/src/unpatched-fonts/UbuntuMono/config.cfg index f397cae70e..31aab6217a 100644 --- a/src/unpatched-fonts/UbuntuMono/config.cfg +++ b/src/unpatched-fonts/UbuntuMono/config.cfg @@ -1 +1,2 @@ -config_patch_flags="--makegroups 2" +[Config] +commandline: --makegroups 2 diff --git a/src/unpatched-fonts/UbuntuSans/config.cfg b/src/unpatched-fonts/UbuntuSans/config.cfg index bf003486cd..e9dff85dc2 100644 --- a/src/unpatched-fonts/UbuntuSans/config.cfg +++ b/src/unpatched-fonts/UbuntuSans/config.cfg @@ -1 +1,2 @@ -config_patch_flags="--makegroups 4" +[Config] +commandline: --makegroups 4 diff --git a/src/unpatched-fonts/VictorMono/config.cfg b/src/unpatched-fonts/VictorMono/config.cfg index bf003486cd..e9dff85dc2 100644 --- a/src/unpatched-fonts/VictorMono/config.cfg +++ b/src/unpatched-fonts/VictorMono/config.cfg @@ -1 +1,2 @@ -config_patch_flags="--makegroups 4" +[Config] +commandline: --makegroups 4 diff --git a/src/unpatched-fonts/ZedMono/Extended/config.cfg b/src/unpatched-fonts/ZedMono/Extended/config.cfg index 152146fbe5..6fb60abcec 100644 --- a/src/unpatched-fonts/ZedMono/Extended/config.cfg +++ b/src/unpatched-fonts/ZedMono/Extended/config.cfg @@ -1 +1,2 @@ -config_patch_flags="--makegroups 5" +[Config] +commandline: --makegroups 5 diff --git a/src/unpatched-fonts/ZedMono/Normal/config.cfg b/src/unpatched-fonts/ZedMono/Normal/config.cfg index bf003486cd..e9dff85dc2 100644 --- a/src/unpatched-fonts/ZedMono/Normal/config.cfg +++ b/src/unpatched-fonts/ZedMono/Normal/config.cfg @@ -1 +1,2 @@ -config_patch_flags="--makegroups 4" +[Config] +commandline: --makegroups 4