Skip to content

hunterhogan/Integrated_code_fire_font

Repository files navigation

Integrated Code 火

Integrated Code 火 ➡ ➡ is a monospaced programming font ➡ ➡ plus ⬇
Integrated Code 火 日本 日本語スクリプトを備えた等幅プログラミング フォント。 Japanese.
Integrated Code 火 한국인 한글과 한자를 포함하는 고정폭 프로그래밍 폰트. Korean.
Integrated Code 火 简化字 一款采用简体中文字符的等宽编程字体。 simplified Chinese.
Integrated Code 火 台灣 一款包含繁體中文字元的等寬程式設計字型。 traditional Chinese.
Integrated Code 火 香港 一個等間隔嘅編程字體, 有傳統嘅粵語字。 Cantonese.

Download 下载 다운로드 ダウンロード 下載 Integrated Code 火

Download fonts from "Releases", not the repository source code.
請從 "Releases" / 發行版本 下載字型, 而非儲存庫的原始碼。
"Releases" / 릴리스 에서 글꼴을 다운로드하십시오. 저장소 소스 코드가 아닙니다.
フォントはリポジトリのソースコードではなく、"Releases" / リリース からダウンロードしてください。
请从 "Releases" / 发布 下载字体, 而非仓库源代码。
請喺 "Releases" / 發佈版本 度下載字體, 唔好喺 原始碼 倉庫度攞。

Font genealogy

"Fira" "Source" "Source Han" "Noto"
Fira Mono Source Sans Source Han Sans Noto Sans CJK
Fira Code Source Code Pro Source Han Code JP Noto Sans Mono CJK
Fira Code HH Source Han Mono
              ↘                          ↙
                    Integrated Code 火

Some other programming fonts

With Chinese, Japanese, and/or Korean glyphs

With only Western glyphs

  • Fira Code is my favorite code-centric font.
  • As of 2026 March 3, the last compiled version was released on 2021 December 6, and I have more recently compiled versions in my fork of Fira Code.

The future?

  1. You contribute to the project?
  2. Improve non-English text.
  3. Improve configuration management.
  4. Improve and generalize flow.
  5. Weights:
    1. Fira Code has six different weights.
    2. Source Han Mono has seven different weights.
    3. Monospaced Noto Sans CJK has two different weights.
    4. Replace English-language weight names with weight values. "Regular", for example, may become "400". Or maybe this would break something I don't understand.
  6. Glyphs:
    1. Noto Sans CJK may have updated and/or new glyphs.
    2. Source Han Code JP likely has updated and new glyphs.
    3. GB 18030-2022 defines new simplified Chinese glyphs. I suspect some of them are in Noto Sans CJK.
    4. Investigate: Adobe-Manga1-0 Character Collection.
    5. Investigate: can adobe-type-tools / CMap-resources help find updated and/or new glyphs?
  7. Reduce font file size.
  8. Formats:
    1. ❓.otf
    2. ❓variable font
    3. ❓.woff2
    4. ❓Keep .ttc
    5. ❓abc
    6. ❓CMap
    7. ❓abbr.
    8. ❓cmap
    9. ❓wolf9
  9. Create a pan-CJK variant.
  10. Spacing:
    1. ❓Eliminate all full width spaces?
    2. In "words" with mixed Latin and CJK, shift the CJK towards the Latin.

Working with the files in the repository

The repository is optimized to work with Visual Studio Code, but that is not required.

  1. Clone or fork the repository. (Visual Studio Code instructions.)

  2. You may need to clone Fira Code and/or Source Han Mono.

  3. Install the Python packages in a virtual environment with "uv"; from the folder with the repository, run:

    uv sync

Tips to make life easier

  1. In the names of files and fonts, don't use separators: - (hyphen), – (en dash), — (em dash), or similar characters. For some readers, they can be ambiguous due to 一, which is an ideograph representing "1".
  2. When preparing font files, only make changes in the "workbench" directory. Never change files in directories with glyph or metadata information unless you intend the change to be permanent and universal.

Comparison of weight names

Integrated Code 火 Fira Code Source Han Mono
- - ExtraLight
Light Light Light
Regular Regular Regular
Retina Retina Normal
Medium Medium Medium
SemiBold SemiBold Bold
Bold Bold Heavy

Compile the font files

  1. All global settings ought to be in "src\Integrated_Code_Fire_theSSOT.py".
  2. Some actions need a local copy of Fira Code. If so, clone Fira Code.
  3. Some actions need a local copy of Source Han Mono. If so, clone Source Han Mono.
  4. To generate new character subset files for all locale and style combinations, run archivist.py.
  5. To create new scaled TTF files or to create scaled OTF files of Fira Code, run chopShop.prepareGlyphs() with the appropriate arguments.
  6. To create new subset TTF files of Source Han Mono, go to chopShop.py and have fun with that mess!
  7. To merge the scaled Fira Code files and the subset Source Han Mono files, run go.py.

Notes in case I run out of sfnt IDs

  • Enclosed CJK Letters and Months, 0x3200-32FE, Keep 0x32FF
  • filterfalse(between吗(0x3300, 0x33FF)
  • filterfalse(between吗(0xFB00, 0xFB4F)
  • filterfalse(between吗(0xFE10, 0xFE4F)

Legal stuff

SIL Open Font License CC-BY-NC-4.0

Commentary

  • Adobe writing "and/or" in their trademark notice is stupid.
  • The Mozilla Corporation has probably abandoned the Fira Mono trademark.

My recovery

Static Badge YouTube Channel Subscribers