{"id":15025879,"url":"https://github.com/ysc3839/fontmod","last_synced_at":"2025-05-16T15:09:43.750Z","repository":{"id":53751831,"uuid":"66908937","full_name":"ysc3839/FontMod","owner":"ysc3839","description":"Simple hook tool to change Win32 program font.","archived":false,"fork":false,"pushed_at":"2021-08-09T06:21:28.000Z","size":254,"stargazers_count":1315,"open_issues_count":10,"forks_count":61,"subscribers_count":20,"default_branch":"main","last_synced_at":"2025-05-12T04:41:58.689Z","etag":null,"topics":["arm","arm64","dll-hijack","dll-hijacking","gdi","gdiplus","hook","hooks","windows"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ysc3839.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}},"created_at":"2016-08-30T05:18:12.000Z","updated_at":"2025-05-11T03:37:35.000Z","dependencies_parsed_at":"2022-08-31T12:03:40.427Z","dependency_job_id":null,"html_url":"https://github.com/ysc3839/FontMod","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysc3839%2FFontMod","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysc3839%2FFontMod/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysc3839%2FFontMod/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysc3839%2FFontMod/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ysc3839","download_url":"https://codeload.github.com/ysc3839/FontMod/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254553959,"owners_count":22090417,"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":["arm","arm64","dll-hijack","dll-hijacking","gdi","gdiplus","hook","hooks","windows"],"created_at":"2024-09-24T20:03:14.209Z","updated_at":"2025-05-16T15:09:38.743Z","avatar_url":"https://github.com/ysc3839.png","language":"C++","readme":"# FontMod\n**English** [简体中文](README.zh_CN.md) [繁体中文](README.zh_TW.md)\n\nSimple hook tool to change Win32 program font. Works with some GDI/GDI+ or Qt based program.\n\n\u003e Proven workable on [Telegram Desktop](https://desktop.telegram.org/), [Kleopatra (Gpg4Win)](https://www.gpg4win.org/) and [Mendeley Desktop](https://www.mendeley.com/download-desktop/).\n\n# Usage\n[Download](https://github.com/ysc3839/FontMod/releases) `FontMod{32,64,ARM,ARM64}.dll` and rename to one of following:  \n`dinput8.dll`, `dinput.dll`, `dsound.dll`, `d3d9.dll`, `d3d11.dll`, `ddraw.dll`, `winmm.dll`, `version.dll`, `d3d8.dll` (`d3d8.dll` is 32bit only).  \nThen put in the folder of program exe.  \nUser font: Put fonts in `fonts` folder to use them directly, don't need to install to system.\n\n# Config file\nWill create `FontMod.yaml` on first run. Config file uses UTF-8 encoding. Support UTF-8 BOM.\n```yaml\nstyle: \u0026style\n# Remove '#' to override font style\n#  size: 0\n#  width: 0\n#  weight: 0\n#  italic: false\n#  underLine: false\n#  strikeOut: false\n#  charSet: 0\n#  outPrecision: 0\n#  clipPrecision: 0\n#  quality: 0\n#  pitchAndFamily: 0\n\nfonts:\n  SimSun: \u0026zh-cn-font # Chinese (Simplified) fallback font\n    replace: Microsoft YaHei\n    \u003c\u003c: *style\n  PMingLiU: # Chinese (Traditional) fallback font\n    replace: Microsoft JhengHei UI\n    \u003c\u003c: *style\n  MS UI Gothic: # Japanese fallback font\n    replace: Yu Gothic UI\n    \u003c\u003c: *style\n  Gulim: # Korean fallback font\n    replace: 맑은 고딕\n    \u003c\u003c: *style\n\n#fixGSOFont: true # true is to use system UI font\n#fixGSOFont: *zh-cn-font # Or replace with user defined font\n\n#gdiplus:\n#  SimSun:\n#    replace: Microsoft YaHei\n#  Microsoft YaHei:\n#    size: 72.0\n#    style: regular\n##    style: 0\n#    unit: point\n##    unit: 3\n\n#gdipGFFSansSerif: Calibri\n#gdipGFFSerif: Times New Roman\n#gdipGFFMonospace: Consolas\n\ndebug: false\n```\n* fonts\n  * `key (\"SimSun\")`: Font name to modify.\n  * `replace` / `name`: Font name to replace.\n  * `size` `width` `weight` `italic` `underLine` `strikeOut` `charSet` `outPrecision` `clipPrecision` `quality` `pitchAndFamily`: Override original font style. Please refer to [MSDN docs](https://docs.microsoft.com/en-us/windows/desktop/api/wingdi/ns-wingdi-logfontw). If you don't want to override, delete these items.\n\n* fixGSOFont\nReplace [GetStockObject](https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-getsyscolorbrush) font, the options is same as `fonts` above. If set to `true` will use [SystemParametersInfo](https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-systemparametersinfow#spi_getnonclientmetrics) to get system font.\n\n* gdiplus\nReplace GDI+ font. Due to limitation of GDI+, you can only replace a font with another (`SimSun` -\u003e `Microsoft YaHei`), or change the style of a font.\n  * `key (\"SimSun\")`: Font name to modify.\n  * `replace` / `name`: Font name to replace.\n  * `size`: Font size.\n  * `style`: Font style. Possible values are: `regular` `bold` `italic` `boldItalic` `underline` `strikeout`. Or you can just write integer value of [FontStyle enumeration](https://docs.microsoft.com/en-us/windows/win32/api/gdiplusenums/ne-gdiplusenums-fontstyle).\n  * `unit`: Unit of size. Possible values are: `world` `display` `pixel` `point` `inch` `document` `millimeter`. Or you can just write integer value of [Unit enumeration](https://docs.microsoft.com/en-us/windows/win32/api/gdiplusenums/ne-gdiplusenums-unit).\n\n* gdipGFFSansSerif, gdipGFFSerif, gdipGFFMonospace\nReplace GDI+ generic font family. (https://docs.microsoft.com/en-us/windows/win32/gdiplus/-gdiplus-fontfamily-flat)\n\n* debug\nDebug mode (Will log information to FontMod.log).\n\n\u003e YAML supports `anchors(\u0026)` and `references (*)` (Please refer to [Wikipedia](https://en.wikipedia.org/wiki/YAML#Advanced_components)), this tool also supports not mandatory [Merge Key](https://yaml.org/type/merge.html) function in YAML spec. You can reuse data like config file above, and don't need to copy multiple times like JSON.\n\n\u003e If you want replace only CJK fonts and keep English font, you need to set `key` to CJK fallback font. This font may be different in different language environments. (For example in Chinese simplified environment is SimSun), you can use debug mode to find corresponding font.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fysc3839%2Ffontmod","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fysc3839%2Ffontmod","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fysc3839%2Ffontmod/lists"}