microsoft / microsoft/terminal
Support fonts and fonts attributes through inline escape sequences like mintty and vte52
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 105k
- Forks
- 9.6k
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 29
Description
Escape sequences to set fonts and their attributes are ignored, instead they are displayed as raw
Terminals support escape sequences to alter the fonts. Windows Terminal at the moment only support basic colors and reverse colors
This is linked to #109 #2916 #5461 #5462 #6703 and #6205 as currently most of the VTE52 font attributes are not supported.
Full support can be tested with:
https://github.com/csdvrx/sixel-testsuite/ansi-vte52.sh
Expected output:
https://github.com/csdvrx/sixel-testsuite/blob/master/test-passed-part1.jpg
It would be desirable to support all mintty font attributes, including support for alternative fonts, using ECMA-48 SGR codes. This would be linked to #1163 for usecases like CJK.
Mintty patch implementing this is on https://github.com/mintty/mintty/commit/1250829806d3da2f05b3207183b190747d2cc127
This allows sequences like:
echo "\e[12mVery thin font\e[0m"

Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the referenced ansi-vte52.sh script from the sixel-testsuite and compare its expected output with Windows Terminal. Review the linked mintty patch and the related issues to map the VTE52 and mintty font attributes in scope. Done means the escape sequences are interpreted rather than displayed raw, with the referenced test output passing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- cli, operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100