{"id":15033932,"url":"https://github.com/toxicfrog/ligaturizer","last_synced_at":"2025-05-15T11:05:53.151Z","repository":{"id":41045343,"uuid":"99652984","full_name":"ToxicFrog/Ligaturizer","owner":"ToxicFrog","description":"Programming Fonts with Ligatures added (\u0026 a script to add them to other fonts)","archived":false,"fork":false,"pushed_at":"2023-06-13T23:34:04.000Z","size":16849,"stargazers_count":2265,"open_issues_count":26,"forks_count":117,"subscribers_count":34,"default_branch":"master","last_synced_at":"2025-04-14T19:57:06.616Z","etag":null,"topics":["coding-fonts","font","font-ligatures","ligatures","monospace-font","programming-font","programming-fonts"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ToxicFrog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-08-08T05:19:28.000Z","updated_at":"2025-04-14T19:35:12.000Z","dependencies_parsed_at":"2023-10-21T00:45:17.539Z","dependency_job_id":null,"html_url":"https://github.com/ToxicFrog/Ligaturizer","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ToxicFrog%2FLigaturizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ToxicFrog%2FLigaturizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ToxicFrog%2FLigaturizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ToxicFrog%2FLigaturizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ToxicFrog","download_url":"https://codeload.github.com/ToxicFrog/Ligaturizer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254328385,"owners_count":22052632,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coding-fonts","font","font-ligatures","ligatures","monospace-font","programming-font","programming-fonts"],"created_at":"2024-09-24T20:23:16.295Z","updated_at":"2025-05-15T11:05:53.132Z","avatar_url":"https://github.com/ToxicFrog.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ligaturizer #\n\n![](images/banner.png)\n\n**Add ligatures to any coding font!**\n\nThis script copies the ligatures (glyphs and rendering information) from [Fira Code](https://github.com/tonsky/FiraCode) into any other TrueType or OpenType font. (Note that the ligatures are scale-corrected, but otherwise copied as is from Fira Code; it doesn't create new ligature graphics based on the font you're modifying.)\n\nThis repo contains a [Fontforge python script](ligaturize.py) that you can use to add the Fira Code ligatures to any font, as well as submodules for some popular coding fonts and [another script](build.py) for ligaturizing all of them at once.\n\nPre-ligaturized versions are available under [releases](https://github.com/ToxicFrog/Ligaturizer/releases).\n\nHere's a couple examples of the fonts generated: SF Mono \u0026 Menlo with ligatures (note the `!=` and `-\u003e`):\n![](images/sf-mono.png)\n![](images/menlo.png)\n\n## Requirements ##\n**This Repo**: You'll need the repo and its submodules, so `git clone` with `--recurse-submodules`.\n\n**Using the Fonts**: See the [FiraCode README](https://github.com/tonsky/FiraCode) for a list of supported editors.\n\n**Script**: This script requires FontForge python bindings. For Debian/Ubuntu they are available in `python-fontforge` package. For OpenSUSE and NixOS, they are included in the `fontforge` package. For macOS, they are available via brew (`brew install fontforge`).\n\n## Using the Script ##\n### Automatic ###\n\nUse automatic mode to easily convert 1 or more font(s).\n\n1.  Put the font(s) you want into `fonts/`.\n1.  Edit `ligatures.py` to disable any ligatures you don't want, and/or enable any (non-ligature) characters you want from Fira Code in addition to the ligatures.\n1.  Edit `build.py` to add your new font(s) to the `prefixed_fonts` list. It supports globbing, so if (e.g.) you want to ligaturize all the different weights of FooFont you can add `'FooFont*'` to the list.\n1.  Run `make`.\n1.  Retrieve the ligaturized fonts from `fonts/output/`.\n1.  The output fonts will be renamed with the prefix \"Liga\".\n\n### Manual ###\n\n1.  Move/copy the font you want to ligaturize into `fonts/` (or somewhere else convenient).\n1.  Edit `ligatures.py` to disable any ligatures you don't want.\n1.  Run the script:\n\n    ```\n    $ fontforge -lang py -script ligaturize.py path/to/input/font.ttf\n        --output-dir=path/to/output/dir/ \\\n        --output-name='Name of Ligaturized Font'\n    ```\n    e.g.\n\n    ```\n    $ fontforge -lang py -script ligaturize.py fonts/Cousine-Regular.ttf\n        --output-dir='fonts/output/' \\\n        --output-name='Ligaturized Cousine'\n    ```\n\n    Which will produce `fonts/output/LigaturizedCousine-Regular.ttf`.\n\nThe font weight will be inherited from the original file; the font name will be replaced with whatever you specified in `--output-name`. You can also use `--prefix` instead, in which case the original name will be preserved and whatever you put in `--prefix` will be prepended to it.\n\n`ligatures.py` supports some additional command line options to (e.g.) change which font ligatures are copied from or enable copying of individual character glyphs; run `fontforge -lang=py ligaturize.py --help` to list them.\n\n## Misc. ##\n### Credit ###\nThis script was originally written by [IlyaSkriblovsky](https://github.com/IlyaSkriblovsky) for adding ligatures to DejaVuSans Mono ([dv-code-font](https://github.com/IlyaSkriblovsky/dv-code-font)). [Navid Rojiani](https://github.com/rojiani) made a few changes to generalize the script so that it works for any font. [ToxicFrog](https://github.com/ToxicFrog) has made a large number of contributions.\n\n### Contributions ###\nContributions always welcome! Please submit a Pull Request, or create an Issue if you have an idea for a feature/enhancement (or bug).\n\n### Related Projects ###\nFor more awesome programming fonts with ligatures, check out:\n1. [FiraCode](https://github.com/tonsky/FiraCode)\n2. [Hasklig](https://github.com/i-tu/Hasklig)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoxicfrog%2Fligaturizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftoxicfrog%2Fligaturizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoxicfrog%2Fligaturizer/lists"}