#font #character #cli #utilities

app fontfor

find fonts which can show a specified character and preview them in terminal or browser

9 releases

✓ Uses Rust 2018 edition

0.3.1 May 22, 2020
0.3.0 May 20, 2020
0.2.2 Apr 18, 2020
0.2.1 Feb 4, 2020
0.1.3 Jan 18, 2020

#81 in Command line utilities

Download history 31/week @ 2020-02-07 20/week @ 2020-02-14 18/week @ 2020-02-21 30/week @ 2020-02-28 14/week @ 2020-03-06 8/week @ 2020-03-13 34/week @ 2020-03-20 14/week @ 2020-03-27 1/week @ 2020-04-03 30/week @ 2020-04-10 32/week @ 2020-04-17 8/week @ 2020-04-24 13/week @ 2020-05-01 13/week @ 2020-05-15 34/week @ 2020-05-22

70 downloads per month

GPL-3.0-or-later

95KB
2K SLoC

Ruby HTML 2K SLoC // 0.2% comments Java 20 SLoC

FontFor

license-badge version-badge ci-badge

Find fonts which can show a specified character and preview them in browser.

This is port from my early python script called which_fonts_support, but with some improvements:

  • Write in Rust, safe and faster
  • Use Fontconfig library instead of depends on fc-list command installed
  • Support preview in shell (powered by FreeType), no browser needed

Dependencies

This program needs Fontconfig and FreeType library to run, and some of their deps needs cmake to compile, so we need to install them before compile:

  • macOS: brew install cmake freetype fontconfig
  • Linux: Please refer to the docs of your Linux distribution to figure out how to install them
  • Win: Do not support Windows for now

Install or Update

cargo install -f fontfor

Usage

Basic

$ fontfor א
Font(s) support the character "א"(U+05D0, 1488, 0xD7 0x90):
Arial                       with 4 styles
Arial Hebrew                with 3 styles
Arial Hebrew Desk Interface with 3 styles
Arial Hebrew Scholar        with 3 styles
Arial Unicode MS            with 1 style
Corsiva Hebrew              with 2 styles
Courier New                 with 4 styles
DejaVu Sans                 with 8 styles
FreeMono                    with 4 styles
FreeSans                    with 4 styles
FreeSerif                   with 4 styles
HanaMinA                    with 1 style
LastResort                  with 1 style
Lucida Grande               with 2 styles
Microsoft Sans Serif        with 1 style
New Peninim MT              with 4 styles
Raanana                     with 2 styles
TW-Kai                      with 1 style
TW-Sung                     with 1 style
Tahoma                      with 2 styles
Times New Roman             with 4 styles

Character Input Format

You can use the following formats for the character:

  • Character: א
  • Unicode scalar value
    • U+XXXXXX: U+5d0, U+05d0, U+0005d0
    • Direct input
      • Dec format: 1488
      • Oct format: 0o2720
      • Binary format: 0b010111010000
  • UTF8 bytes: 0xd790

Show All Font Styles

add -v flag to show all font style.

We don't show screenshot picture here because it's a bit long.

Preview in Browser

Add -p flag to enable browser preview:

browser-preview-screenshot

Preview in Shell

Add -t flag to enter tui mode for preview in shell:

tui-mono-mode

And you can change render mode to ASCII(10 Level):

tui-ascii-10-mode

ASCII(70 Level):

tui-ascii-70-mode

Or moon-render mode:

tui-moon-mode

LICENSE

GPLv3 or later.

See COPYING.

Dependencies

~13MB
~268K SLoC