Maximus5 / ConEmu

Customizable Windows terminal with tabs, splits, quake-style, hotkeys and more
https://conemu.github.io/
BSD 3-Clause "New" or "Revised" License
8.5k stars 570 forks source link

no support for new Nerd Font Unicode range #2530

Open markonop93 opened 1 year ago

markonop93 commented 1 year ago

Versions

ConEmu build: 221218 x64 OS version: Windows 10 x64 Used shell version: whatever, for example Powershell7

Problem description

Conemu does not display correct Unicode from this ranges https://github.com/ryanoasis/nerd-fonts/issues/1059#issuecomment-1404891287 For example "`u{f45d} `u{f1a5e} `u{e0c3} `u{f1a5f}" in Powershell 7 does not display correct f1a5e and f1a5f. Windows Terminal displays it correct

Steps to reproduce

  1. Use "`u{f45d} `u{f1a5e} `u{e0c3} `u{f1a5f}" command in Conemu Powershell 7

Actual results

Squares (or other unknown character depend on font) display at position 2 and 4 image

Expected results

Regular character from nerd font should display image

Finii commented 1 year ago

Maybe the title of this should include "5 digit unicode". The 5 digits means more than 2 bytes, windows with 16 bit chars this is 4 bytes.

Also compare

Also, the unicode-support page linked above talks about 'Font charset'. In fact there is a bitfield in fonts that inform about the unicode ranges that font contains. If I remember correctly fontforge has a bug that does NOT set the appropriate bit for PUA-A (i.e. 5 digit Nerd Font icons). I have never noticed any application that checks that bits, but maybe it is different here.

Finii commented 1 year ago

@markonop93 for testing purposes I can provide you with a manually corrected charset-bitfield Agave font set, so that we could rule that out (or fix the problem, but I doubt that)?

markonop93 commented 1 year ago

@Finii sure feel free sending me anything for test ^^ Pls notice I have caching issue so other font which unused by me still would be better . for example Ubuntu Nerd Font

markonop93 commented 1 year ago

@Finii sorry for ping , only to make sure you did not forgot :)

Finii commented 1 year ago

:-) Sorry, of course I did forget. Let my quickly implement that.

Finii commented 1 year ago

We need to have bit 90 set:

image

https://learn.microsoft.com/en-us/typography/opentype/spec/os2#ulunicoderange1-bits-031ulunicoderange2-bits-3263ulunicoderange3-bits-6495ulunicoderange4-bits-96127

image

The left byte of the third block holds bits 88 to 95. The 00 resp. 04 is then bit 90.

AgaveNF-Regular.zip

(It was Agave, right?)


I hope .NET is not involved here...: :unamused:

image https://learn.microsoft.com/en-us/dotnet/api/system.text.unicode.unicoderange?view=net-8.0#remarks

markonop93 commented 1 year ago

@Finii unfortunately it did not help . same characters dont work