Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Builtin fonts for special glyphs (nerd fonts / powerline) and emoji (Noto?) #170

Open
christianparpart opened this issue Feb 23, 2021 · 1 comment
Labels
enhancement New feature or request fonts font rasterization and text shaping API and platform implementations frontend Contour Terminal Emulator (GUI frontend) VT: rasterizer Rendering of the terminal into a pixmap using `terminal_renderer` library
Milestone

Comments

@christianparpart
Copy link
Member

christianparpart commented Feb 23, 2021

Some terminals do provide builtin support for certain glyphs, most notably pwerline fonts and some for Noto Color Emoji.

I think this is good for making providing an easy fallback for users that haven't these glyphs installed or properly configured.

Powerline codepoints

Uses U+E0A0–U+E0A2 and U+E0B0–U+E0B3 for extra box-drawing characters.
That can be perfectly implemented in the existing box drawing implementation.

NerdFont codepoints

Implementation notes

  • we could do it similar to libunicode, fetching the UCD.zip, downloading the font file ZIPs during configure stage
  • embed the files using Qt's RCC
  • have them as fallback (manually appended), such that user preferred versions will always be favored, and the embedded ones are only used if the host configuration does not provide them
@christianparpart christianparpart added enhancement New feature or request frontend Contour Terminal Emulator (GUI frontend) labels Feb 23, 2021
@whisperity
Copy link
Member

One of my conceal characters is for template, which Konsole rendered as ⛏e, whereas in Contour it becomes a "box". But the font-fallback is at least querying a lot of things.

When rendering the following line to the standard output:

syntax keyword cppStructure template conceal cchar=

in Konsole and Contour, respectively:

Screenshot_20210226_122129
Screenshot_20210226_122118

this is the output:

, seq:, seqEmpty?:true, key:0x1000004, mod:0x0, keySeq[0]:0
[terminal/Terminal.cpp:123:send] char: 0x000D ()
[terminal/Terminal.cpp:334:flushInput] \r
[text_shaper/open_shaper.cpp:673:shape] Shaping codepoints: U+73 U+79 U+6e U+74 U+61 U+78
        Using font: key=0, path="/usr/local/share/fonts/j/JetBrainsMono-Regular.ttf"
[terminal_renderer/TextRenderer.cpp:251:shapeRun] Shaped codepoints: syntax  (presentation: text/Text) (U+0073 U+0079 U+006E U+0074 U+0061 U+0078)
        with metrics: (312+0+0) (351+0+0) (272+0+0) (320+0+0) (180+0+0) (350+0+0)
[text_shaper/open_shaper.cpp:673:shape] Shaping codepoints: U+6b U+65 U+79 U+77 U+6f U+72 U+64
        Using font: key=0, path="/usr/local/share/fonts/j/JetBrainsMono-Regular.ttf"
[terminal_renderer/TextRenderer.cpp:251:shapeRun] Shaped codepoints: keyword  (presentation: text/Text) (U+006B U+0065 U+0079 U+0077 U+006F U+0072 U+0064)
        with metrics: (262+0+0) (216+0+0) (351+0+0) (345+0+0) (279+0+0) (308+0+0) (212+0+0)
[text_shaper/open_shaper.cpp:673:shape] Shaping codepoints: U+63 U+70 U+70 U+53 U+74 U+72 U+75 U+63 U+74 U+75 U+72 U+65
        Using font: key=0, path="/usr/local/share/fonts/j/JetBrainsMono-Regular.ttf"
[terminal_renderer/TextRenderer.cpp:251:shapeRun] Shaped codepoints: cppStructure  (presentation: text/Text) (U+0063 U+0070 U+0070 U+0053 U+0074 U+0072 U+0075 U+0063 U+0074 U+0075 U+0072 U+0065)
        with metrics: (206+0+0) (305+0+0) (305+0+0) (128+0+0) (320+0+0) (308+0+0) (325+0+0) (206+0+0) (320+0+0) (325+0+0) (308+0+0) (216+0+0)
[text_shaper/open_shaper.cpp:673:shape] Shaping codepoints: U+74 U+65 U+6d U+70 U+6c U+61 U+74 U+65
        Using font: key=0, path="/usr/local/share/fonts/j/JetBrainsMono-Regular.ttf"
