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

Can we get a proper modern terminal font ? #61

Closed
PhMajerus opened this issue Feb 8, 2018 · 5 comments
Closed

Can we get a proper modern terminal font ? #61

PhMajerus opened this issue Feb 8, 2018 · 5 comments
Labels
Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work.

Comments

@PhMajerus
Copy link

Consolas is nice but wasn't designed to be a terminal font, it was a monospace font for programming environments, and its design goals shows when used as a console font.

The console and WSL teams really need to get the Typography team on board and design a complete and consistent terminal font that contains all characters currently still missing in Consolas, and including Asian characters only available currently when using MS Gothic/Mincho, NSimSun/SimSun-ExtB, ...

  • For complete UTF-8 compatibility, it should contain all the characters in a single font, or provide a set of consistent fonts and have conhost support fonts fallback when different codepages are used in a single output (I would vote for a single font, making it easier to include Unicode console output in technical documents in Word as well).
  • It should abide by terminal's monospace and double-width conventions to avoid alignment issues with formatted output coming from other environments.
  • It should contain proper pixel level hinting for all box and line drawing characters to properly join, including having the full blocks and half blocks perfectly fill their space at every size, and having the patterns of several shade blocks (U+2591, U+2592, U+2593) repeat properly without visible separation from one to the next.
  • It should contain Unicode characters available on other platforms and used in console apps, such as U+2190 to U+2199 arrows.

Remember this work would still benefit a more modern console (still hoping for a DX-based console), so it isn't a temporary fix, it would really benefit Windows in the long term.

@be5invis
Copy link

Hmm, do you need it being compatible with CJK?
If so you can try Iosevka...

@zadjii-msft
Copy link
Member

Hey wadda ya know, we're already working on this. Just so happens to be a longer process then one might think to get a typeface ready to ship to the world.

@zadjii-msft zadjii-msft added Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. backlog labels Feb 12, 2018
@zadjii-msft zadjii-msft added this to the Backlog milestone Feb 12, 2018
@bitcrazed
Copy link
Contributor

Hey @PhMajerus - the issue you describe isn't really an issue with Consolas (or any single font). It's more to do with the fact that the Console currently doesn't support "font-fallback" - a technique that allows modern text rendering systems to dynamically find and load fonts that contain glyphs that are missing from the currently selected font.

One way to mitigate this issue, is to use a font that contains all/more of the glyphs one might want to render. Alas, no single font/font-set contains every visible glyph - that would end up being a HUGE font. Some font packs combine several fonts, glyphs, and symbols into a single font file, but these font sets rarely include all the fonts everyone needs.

Alas, Console's current rendering system doesn't support font-fallback, so we're unable to render many characters (e.g. emoji, powerline, some East Asian languages) resulting in many visual rendering issues, some of which you note above.

Rest assured though, we're figuring out a future plan that'll allow us to remedy these (and many other) issues.

@PhMajerus
Copy link
Author

PhMajerus commented Feb 13, 2018

Thanks @zadjii-msft and @bitcrazed for chiming in, good to hear you're still pushing to get more improvements into conhost. I know building a consistent set of hundreds of characters must take a while, just knowing that we'll get it at some point is great news!

Consolas does have some issues with block drawing characters.
I want to make sure you understand what I mean by proper pixel-hinting for all box and line drawing characters. The problem is mostly for ANSI-art and apps using these blocks to build patterns. U+2591, U+2592, U+2593 are supposed to generate perfect checkerboard patterns when several are displayed next to each other (horizontally as well as vertically).
In Consolas, they look ok by themselves, but the pattern doesn't properly repeat across chars, as seen in the following screenshot:
checkerboard issues
Note the issue also depends on the font size and DPI settings, it can get even more visible than this.

@bitcrazed
Copy link
Contributor

Great feedback, thanks for sharing. Sending to our font lead now :)

If you don't mind, I'll close this issue for now since this is one of our major priorities and doesn't need to be tracked as a pending issue. Feel free to add comments if you think we've missed something.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work.
Projects
None yet
Development

No branches or pull requests

4 participants