Skip to content

Nerd font symbol renders differently based on first instance of the symbol #2117

@ratorx

Description

@ratorx

Environment

Kitty version: 0.14.6
OS: Arch Linux
Font: Ubuntu Mono
Symbol Map: U+E000-U+FFFF 3270Narrow Nerd Font

Reproduction:

Script with two lines:

  • Line 1: echo -e 'M \uf111 M'
  • Line 2: echo -e 'M\uf111M'

Run the script in a fresh terminal instance.

Actual Behaviour

Depending on the order of lines in the script, the rendering for all instances of the character u+f111 changes.

If line 2 is after line 1:
screenshot from 2019-11-07 16:00:20

If they are the other way around:
screenshot from 2019-11-07 16:01:04

The chosen size of the symbol seems to be sticky (i.e. once the character is rendered a certain size, it is always rendered in that size). The only way to force rendering of the other version is to restart kitty.

Expected Behaviour

The first render of an ambiguous width character should not determine the character to use for all renders.

I like the behaviour of rendering a larger version of the character if there is enough space to allow it, but this should be dynamically determined, rather than being cached after the first instance of the character.

Using a symbol map of 3270Narrow Nerd Font Mono fixes this issue by forcing the small version of all characters to be rendered, but I would rather be able to dynamically use the bigger version.

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