[terminal_renderer/TextRenderer.cpp:251:shapeRun] Shaped codepoints: template  (presentation: text/Text) (U+0074 U+0065 U+006D U+0070 U+006C U+0061 U+0074 U+0065)
        with metrics: (320+0+0) (216+0+0) (271+0+0) (305+0+0) (265+0+0) (180+0+0) (320+0+0) (216+0+0)
[text_shaper/open_shaper.cpp:673:shape] Shaping codepoints: U+63 U+6f U+6e U+63 U+65 U+61 U+6c
        Using font: key=0, path="/usr/local/share/fonts/j/JetBrainsMono-Regular.ttf"
[terminal_renderer/TextRenderer.cpp:251:shapeRun] Shaped codepoints: conceal  (presentation: text/Text) (U+0063 U+006F U+006E U+0063 U+0065 U+0061 U+006C)
        with metrics: (206+0+0) (279+0+0) (272+0+0) (206+0+0) (216+0+0) (180+0+0) (265+0+0)
[text_shaper/open_shaper.cpp:673:shape] Shaping codepoints: U+63 U+63 U+68 U+61 U+72 U+3d U+26cf
        Using font: key=0, path="/usr/local/share/fonts/j/JetBrainsMono-Regular.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=2, path="/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=3, path="/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=4, path="/usr/share/fonts/truetype/dejavu/DejaVuSans-Oblique.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=5, path="/usr/share/fonts/truetype/dejavu/DejaVuSans-BoldOblique.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=6, path="/usr/share/fonts/type1/gsfonts/n019003l.pfb"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=7, path="/usr/share/fonts/truetype/tlwg/Loma.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=8, path="/usr/share/fonts/truetype/tlwg/Waree.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=9, path="/usr/share/fonts/truetype/tlwg/Laksaman.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=10, path="/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=11, path="/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=12, path="/usr/share/fonts/truetype/ttf-khmeros-core/KhmerOS.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=13, path="/usr/share/fonts/truetype/fonts-beng-extra/MuktiNarrow.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=14, path="/usr/share/fonts/truetype/fonts-gujr-extra/padmaa-Medium-0.5.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=15, path="/usr/share/fonts/truetype/fonts-gujr-extra/padmaa.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=16, path="/usr/share/fonts/truetype/fonts-gujr-extra/padmaa-Bold.1.1.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=17, path="/usr/share/fonts/truetype/lohit-bengali/Lohit-Bengali.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=18, path="/usr/share/fonts/truetype/lohit-gujarati/Lohit-Gujarati.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=19, path="/usr/share/fonts/truetype/lohit-tamil/Lohit-Tamil.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=20, path="/usr/share/fonts/truetype/malayalam/Meera.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=21, path="/usr/share/fonts/truetype/lohit-kannada/Lohit-Kannada.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=22, path="/usr/share/fonts/truetype/lohit-telugu/Lohit-Telugu.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=23, path="/usr/share/fonts/truetype/sinhala/lklug.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=24, path="/usr/share/fonts/truetype/freefont/FreeSans.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=25, path="/usr/share/fonts/truetype/freefont/FreeMono.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=26, path="/usr/share/fonts/truetype/freefont/FreeSerif.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=27, path="/usr/share/fonts/truetype/openoffice/opens___.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=28, path="/usr/share/fonts/truetype/tlwg/Norasi.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=29, path="/usr/share/fonts/truetype/kacst-one/KacstOne.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=30, path="/usr/share/fonts/opentype/font-awesome/FontAwesome.otf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=31, path="/usr/share/fonts/truetype/hack/Hack-Regular.ttf" size=14.0pt dpi=(96, 96) (22, 11, 18, -4, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=31, path="/usr/share/fonts/truetype/hack/Hack-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=32, path="/usr/share/fonts/truetype/padauk/Padauk-Regular.ttf" size=14.0pt dpi=(96, 96) (28, 0, 19, -9, -10, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=32, path="/usr/share/fonts/truetype/padauk/Padauk-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=33, path="/usr/share/fonts/truetype/lohit-devanagari/Lohit-Devanagari.ttf" size=14.0pt dpi=(96, 96) (35, 20, 21, -9, -7, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=33, path="/usr/share/fonts/truetype/lohit-devanagari/Lohit-Devanagari.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=34, path="/usr/share/fonts/truetype/dejavu/DejaVuMathTeXGyre.ttf" size=14.0pt dpi=(96, 96) (23, 7, 15, -3, -3, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=34, path="/usr/share/fonts/truetype/dejavu/DejaVuMathTeXGyre.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=35, path="/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf" size=14.0pt dpi=(96, 96) (22, 11, 18, -4, -1, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=35, path="/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=36, path="/usr/share/fonts/truetype/dejavu/DejaVuSerif.ttf" size=14.0pt dpi=(96, 96) (22, 11, 18, -4, -1, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=36, path="/usr/share/fonts/truetype/dejavu/DejaVuSerif.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=37, path="/usr/share/fonts/truetype/noto/NotoSansArmenian-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=37, path="/usr/share/fonts/truetype/noto/NotoSansArmenian-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=38, path="/usr/share/fonts/truetype/lato/Lato-Regular.ttf" size=14.0pt dpi=(96, 96) (23, 10, 19, -3, -1, 2)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=38, path="/usr/share/fonts/truetype/lato/Lato-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=39, path="/usr/share/fonts/truetype/tlwg/Sawasdee.ttf" size=14.0pt dpi=(96, 96) (31, 7, 22, -6, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=39, path="/usr/share/fonts/truetype/tlwg/Sawasdee.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=40, path="/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=40, path="/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=41, path="/usr/share/fonts/truetype/noto/NotoSerif-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=41, path="/usr/share/fonts/truetype/noto/NotoSerif-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=42, path="/usr/share/fonts/truetype/noto/NotoSansAdlam-Regular.ttf" size=14.0pt dpi=(96, 96) (22, 11, 18, -3, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=42, path="/usr/share/fonts/truetype/noto/NotoSansAdlam-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=43, path="/usr/share/fonts/truetype/noto/NotoSansAnatolianHieroglyphs-Regular.ttf" size=14.0pt dpi=(96, 96) (27, 11, 22, -4, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=43, path="/usr/share/fonts/truetype/noto/NotoSansAnatolianHieroglyphs-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=44, path="/usr/share/fonts/truetype/noto/NotoSansArabic-Regular.ttf" size=14.0pt dpi=(96, 96) (40, 11, 26, -13, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=44, path="/usr/share/fonts/truetype/noto/NotoSansArabic-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=45, path="/usr/share/fonts/truetype/noto/NotoSansAvestan-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=45, path="/usr/share/fonts/truetype/noto/NotoSansAvestan-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=46, path="/usr/share/fonts/truetype/noto/NotoSansBamum-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=46, path="/usr/share/fonts/truetype/noto/NotoSansBamum-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=47, path="/usr/share/fonts/truetype/noto/NotoSansBatak-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 9, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=47, path="/usr/share/fonts/truetype/noto/NotoSansBatak-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=48, path="/usr/share/fonts/truetype/noto/NotoSansBuhid-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=48, path="/usr/share/fonts/truetype/noto/NotoSansBuhid-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=49, path="/usr/share/fonts/truetype/noto/NotoSansCarian-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 9, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=49, path="/usr/share/fonts/truetype/noto/NotoSansCarian-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=50, path="/usr/share/fonts/truetype/noto/NotoSansChakma-Regular.ttf" size=14.0pt dpi=(96, 96) (28, 12, 22, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=50, path="/usr/share/fonts/truetype/noto/NotoSansChakma-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=51, path="/usr/share/fonts/truetype/noto/NotoSansCham-Regular.ttf" size=14.0pt dpi=(96, 96) (28, 11, 21, -6, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=51, path="/usr/share/fonts/truetype/noto/NotoSansCham-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=52, path="/usr/share/fonts/truetype/noto/NotoSansCherokee-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=52, path="/usr/share/fonts/truetype/noto/NotoSansCherokee-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=53, path="/usr/share/fonts/truetype/noto/NotoSansCuneiform-Regular.ttf" size=14.0pt dpi=(96, 96) (43, 11, 30, -12, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=53, path="/usr/share/fonts/truetype/noto/NotoSansCuneiform-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=54, path="/usr/share/fonts/truetype/noto/NotoSansCypriot-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=54, path="/usr/share/fonts/truetype/noto/NotoSansCypriot-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=55, path="/usr/share/fonts/truetype/noto/NotoSansDeseret-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=55, path="/usr/share/fonts/truetype/noto/NotoSansDeseret-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=56, path="/usr/share/fonts/truetype/noto/NotoSansDevanagari-Regular.ttf" size=14.0pt dpi=(96, 96) (25, 11, 17, -7, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=56, path="/usr/share/fonts/truetype/noto/NotoSansDevanagari-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=57, path="/usr/share/fonts/truetype/noto/NotoSansEgyptianHieroglyphs-Regular.ttf" size=14.0pt dpi=(96, 96) (31, 11, 25, -6, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=57, path="/usr/share/fonts/truetype/noto/NotoSansEgyptianHieroglyphs-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=58, path="/usr/share/fonts/truetype/noto/NotoSansEthiopic-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=58, path="/usr/share/fonts/truetype/noto/NotoSansEthiopic-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=59, path="/usr/share/fonts/truetype/noto/NotoSansGeorgian-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=59, path="/usr/share/fonts/truetype/noto/NotoSansGeorgian-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=60, path="/usr/share/fonts/truetype/noto/NotoSansGlagolitic-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 9, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=60, path="/usr/share/fonts/truetype/noto/NotoSansGlagolitic-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=61, path="/usr/share/fonts/truetype/noto/NotoSansImperialAramaic-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 9, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=61, path="/usr/share/fonts/truetype/noto/NotoSansImperialAramaic-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=62, path="/usr/share/fonts/truetype/noto/NotoSansInscriptionalPahlavi-Regular.ttf" size=14.0pt dpi=(96, 96) (27, 11, 20, -6, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=62, path="/usr/share/fonts/truetype/noto/NotoSansInscriptionalPahlavi-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=63, path="/usr/share/fonts/truetype/noto/NotoSansInscriptionalParthian-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=63, path="/usr/share/fonts/truetype/noto/NotoSansInscriptionalParthian-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=64, path="/usr/share/fonts/truetype/noto/NotoSansLao-Regular.ttf" size=14.0pt dpi=(96, 96) (31, 9, 23, -8, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=64, path="/usr/share/fonts/truetype/noto/NotoSansLao-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=65, path="/usr/share/fonts/truetype/noto/NotoSansLinearB-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=65, path="/usr/share/fonts/truetype/noto/NotoSansLinearB-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=66, path="/usr/share/fonts/truetype/noto/NotoSansLycian-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 9, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=66, path="/usr/share/fonts/truetype/noto/NotoSansLycian-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=67, path="/usr/share/fonts/truetype/noto/NotoSansLydian-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 9, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=67, path="/usr/share/fonts/truetype/noto/NotoSansLydian-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=68, path="/usr/share/fonts/truetype/noto/NotoSansMandaic-Regular.ttf" size=14.0pt dpi=(96, 96) (22, 11, 14, -7, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=68, path="/usr/share/fonts/truetype/noto/NotoSansMandaic-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=69, path="/usr/share/fonts/truetype/noto/NotoSansNKo-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=69, path="/usr/share/fonts/truetype/noto/NotoSansNKo-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=70, path="/usr/share/fonts/truetype/noto/NotoSansNewTaiLue-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=70, path="/usr/share/fonts/truetype/noto/NotoSansNewTaiLue-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=71, path="/usr/share/fonts/truetype/noto/NotoSansOlChiki-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=71, path="/usr/share/fonts/truetype/noto/NotoSansOlChiki-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=72, path="/usr/share/fonts/truetype/noto/NotoSansOldItalic-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=72, path="/usr/share/fonts/truetype/noto/NotoSansOldItalic-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=73, path="/usr/share/fonts/truetype/noto/NotoSansOldSouthArabian-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 9, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=73, path="/usr/share/fonts/truetype/noto/NotoSansOldSouthArabian-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=74, path="/usr/share/fonts/truetype/noto/NotoSansOldTurkic-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=74, path="/usr/share/fonts/truetype/noto/NotoSansOldTurkic-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=75, path="/usr/share/fonts/truetype/noto/NotoSansOsage-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=75, path="/usr/share/fonts/truetype/noto/NotoSansOsage-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=76, path="/usr/share/fonts/truetype/noto/NotoSansRunic-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=76, path="/usr/share/fonts/truetype/noto/NotoSansRunic-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=77, path="/usr/share/fonts/truetype/noto/NotoSansSamaritan-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 9, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=77, path="/usr/share/fonts/truetype/noto/NotoSansSamaritan-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=78, path="/usr/share/fonts/truetype/noto/NotoSansShavian-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 9, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=78, path="/usr/share/fonts/truetype/noto/NotoSansShavian-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=79, path="/usr/share/fonts/truetype/noto/NotoSansSinhala-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=79, path="/usr/share/fonts/truetype/noto/NotoSansSinhala-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=80, path="/usr/share/fonts/truetype/noto/NotoSansSymbols-Regular.ttf" size=14.0pt dpi=(96, 96) (39, 11, 28, -10, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=80, path="/usr/share/fonts/truetype/noto/NotoSansSymbols-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=81, path="/usr/share/fonts/truetype/noto/NotoSansSymbols2-Regular.ttf" size=14.0pt dpi=(96, 96) (32, 11, 20, -11, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=81, path="/usr/share/fonts/truetype/noto/NotoSansSymbols2-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=82, path="/usr/share/fonts/truetype/noto/NotoSansTamil-Regular.ttf" size=14.0pt dpi=(96, 96) (24, 11, 17, -6, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=82, path="/usr/share/fonts/truetype/noto/NotoSansTamil-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=83, path="/usr/share/fonts/truetype/noto/NotoSansTifinagh-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=83, path="/usr/share/fonts/truetype/noto/NotoSansTifinagh-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=84, path="/usr/share/fonts/truetype/noto/NotoSansYi-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 8, 20, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=84, path="/usr/share/fonts/truetype/noto/NotoSansYi-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=85, path="/usr/share/fonts/truetype/tibetan-machine/TibetanMachineUni.ttf" size=14.0pt dpi=(96, 96) (38, 12, 23, -14, -3, 2)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=85, path="/usr/share/fonts/truetype/tibetan-machine/TibetanMachineUni.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=86, path="/usr/share/fonts/truetype/abyssinica/AbyssinicaSIL-R.ttf" size=14.0pt dpi=(96, 96) (24, 19, 16, -2, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=86, path="/usr/share/fonts/truetype/abyssinica/AbyssinicaSIL-R.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=87, path="/usr/share/fonts/truetype/fonts-telu-extra/Pothana2000.ttf" size=14.0pt dpi=(96, 96) (33, 12, 17, -15, -16, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=87, path="/usr/share/fonts/truetype/fonts-telu-extra/Pothana2000.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=88, path="/usr/share/fonts/opentype/firacode/FiraCode-Regular.otf" size=14.0pt dpi=(96, 96) (23, 11, 18, -4, -1, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=88, path="/usr/share/fonts/opentype/firacode/FiraCode-Regular.otf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=89, path="/usr/share/fonts/truetype/fonts-deva-extra/chandas1-2.ttf" size=14.0pt dpi=(96, 96) (48, 19, 29, -18, -18, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=89, path="/usr/share/fonts/truetype/fonts-deva-extra/chandas1-2.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=90, path="/usr/share/fonts/truetype/pagul/Pagul.ttf" size=14.0pt dpi=(96, 96) (22, 9, 17, -4, -2, 2)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=90, path="/usr/share/fonts/truetype/pagul/Pagul.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=91, path="/usr/share/fonts/truetype/noto/NotoSansJavanese-Regular.ttf" size=14.0pt dpi=(96, 96) (31, 11, 20, -10, -1, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=91, path="/usr/share/fonts/truetype/noto/NotoSansJavanese-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=92, path="/usr/share/fonts/truetype/noto/NotoSansKaithi-Regular.ttf" size=14.0pt dpi=(96, 96) (29, 11, 21, -7, 0, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=92, path="/usr/share/fonts/truetype/noto/NotoSansKaithi-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=93, path="/usr/share/fonts/truetype/noto/NotoSansLimbu-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -2, 2)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=93, path="/usr/share/fonts/truetype/noto/NotoSansLimbu-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=94, path="/usr/share/fonts/truetype/noto/NotoSansRejang-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -1, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=94, path="/usr/share/fonts/truetype/noto/NotoSansRejang-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=95, path="/usr/share/fonts/truetype/noto/NotoSansSundanese-Regular.ttf" size=14.0pt dpi=(96, 96) (27, 11, 20, -6, -1, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=95, path="/usr/share/fonts/truetype/noto/NotoSansSundanese-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=96, path="/usr/share/fonts/truetype/noto/NotoSansMeeteiMayek-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -1, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=96, path="/usr/share/fonts/truetype/noto/NotoSansMeeteiMayek-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=97, path="/usr/share/fonts/truetype/noto/NotoSansMongolian-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -1, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=97, path="/usr/share/fonts/truetype/noto/NotoSansMongolian-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=98, path="/usr/share/fonts/truetype/noto/NotoSansSylotiNagri-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, 0, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=98, path="/usr/share/fonts/truetype/noto/NotoSansSylotiNagri-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=99, path="/usr/share/fonts/truetype/noto/NotoSansSyriacEastern-Regular.ttf" size=14.0pt dpi=(96, 96) (25, 11, 18, -7, -1, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=99, path="/usr/share/fonts/truetype/noto/NotoSansSyriacEastern-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=100, path="/usr/share/fonts/truetype/noto/NotoSansTagbanwa-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -1, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=100, path="/usr/share/fonts/truetype/noto/NotoSansTagbanwa-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=101, path="/usr/share/fonts/truetype/noto/NotoSansTaiTham-Regular.ttf" size=14.0pt dpi=(96, 96) (30, 11, 20, -9, -1, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=101, path="/usr/share/fonts/truetype/noto/NotoSansTaiTham-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=102, path="/usr/share/fonts/truetype/noto/NotoSansBalinese-Regular.ttf" size=14.0pt dpi=(96, 96) (34, 11, 20, -13, 0, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=102, path="/usr/share/fonts/truetype/noto/NotoSansBalinese-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=103, path="/usr/share/fonts/truetype/noto/NotoSansBrahmi-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 9, 20, -5, -1, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=103, path="/usr/share/fonts/truetype/noto/NotoSansBrahmi-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=104, path="/usr/share/fonts/truetype/noto/NotoSansCoptic-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -1, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=104, path="/usr/share/fonts/truetype/noto/NotoSansCoptic-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=105, path="/usr/share/fonts/truetype/noto/NotoSansKharoshthi-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -1, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=105, path="/usr/share/fonts/truetype/noto/NotoSansKharoshthi-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=106, path="/usr/share/fonts/truetype/noto/NotoSansLepcha-Regular.ttf" size=14.0pt dpi=(96, 96) (28, 11, 20, -7, 0, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=106, path="/usr/share/fonts/truetype/noto/NotoSansLepcha-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=107, path="/usr/share/fonts/truetype/noto/NotoSansPhagsPa-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, 0, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=107, path="/usr/share/fonts/truetype/noto/NotoSansPhagsPa-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=108, path="/usr/share/fonts/truetype/noto/NotoSansTagalog-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -1, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=108, path="/usr/share/fonts/truetype/noto/NotoSansTagalog-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=109, path="/usr/share/fonts/truetype/noto/NotoSansTaiViet-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 20, -5, -1, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=109, path="/usr/share/fonts/truetype/noto/NotoSansTaiViet-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=110, path="/usr/share/fonts/truetype/noto/NotoSansTibetan-Regular.ttf" size=14.0pt dpi=(96, 96) (40, 11, 23, -17, 0, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=110, path="/usr/share/fonts/truetype/noto/NotoSansTibetan-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=111, path="/usr/share/fonts/truetype/noto/NotoSerifKannada-Regular.ttf" size=14.0pt dpi=(96, 96) (32, 11, 18, -13, -1, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=111, path="/usr/share/fonts/truetype/noto/NotoSerifKannada-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=112, path="/usr/share/fonts/truetype/noto/NotoSerifMalayalam-Regular.ttf" size=14.0pt dpi=(96, 96) (26, 11, 17, -9, -1, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=112, path="/usr/share/fonts/truetype/noto/NotoSerifMalayalam-Regular.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=113, path="/usr/share/fonts/opentype/malayalam/Manjari-Regular.otf" size=14.0pt dpi=(96, 96) (21, 6, 14, -6, -5, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=113, path="/usr/share/fonts/opentype/malayalam/Manjari-Regular.otf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=114, path="/usr/local/share/fonts/j/JetBrains_Mono_Regular_Nerd_Font_Complete.ttf" size=14.0pt dpi=(96, 96) (23, 11, 19, -4, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=114, path="/usr/local/share/fonts/j/JetBrains_Mono_Regular_Nerd_Font_Complete.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=115, path="/usr/share/fonts/truetype/lao/Phetsarath_OT.ttf" size=14.0pt dpi=(96, 96) (28, 0, 20, -7, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=115, path="/usr/share/fonts/truetype/lao/Phetsarath_OT.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=116, path="/usr/share/fonts/truetype/ubuntu/Ubuntu-C.ttf" size=14.0pt dpi=(96, 96) (22, 10, 18, -3, -3, 2)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=116, path="/usr/share/fonts/truetype/ubuntu/Ubuntu-C.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=117, path="/usr/share/fonts/truetype/ubuntu/Ubuntu-R.ttf" size=14.0pt dpi=(96, 96) (22, 10, 18, -3, -3, 2)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=117, path="/usr/share/fonts/truetype/ubuntu/Ubuntu-R.ttf"
[text_shaper/open_shaper.cpp:531:get_font_key_for] Loading font: key=118, path="/usr/share/fonts/truetype/samyak/Samyak-Devanagari.ttf" size=14.0pt dpi=(96, 96) (26, 8, 19, -5, -2, 1)
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=118, path="/usr/share/fonts/truetype/samyak/Samyak-Devanagari.ttf"
[text_shaper/open_shaper.cpp:700:shape] Try fallback font: key=1, path="/usr/share/fonts/truetype/noto/NotoColorEmoji.ttf"
[text_shaper/open_shaper.cpp:704:shape] Shaping failed.
[terminal_renderer/TextRenderer.cpp:251:shapeRun] Shaped codepoints: cchar=⛏  (presentation: text/Text) (U+0063 U+0063 U+0068 U+0061 U+0072 U+003D U+26CF)
        with metrics: (206+0+0) (206+0+0) (243+0+0) (180+0+0) (308+0+0) (723+0+0) (0+0+0)
[terminal_renderer/TextRenderer.cpp:346:getTextureInfo] Glyph metrics: rasterized_glyph(0, 9x6+9+1, 0)
[terminal_renderer/TextRenderer.cpp:417:getTextureInfo] insert glyph 723: text; ratio:1.0; yOverflow(0, 0); rasterized_glyph(0, 9x6+9+1, 0)
[terminal_renderer/TextRenderer.cpp:346:getTextureInfo] Glyph metrics: rasterized_glyph(0, 9x14+14+1, 0)
[terminal_renderer/TextRenderer.cpp:417:getTextureInfo] insert glyph 0: text; ratio:1.0; yOverflow(0, 0); rasterized_glyph(0, 9x14+14+1, 0)
[text_shaper/open_shaper.cpp:673:shape] Shaping codepoints: U+32 U+2e U+36 U+37
        Using font: key=0, path="/usr/local/share/fonts/j/JetBrainsMono-Regular.ttf"
[terminal_renderer/TextRenderer.cpp:251:shapeRun] Shaped codepoints: 2.67  (presentation: text/Text) (U+0032 U+002E U+0036 U+0037)
        with metrics: (541+0+0) (574+0+0) (545+0+0) (546+0+0)
[text_shaper/open_shaper.cpp:673:shape] Shaping codepoints: U+31 U+32 U+3a U+31 U+39 U+3a U+35 U+33
        Using font: key=0, path="/usr/local/share/fonts/j/JetBrainsMono-Regular.ttf"
[terminal_renderer/TextRenderer.cpp:251:shapeRun] Shaped codepoints: 12:19:53  (presentation: text/Text) (U+0031 U+0032 U+003A U+0031 U+0039 U+003A U+0035 U+0033)
        with metrics: (540+0+0) (541+0+0) (576+0+0) (540+0+0) (548+0+0) (576+0+0) (544+0+0) (542+0+0)
[contour/TerminalWidget.cpp:897:keyPressEvent] text:, seq:, seqEmpty?:true, key:0x1000023, mod:0x8000000, keySeq[0]:0

@christianparpart christianparpart added this to the 0.3.0 milestone Jun 14, 2021
@christianparpart christianparpart added fonts font rasterization and text shaping API and platform implementations VT: rasterizer Rendering of the terminal into a pixmap using `terminal_renderer` library labels Jul 1, 2021
@christianparpart christianparpart removed this from the 0.3.0 milestone Feb 10, 2022
@christianparpart christianparpart added this to the 2023-1 milestone Nov 8, 2023
@christianparpart christianparpart modified the milestones: 2023-1, 2024-1 Jan 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request fonts font rasterization and text shaping API and platform implementations frontend Contour Terminal Emulator (GUI frontend) VT: rasterizer Rendering of the terminal into a pixmap using `terminal_renderer` library
Projects
None yet
Development

No branches or pull requests

2 participants