diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-29 09:55:20 +0100 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-29 09:55:20 +0100 |
| commit | 28beb8a9600b6e74cab454401cc94c664d90bfe5 (patch) | |
| tree | c91a0731af8f3204e2c2b07a96a8bbfeaae68e35 /AGENTS.md | |
| parent | 38cda58f0969fbdda2c33a38356ab43b2869b955 (diff) | |
| download | quickshell-05173c6d9899416cc76175a7c39b4d7c6f935fa6.tar.gz quickshell-05173c6d9899416cc76175a7c39b4d7c6f935fa6.zip | |
fonts: one font size for the desktop, with per-system overridesarchive/companion
A settings page under Appearance > Fonts holds one pixel size for the
whole desktop and an override wherever a system needs its own, saved as
~/.config/keystone/fonts.json, all in px. At scale 1 the logical DPI is
96, so a point is 4/3 px, and each system is written in its own unit:
Theme.fontSize reads the json itself, so every shell follows live;
qt5ct/qt6ct and the GTK settings files are edited in place, size only,
plus gsettings; kitty, rofi and hyprlock read generated files under
~/.config/keystone that their configs include over designed fallbacks;
the groupbar is a keystone.lua line.
rofi and hyprlock are sections of designed sizes that scale together
from their body text, the smallest entry, each keeping its ratio unless
given its own size. The design is read from the fallbacks themselves,
var(kf-..., "Family N") in the rofi files and $kf_... = N in
hyprlock.conf, so a new entry appears on the page with no list to keep.
With no fonts.json the page starts from what the files say, base 16 and
an override per system at its current size, so the first save changes
nothing; seeded to 0.01px, since 0.1 scaled rofi's 72pt glyph to 72.2.
Each stepper shows px then pt in fixed columns, the system's own unit
highlighted.
Check: node desktop/modules/fonts/test_fonts.js
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'AGENTS.md')
| -rw-r--r-- | AGENTS.md | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -16,7 +16,7 @@ modules. window for pages set once: wallpaper, theme, theme status, icons, sunset, idle (the former appearance shell), notifications, autostart, shells, the assistant's daemon and presets, qtmaildir, git, - Hyprland's keyboard shortcuts and options + Hyprland's keyboard shortcuts and options, fonts island/ top-centre pills on DP-1: clock, volume, tray, layout, privacy, calendar, OBS assistant/ the assistant canvas on SUPER+Home, a view over desktop-assistant @@ -459,6 +459,10 @@ The file is parsed rather than imported because a generated QML singleton cannot be imported without a `qmldir` beside it, and the wal cache has no reason to carry one. +`Theme.fontSize` is not fixed either: it reads +`~/.config/keystone/fonts.json`, which the fonts page writes, so every shell +follows the desktop-wide base size, or Quickshell's own override, live. + There is one `Theme.qml`, in `shared/`, and each component holds a symlink to it. It was four copies that had already drifted: `vm-manager` was missing `surfaceAlt` and `volume-osd` was missing `green`, `yellow` and `surfaceAlt`, |
