microsoft / microsoft/terminal

Support fonts and fonts attributes through inline escape sequences like mintty and vte52

Open
#6,779 13 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area-Fonts Area-VT Help Wanted Issue-Task Product-Terminal
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"

image

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.