GPL-3.0-or-later licensed and maintained by Jens Petersen
This version can be pinned in stack with:fontwhich-0.3@sha256:a9a667622eea8d63c2b52b5bcd1f6bfa71740aecbda188fd822ba00181834332,2216

Module documentation for 0.3

There are no documented modules for this package.

Fontwhich

Fontwhich is a small CLI tool that uses pango to show which default fonts are used to render some text.

It should work on any Linux distro with the Cairo and Pango libraries: it requires the fonts to be available but not a graphical session.

Usage

$ fontwhich --version

0.3

$ fontwhich --help

fontwhich

Usage: fontwhich [--version] [-f|--font FONT] [-b|--utf8] [-u|--unicode]
                 [-s|--sample-text]
                 (--list-langs | (-l|--lang LANG) | --all-langs | TEXT)

  Describes the fonts used to render text with pango
  https://github.com/juhp/fontwhich#readme

Available options:
  -h,--help                Show this help text
  --version                Show version
  -f,--font FONT           Base font [default: Sans]
  -b,--utf8                Output UTF-8 hex codes
  -u,--unicode             Output Unicode data
  -s,--sample-text         Use Pango sample text for language
  --list-langs             List language orthography
  -l,--lang LANG           Language code
  --all-langs              Output all orth languages

$ fontwhich Hello 🌍 World 世界

'Hello ' : Noto Sans
'🌍' : Noto Color Emoji
' World ' : Noto Sans
'世界' : Noto Sans CJK JP

$ fontwhich -f Serif "世界こんにちは😀"

'世界' : Noto Serif CJK JP
'こんにちは' : Noto Serif CJK JP
'😀' : Noto Color Emoji

$ fontwhich -l ja

Primary Sans font for 'ja': "Noto Sans CJK JP"

$ fontwhich --utf8 🌳

4 bytes;
'🌳' [f0 9f 8c b3] : Noto Color Emoji

$ fontwhich --unicode αβ१२

10 bytes; 2 pango items
'αβ' : Noto Sans
α <U+03B1>: GREEK SMALL LETTER ALPHA [Greek]
β <U+03B2>: GREEK SMALL LETTER BETA [Greek]
'१२' : Noto Sans Devanagari
१ <U+0967>: DEVANAGARI DIGIT ONE [Devanagari]
२ <U+0968>: DEVANAGARI DIGIT TWO [Devanagari]

One can use both options together:

$ fontwhich --utf8 🌸 --unicode

4 bytes;
'🌸' [f0 9f 8c b8] : Noto Color Emoji
🌸 <U+1F338>: CHERRY BLOSSOM [Common]

Building and installation

On Fedora, install system deps with cabal-rpm builddep.

C library dependencies:

  • Fedora: cairo-gobject-devel gobject-introspection-devel pango-devel
  • Ubuntu: libcairo2-dev libgirepository1.0-dev libpango1.0-dev

Then:

$ cabal install

or

$ stack install

There is a copr repo: https://copr.fedorainfracloud.org/coprs/petersen/fontwhich/

Misc

Initial code assisted with Gemini 3.1.

The tool is related conceptually to the C project https://github.com/sudipshil9862/whichfont.

“fontwhich” as in “sandwich” but with fonts.

Collaborate

The code is distributed under GPLv3+.

Repository: https://github.com/juhp/fontwhich

Changes

fontwhich releases

0.3 (2026-03-27)

  • improve no coverage logic
  • when no font output –unicode data
  • for –language check that primary font has coverage
  • check normalized lang is in fontconfig orth list
  • new pango –sample-text option with –language
  • add –list-langs option to list all fc orths
  • add –all-langs which iterates over all orth langs

0.2.1 (2026-03-26)

  • check and warn about characters without font coverage
  • output base font name when no text given

0.2 (2026-03-12)

  • add –unicode for unicode data output (uses unicode-data)
  • rename –hex to –utf8 (for hex bytes)
  • show number of pango items with –utf8 or –unicode
  • only print number of bytes with –utf8 or –unicode

0.1.0 (2026-02-27)

  • initial release with –font –lang and –hex