Problem
The chrome (menus, hover popups, tooltips, dialogs) renders in a fixed UI font (currently `Source Sans 3 10` or similar small size) while the editor renders in a larger code font. Default chrome size is small enough that some users find body text in LSP hover popups hard to read.
User feedback during #214 smoke test:
The body text is "readable (by me, but a lot of people would struggle) and still smaller than editor text"
Suggested
Add a setting that scales the chrome font size:
```json
{
"ui_font_scale": 1.0,
// or:
"ui_font_size": 10
}
```
With a sane minimum (don't break the layout if 0).
Implementation
`UI_FONT` is currently a `const` in GTK `draw.rs`. Make it a function that consults `settings.ui_font_scale` (or absolute size) and returns the corresponding Pango font description. Apply globally — every chrome rasteriser uses it.
TUI doesn't have variable font sizes (terminal cells are fixed) but could honour the size parameter as a hint when available.
Files
- `src/gtk/draw.rs` — `UI_FONT` const → function
- `src/gtk/quadraui_gtk.rs` — every `pango::FontDescription::from_string(UI_FONT)` call site
- `src/core/settings.rs` — new `ui_font_size` setting (default current value)
- `src/render.rs::SETTING_DEFS` — register
Problem
The chrome (menus, hover popups, tooltips, dialogs) renders in a fixed UI font (currently `Source Sans 3 10` or similar small size) while the editor renders in a larger code font. Default chrome size is small enough that some users find body text in LSP hover popups hard to read.
User feedback during #214 smoke test:
Suggested
Add a setting that scales the chrome font size:
```json
{
"ui_font_scale": 1.0,
// or:
"ui_font_size": 10
}
```
With a sane minimum (don't break the layout if 0).
Implementation
`UI_FONT` is currently a `const` in GTK `draw.rs`. Make it a function that consults `settings.ui_font_scale` (or absolute size) and returns the corresponding Pango font description. Apply globally — every chrome rasteriser uses it.
TUI doesn't have variable font sizes (terminal cells are fixed) but could honour the size parameter as a hint when available.
Files