Request: Support for Font Width Variants #8050

Closed
opened 2026-01-31 01:19:32 +00:00 by claunia · 16 comments
Owner

Originally created by @sharpjs on GitHub (May 10, 2020).

Some fonts have multiple width variants. Iosevka from @be5invis, for example, has an Extended variant. Terminal should support the use of such variants.

Currently:

"fontFace": "Iosevka SS04"

image

But when asking for the Extended variant, Terminal falls back to a default font — Consolas for me.

"fontFace": "Iosevka SS04 Extended"

image

I propose support for width variants either through fontFace or through a new fontWidth profile configurable.

Please add this feature request to @be5invis's epic for similar issues, #1790.

Originally created by @sharpjs on GitHub (May 10, 2020). Some fonts have multiple width variants. [Iosevka](/be5invis/Iosevka) from @be5invis, for example, has an Extended variant. Terminal should support the use of such variants. Currently: ``` "fontFace": "Iosevka SS04" ``` ![image](https://user-images.githubusercontent.com/708461/81503142-d84e9600-9296-11ea-865a-862401d6bcdc.png) But when asking for the Extended variant, Terminal falls back to a default font — Consolas for me. ``` "fontFace": "Iosevka SS04 Extended" ``` ![image](https://user-images.githubusercontent.com/708461/81503165-00d69000-9297-11ea-84a7-b83cea64f16f.png) I propose support for width variants either through `fontFace` or through a new `fontWidth` profile configurable. Please add this feature request to @be5invis's epic for similar issues, #1790.
Author
Owner

@DHowett-MSFT commented on GitHub (May 11, 2020):

Thanks for the report! I think this is mostly covered by /dup #1790 #1751--they suggest that we need something more than "font face name" for selecting the font, and might further posit that we need variant/opentype feature selection.

@DHowett-MSFT commented on GitHub (May 11, 2020): Thanks for the report! I think this is mostly covered by /dup #1790 #1751--they suggest that we need something more than "font face name" for selecting the font, and might further posit that we need variant/opentype feature selection.
Author
Owner

@ghost commented on GitHub (May 11, 2020):

Hi! We've identified this issue as a duplicate of another one that already exists on this Issue Tracker. This specific instance is being closed in favor of tracking the concern over on the referenced thread. Thanks for your report!

@ghost commented on GitHub (May 11, 2020): Hi! We've identified this issue as a duplicate of another one that already exists on this Issue Tracker. This specific instance is being closed in favor of tracking the concern over on the referenced thread. Thanks for your report!
Author
Owner

@DHowett-MSFT commented on GitHub (May 11, 2020):

(I just realized 1751 wasn't linked up, so that was the important part of the dupe here. Weight and family/face together make up this issue 😄)

@DHowett-MSFT commented on GitHub (May 11, 2020): (I just realized 1751 wasn't linked up, so that was the important part of the dupe here. Weight and family/face together make up this issue :smile:)
Author
Owner

@sharpjs commented on GitHub (May 11, 2020):

Thanks. Hopefully we get width and weight support at the same time.

@sharpjs commented on GitHub (May 11, 2020): Thanks. Hopefully we get width and weight support at the same time.
Author
Owner

@DHowett commented on GitHub (Jul 22, 2021):

Figured I'd just reopen this since we're on the cusp of closing it 😄

@DHowett commented on GitHub (Jul 22, 2021): Figured I'd just reopen this since we're on the cusp of closing it :smile:
Author
Owner

@sharpjs commented on GitHub (Jul 23, 2021):

Two thoughts: "Woo!" and "Hoo!". Thanks, Terminal developers! 🙇🏽

@sharpjs commented on GitHub (Jul 23, 2021): Two thoughts: "Woo!" and "Hoo!". Thanks, Terminal developers! 🙇🏽
Author
Owner

@DHowett commented on GitHub (Jul 23, 2021):

Two thoughts: "Woo!" and "Hoo!". Thanks, Terminal developers! 🙇🏽

@PankajBhojwani deserves most of the credit here. Thanks Pankaj! 😄

@DHowett commented on GitHub (Jul 23, 2021): > Two thoughts: "Woo!" and "Hoo!". Thanks, Terminal developers! 🙇🏽 @PankajBhojwani deserves most of the credit here. Thanks Pankaj! :smile:
Author
Owner

@ghost commented on GitHub (Aug 31, 2021):

:tada:This issue was addressed in #10525, which has now been successfully released as Windows Terminal Preview v1.11.2421.0.🎉

Handy links:

@ghost commented on GitHub (Aug 31, 2021): :tada:This issue was addressed in #10525, which has now been successfully released as `Windows Terminal Preview v1.11.2421.0`.:tada: Handy links: * [Release Notes](https://github.com/microsoft/terminal/releases/tag/v1.11.2421.0) * [Store Download](https://www.microsoft.com/store/apps/9n8g5rfz9xk3?cid=storebadge&ocid=badge)
Author
Owner

@AnrDaemon commented on GitHub (Jan 31, 2023):

And how would we utilize it? No matter how hard I look, I can't see where I could select font variant. So far my only option is to install only variant I want to use.

@AnrDaemon commented on GitHub (Jan 31, 2023): And how would we utilize it? No matter how hard I look, I can't see where I could select font variant. So far my only option is to install only variant I want to use.
Author
Owner

@zadjii-msft commented on GitHub (Jan 31, 2023):

EDIT WAIT I'm sorry, I misread this as "font weight" and not font width. Yikes.

I think you need to manually edit the json for that.
See: https://learn.microsoft.com/en-us/windows/terminal/customize-settings/profile-appearance#font-features

@zadjii-msft commented on GitHub (Jan 31, 2023): EDIT WAIT I'm sorry, I misread this as "font weight" and not font _width_. Yikes. I think you need to manually edit the json for that. See: https://learn.microsoft.com/en-us/windows/terminal/customize-settings/profile-appearance#font-features
Author
Owner

@AnrDaemon commented on GitHub (Jan 31, 2023):

It is good I know the specs and details of the font I'm using. But it is all but making the life unnecessarily harder for general use, and any changes to the JSON will be destroyed on any UI changes.
There's no simple way to know what to enter in each block, unless you have a very specific tool to inspect the font you wish to use.

@AnrDaemon commented on GitHub (Jan 31, 2023): It is good I know the specs and details of the font I'm using. But it is all but making the life unnecessarily harder for general use, and any changes to the JSON will be destroyed on any UI changes. There's no simple way to know what to enter in each block, unless you have a very specific tool to inspect the font you wish to use.
Author
Owner

@LtqxWYEG commented on GitHub (May 5, 2024):

Hi
Width is still not implemented and adding the axis code for that does not work:

{
    "cellHeight": "1.2",
    "face": "Iosevka Custom Mono",
    "size": 13.0,
    "weight": "semi-bold",
    "axis": {
        "wdth": 658
    }
}

That should be correct. I've red through some more of the microsoft docs regarding axis's, and the value 658 is exactly one of the width of the font. (Cause you can make the font yourself); I don't get an error but nothing changes. :(

Workaround, though:
Build another font that has only the width you want. (You can't just rename the .ttf. Rename all occurances inside the .toml.) :(
Fortunately, you can define such things with Iosevka. Make one with their customizer on their website, then delete a few lines in the .toml to only leave one width. If you also only leave one weight, building the font is pretty much instant! Experimenting with it to get the perfect width and weight takes no time! 👍
BTW, the shape = 658 value in the can be anything you want! However, 10 is not a valid number. will crush your dreams. (Must be a bug!) The value can be anything between 416 and 720, which is disappointing to say the least. (Presumably, the same goes for weight.) 👎

kind regards :)

@LtqxWYEG commented on GitHub (May 5, 2024): Hi Width is still not implemented and adding the axis code for that does not work: ``` { "cellHeight": "1.2", "face": "Iosevka Custom Mono", "size": 13.0, "weight": "semi-bold", "axis": { "wdth": 658 } } ``` That should be correct. I've red through some more of the microsoft docs regarding axis's, and the value 658 is exactly one of the width of the font. (Cause you can make the font yourself); I don't get an error but nothing changes. :( **Workaround**, _though_: Build another font that has only the width you want. (You can't just rename the .ttf. Rename all occurances inside the .toml.) :( Fortunately, you can define such things with Iosevka. Make one with their customizer on their website, then delete a few lines in the `.toml` to only leave one width. If you also only leave one weight, building the font is pretty much instant! Experimenting with it to get the perfect width and weight takes no time! 👍 BTW, the `shape = 658` value in the can be anything you want! However, `10 is not a valid number.` will crush your dreams. (Must be a bug!) The value can be anything between 416 and 720, which is disappointing to say the least. (Presumably, the same goes for weight.) 👎 kind regards :)
Author
Owner

@AnrDaemon commented on GitHub (May 5, 2024):

Why this issue was closed, pretty please?

@AnrDaemon commented on GitHub (May 5, 2024): Why this issue was closed, pretty please?
Author
Owner

@LtqxWYEG commented on GitHub (May 5, 2024):

Aparently because of a dev misreading the point of this issue, and fixing "it". https://github.com/microsoft/terminal/pull/10525

But now we have weight adjustment. One missing ;)

@LtqxWYEG commented on GitHub (May 5, 2024): Aparently because of a dev misreading the point of this issue, and fixing "it". https://github.com/microsoft/terminal/pull/10525 But now we have weight adjustment. One missing ;)
Author
Owner

@DHowett commented on GitHub (May 6, 2024):

Width is still not implemented and adding the axis code for that does not work:

{
    "cellHeight": "1.2",
    "face": "Iosevka Custom Mono",
    "size": 13.0,
    "weight": "semi-bold",
    "axis": {
        "wdth": 658
    }
}

That should be correct. I've red through some more of the microsoft docs regarding axis's, and the value 658 is exactly one of the width of the font. (Cause you can make the font yourself); I don't get an error but nothing changes. :(

Aparently because of a dev misreading the point of this issue, and fixing "it"

You spelled axes wrong.

That does not indicate that my engineers "misread[...] the point of this issue".

If you spell it right, it works fine. Here's Bahnschrift:

wdth 100:

Image

wdth 30

Image

Do note the e in axes.

@DHowett commented on GitHub (May 6, 2024): > Width is still not implemented and adding the axis code for that does not work: > > ``` > { > "cellHeight": "1.2", > "face": "Iosevka Custom Mono", > "size": 13.0, > "weight": "semi-bold", > "axis": { > "wdth": 658 > } > } > ``` > > That should be correct. I've red through some more of the microsoft docs regarding axis's, and the value 658 is exactly one of the width of the font. (Cause you can make the font yourself); I don't get an error but nothing changes. :( > > Aparently because of a dev misreading the point of this issue, and fixing "it" You spelled `axes` wrong. That does not indicate that my engineers "misread[...] the point of this issue". If you spell it right, it works fine. Here's Bahnschrift: `wdth` 100: ![Image](https://github.com/microsoft/terminal/assets/189190/30ffd33a-00ca-4bef-ac67-ead3852770e3) `wdth` 30 ![Image](https://github.com/microsoft/terminal/assets/189190/69002d8e-5c72-40c4-a815-3a4f01060c29) Do note the `e` in `axes`.
Author
Owner

@LtqxWYEG commented on GitHub (May 8, 2024):

Ffffssssffs? They wrote evrywhere "Axis". That must have blinded me to "axes". I mean, what do you need multiple axes for? You can't realistically dual-wield them. One's enough.

@LtqxWYEG commented on GitHub (May 8, 2024): Ffffssssffs? They wrote evrywhere "**Axis**". That must have blinded me to "_axes_". I mean, what do you need multiple axes for? You can't realistically dual-wield them. One's enough.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#8050