Unicode & Emoji Support
Chau7 renders CJK, RTL, combining characters, and color emoji correctly. Not approximately.
What is Unicode & Emoji Support in Chau7?
Unicode & Emoji Support in Chau7 means the terminal correctly renders the full Unicode character set. Chau7 implements Unicode 15.1 character width calculation using the East Asian Width property and emoji presentation selector rules.
CJK ideographs, fullwidth forms, and emoji with presentation selectors are correctly assigned double-width cells in Chau7.
Chau7 also includes a configurable ambiguous-width setting (unicodeAmbiguousWidth) that controls whether Unicode characters with ambiguous East Asian Width are treated as single-width (1) or double-width (2). This setting is exposed to the Rust terminal backend via FFI. Grid layout integration for this setting is in progress.
How to fix broken Unicode rendering in your terminal
Broken Unicode rendering in terminals typically comes from two problems: incorrect character width calculation and missing grapheme cluster grouping. Characters display at the wrong width, causing misalignment. Combining marks appear as separate characters instead of attaching to their base.
Chau7 solves both problems. Chau7 implements Unicode 15.1 East Asian Width properties for correct cell assignment and Extended Grapheme Cluster boundaries for combining mark grouping. A base character followed by any number of combining marks (accents, diacritics, enclosing marks) occupies a single terminal cell in it.
How does Chau7's Unicode and emoji support compare to other terminals?
Many terminals misalign CJK characters because they use outdated or incomplete width tables. Some terminals break ZWJ emoji sequences into individual components. Others fail to render combining marks as part of their base character.
Chau7 implements Unicode 15.1 width calculation, Extended Grapheme Cluster grouping, and delegates complex script shaping to Core Text. Chau7 also has automatic font fallback for CJK and other scripts, so CJK characters render correctly even when the primary font does not include them.
Does Chau7 support Nerd Fonts and Powerline symbols?
Yes. Nerd Font symbols are Private Use Area code points that Chau7 renders at the correct single-cell width. Powerline-patched fonts work in Chau7 without any special configuration.
Chau7's glyph atlas caches Nerd Font and Powerline glyphs alongside standard monospace glyphs. After the initial render, these special symbols incur no per-frame overhead in Chau7's Metal rendering pipeline.
How does Chau7 handle emoji that are wider than two cells?
No standard emoji exceeds two terminal cells. Chau7 renders ZWJ sequences (like family emoji composed of multiple people) as a single glyph within two cells.
If the font does not support a particular ZWJ sequence, Chau7 falls back to rendering the component emoji sequentially. Skin tone modifiers and flag sequences also render as single glyphs in Chau7 when the font supports them.
Questions this answers
- What is Unicode & Emoji Support in Chau7 terminal?
- How does Chau7's unicode & emoji support compare to other terminals?
- How to fix broken Unicode rendering in my terminal
- Does Chau7 support Nerd Fonts and Powerline symbols?
- How does Chau7 handle emoji that are wider than two cells?
Frequently asked questions
What is Unicode & Emoji Support in Chau7 terminal?
Unicode & Emoji Support in Chau7 means the terminal correctly renders the full Unicode character set including CJK wide characters, right-to-left text, combining marks, and color emoji. Chau7 implements Unicode 15.1 character width calculation and Extended Grapheme Cluster boundaries for correct cell alignment.
How does Chau7's Unicode & emoji support compare to other terminals?
Many terminals misalign CJK characters, break emoji sequences, or fail to render combining marks correctly. Chau7 implements Unicode 15.1 width calculation, Extended Grapheme Cluster grouping, and Core Text shaping for complex scripts. Chau7 also has automatic font fallback for CJK and other scripts.
How to fix broken Unicode rendering in my terminal
Broken Unicode rendering in terminals typically comes from incorrect character width calculation or missing grapheme cluster grouping. Chau7 solves both by implementing Unicode 15.1 East Asian Width properties and Extended Grapheme Cluster boundaries. Switching to Chau7 fixes CJK alignment, combining mark rendering, and emoji display.
Does Chau7 support Nerd Fonts and Powerline symbols?
Yes. Nerd Font symbols are Private Use Area code points that Chau7 renders at the correct single-cell width. Powerline-patched fonts work in Chau7 without any special configuration.
How does Chau7 handle emoji that are wider than two cells?
No standard emoji exceeds two terminal cells. Chau7 renders ZWJ sequences (like family emoji composed of multiple people) as a single glyph within two cells. If the font does not support a particular ZWJ sequence, Chau7 falls back to rendering the component emoji sequentially.
Does Chau7 handle CJK fonts automatically?
Yes. Chau7 has automatic font fallback for CJK and other scripts. When the primary font does not contain a glyph, Chau7 falls back to a system font that does. This is not user-configurable but works automatically.
Can I configure how ambiguous-width characters are displayed?
Yes. Chau7 includes a unicodeAmbiguousWidth setting that controls whether Unicode characters with ambiguous East Asian Width are treated as single-width (1) or double-width (2). The default is single-width. The setting is bridged to the Rust terminal backend via FFI; grid layout integration is in progress.