Skip to content

Emoji is not rendered correctly #67

@tsobako

Description

@tsobako

Description

Emojis are not rendered in tui widgets in terminal

Minimal Reproducible Example

OS - Debian 12.4
Terminal - Alacritty 0.14.0
Font configuration

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <alias>
    <family>terminal-font</family>
    <prefer>
      <family>CaskaydiaMono Nerd Font</family>
      <family>Noto Color Emoji</family>
     </prefer>
  </alias>
</fontconfig>

Example code

package tuiexamples

import tui._
import tui.crossterm.CrosstermJni
import tui.widgets.ParagraphWidget

object BugExample {

  def main(args: Array[String]): Unit =
    withTerminal { (jni, terminal) =>
    run_app(terminal, jni)
  }

  def run_app(terminal: Terminal, jni: CrosstermJni): Unit =
    while (true) {
      terminal.draw(ui)
      jni.read() match {
        case key: tui.crossterm.Event.Key =>
          key.keyEvent.code match {
            case char: tui.crossterm.KeyCode.Char if char.c() == 'q' => return
            case _ => ()
          }
        case _ => ()
      }
  }

  def ui(f: Frame): Unit = {
    val size = f.size
    val label = ParagraphWidget(text = Text.nostyle("\uD83C\uDF52"))
    f.renderWidget(label, size)
  }
}

Screenshot

2024-09-26_12:41:25

Println example

package tuiexamples

import tui._
import tui.crossterm.CrosstermJni
import tui.widgets.ParagraphWidget

object BugExample {

  def main(args: Array[String]): Unit = print("\uD83C\uDF52")
}

Screenshot

2024-09-26_12:43:34

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions