[PR #14255] [MERGED] Implement cell size customizations #30028

Open
opened 2026-01-31 09:38:15 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/microsoft/terminal/pull/14255
Author: @lhecker
Created: 10/19/2022
Status: Merged
Merged: 2/14/2023
Merged by: @lhecker

Base: mainHead: dev/lhecker/3498-line-heights


📝 Commits (8)

  • aaec2a5 Implement cell size customizations
  • ba8e165 Fix unit tests
  • f6e730e Address parts of the feedback
  • 6bbc1cd Merge remote-tracking branch 'origin/main' into dev/lhecker/3498-line-heights
  • 9554470 Merge remote-tracking branch 'origin/main' into dev/lhecker/3498-line-heights
  • 504f483 Address feedback
  • 17f8e47 Fix config saving
  • dd34a30 Merge remote-tracking branch 'origin/main' into dev/lhecker/3498-line-heights

📊 Changes

28 files changed (+348 additions, -64 deletions)

View changed files

📝 doc/cascadia/profiles.schema.json (+15 -0)
📝 src/cascadia/TerminalControl/ControlCore.cpp (+4 -0)
📝 src/cascadia/TerminalControl/ControlCore.h (+2 -0)
📝 src/cascadia/TerminalControl/IControlSettings.idl (+2 -0)
📝 src/cascadia/TerminalSettingsEditor/Appearances.cpp (+80 -4)
📝 src/cascadia/TerminalSettingsEditor/Appearances.h (+9 -12)
📝 src/cascadia/TerminalSettingsEditor/Appearances.idl (+1 -0)
📝 src/cascadia/TerminalSettingsEditor/Appearances.xaml (+16 -1)
📝 src/cascadia/TerminalSettingsEditor/Resources/en-US/Resources.resw (+16 -0)
📝 src/cascadia/TerminalSettingsModel/CascadiaSettings.cpp (+1 -1)
📝 src/cascadia/TerminalSettingsModel/FontConfig.cpp (+0 -5)
📝 src/cascadia/TerminalSettingsModel/FontConfig.h (+0 -1)
📝 src/cascadia/TerminalSettingsModel/FontConfig.idl (+2 -1)
📝 src/cascadia/TerminalSettingsModel/MTSMSettings.h (+3 -1)
📝 src/cascadia/TerminalSettingsModel/Profile.cpp (+2 -4)
📝 src/cascadia/TerminalSettingsModel/TerminalSettings.cpp (+8 -5)
📝 src/cascadia/TerminalSettingsModel/TerminalSettings.h (+2 -0)
📝 src/cascadia/inc/ControlProperties.h (+2 -0)
📝 src/renderer/atlas/AtlasEngine.api.cpp (+15 -12)
📝 src/renderer/atlas/AtlasEngine.cpp (+8 -0)

...and 8 more files

📄 Description

Does what it says in the title. After this commit you can customize the height
and width of the terminal's cells. This commit supports parts of CSS'
<length-percentage> data type: Font-size relative sizes as multiples (1.2),
percentage (120%), or advance-width relative (1.2ch), as well as absolute
sizes in CSS pixels (px) or points (pt).

This PR is neither bug free in DxEngine, nor in AtlasEngine.
The former fails to implement glyph advance corrections (for instance #9381),
as well as disallowing glyphs to overlap rows. The latter has the same
overlap issue, but more severely as it tries to shrink glyphs to fit in.

Closes #3498
Closes #14068

Validation Steps Performed

  • Setting height to 1 creates 12pt tall rows
  • Setting height to 1ch creates square cells
  • Setting width to 1 creates square cells
  • Setting width or height to Npx or Npt works
  • Trailing zeroes are trimmed properly during serialization
  • Patching the PR to allow >100 line heights and entering "100.123456"
    displays 6 fractional digits

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/microsoft/terminal/pull/14255 **Author:** [@lhecker](https://github.com/lhecker) **Created:** 10/19/2022 **Status:** ✅ Merged **Merged:** 2/14/2023 **Merged by:** [@lhecker](https://github.com/lhecker) **Base:** `main` ← **Head:** `dev/lhecker/3498-line-heights` --- ### 📝 Commits (8) - [`aaec2a5`](https://github.com/microsoft/terminal/commit/aaec2a50e002dacde6b4f922f552c963afd9da67) Implement cell size customizations - [`ba8e165`](https://github.com/microsoft/terminal/commit/ba8e1650a19d2a7338cd35116223e3b4df4acb62) Fix unit tests - [`f6e730e`](https://github.com/microsoft/terminal/commit/f6e730ecfb4032112f81444164d1ab9bdfaa6f26) Address parts of the feedback - [`6bbc1cd`](https://github.com/microsoft/terminal/commit/6bbc1cd28f6708e57789e9037fd1f2d56bfad3f9) Merge remote-tracking branch 'origin/main' into dev/lhecker/3498-line-heights - [`9554470`](https://github.com/microsoft/terminal/commit/9554470355595f0aee1c3208cb0b83b741291745) Merge remote-tracking branch 'origin/main' into dev/lhecker/3498-line-heights - [`504f483`](https://github.com/microsoft/terminal/commit/504f483586c97e9461a5b6908475234748abca89) Address feedback - [`17f8e47`](https://github.com/microsoft/terminal/commit/17f8e4705597c776e16ac53477a67006d85f3067) Fix config saving - [`dd34a30`](https://github.com/microsoft/terminal/commit/dd34a30873da5858039e87ceeb75bdc09186b952) Merge remote-tracking branch 'origin/main' into dev/lhecker/3498-line-heights ### 📊 Changes **28 files changed** (+348 additions, -64 deletions) <details> <summary>View changed files</summary> 📝 `doc/cascadia/profiles.schema.json` (+15 -0) 📝 `src/cascadia/TerminalControl/ControlCore.cpp` (+4 -0) 📝 `src/cascadia/TerminalControl/ControlCore.h` (+2 -0) 📝 `src/cascadia/TerminalControl/IControlSettings.idl` (+2 -0) 📝 `src/cascadia/TerminalSettingsEditor/Appearances.cpp` (+80 -4) 📝 `src/cascadia/TerminalSettingsEditor/Appearances.h` (+9 -12) 📝 `src/cascadia/TerminalSettingsEditor/Appearances.idl` (+1 -0) 📝 `src/cascadia/TerminalSettingsEditor/Appearances.xaml` (+16 -1) 📝 `src/cascadia/TerminalSettingsEditor/Resources/en-US/Resources.resw` (+16 -0) 📝 `src/cascadia/TerminalSettingsModel/CascadiaSettings.cpp` (+1 -1) 📝 `src/cascadia/TerminalSettingsModel/FontConfig.cpp` (+0 -5) 📝 `src/cascadia/TerminalSettingsModel/FontConfig.h` (+0 -1) 📝 `src/cascadia/TerminalSettingsModel/FontConfig.idl` (+2 -1) 📝 `src/cascadia/TerminalSettingsModel/MTSMSettings.h` (+3 -1) 📝 `src/cascadia/TerminalSettingsModel/Profile.cpp` (+2 -4) 📝 `src/cascadia/TerminalSettingsModel/TerminalSettings.cpp` (+8 -5) 📝 `src/cascadia/TerminalSettingsModel/TerminalSettings.h` (+2 -0) 📝 `src/cascadia/inc/ControlProperties.h` (+2 -0) 📝 `src/renderer/atlas/AtlasEngine.api.cpp` (+15 -12) 📝 `src/renderer/atlas/AtlasEngine.cpp` (+8 -0) _...and 8 more files_ </details> ### 📄 Description Does what it says in the title. After this commit you can customize the height and width of the terminal's cells. This commit supports parts of CSS' `<length-percentage>` data type: Font-size relative sizes as multiples (`1.2`), percentage (`120%`), or advance-width relative (`1.2ch`), as well as absolute sizes in CSS pixels (`px`) or points (`pt`). This PR is neither bug free in DxEngine, nor in AtlasEngine. The former fails to implement glyph advance corrections (for instance #9381), as well as disallowing glyphs to overlap rows. The latter has the same overlap issue, but more severely as it tries to shrink glyphs to fit in. Closes #3498 Closes #14068 ## Validation Steps Performed * Setting `height` to `1` creates 12pt tall rows ✅ * Setting `height` to `1ch` creates square cells ✅ * Setting `width` to `1` creates square cells ✅ * Setting `width` or `height` to `Npx` or `Npt` works ✅ * Trailing zeroes are trimmed properly during serialization ✅ * Patching the PR to allow >100 line heights and entering "100.123456" displays 6 fractional digits ✅ --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-31 09:38:15 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#30028