Default to the system monospace font
The default was Berkeley Mono, which is one machine's licensed font and
reads as configuration rather than a default. It is now the system's
monospace font, so a fresh install looks right anywhere and --font is
there for anyone who wants their own.
Getting "the system monospace font" is less direct than it sounds.
Family::Name("monospace") resolves to Noto Sans — not monospaced at all.
cosmic-text's generic Family::Monospace goes through fontdb's built-in
preference, "FreeMono", which is usually absent, and then lands on an
arbitrary face (Adwaita Mono here). Enabling cosmic-text's fontconfig
feature changes nothing, because fontdb's config parser does not pick up
the alias files a distribution actually ships.
So fontconfig is asked directly: `fc-match -f %{family} monospace`, which
is the same answer every other application on the system gets — Noto Sans
Mono here. It costs 10ms on the worker thread that is already waiting for
the compositor, so nothing in wall clock. Without the fontconfig tools a
short list of common distribution defaults is tried instead.
Weight and stretch overrides went too: they were tuned for Berkeley Mono
Medium SemiCondensed, and a family name carries that anyway — the full
name resolves to exactly that face, verified by rendering both.
--verbose now reports the family the labels were shaped with, since the
default legitimately differs from machine to machine.
This commit is contained in:
@@ -46,7 +46,7 @@ wl-pick [--format tsv|json|portal] [--live all|current|none] [--fps N]
|
||||
- `--fps N` cap on live updates per tile per second (default 12)
|
||||
- `--no-outputs` windows only; displays are included as tiles by default
|
||||
- `--hide-labels` draws an icon-only grid
|
||||
- `--font FAMILY` label font family (default `Berkeley Mono`)
|
||||
- `--font FAMILY` label font family (default: the system monospace font)
|
||||
- `--font-size PX` label size in logical px
|
||||
- `--timeout SECS` exits after a deadline, in case the keyboard grab ever traps
|
||||
you
|
||||
@@ -143,10 +143,18 @@ columns capped at 4, 16:9 tiles, `title · app` centred underneath) and live in
|
||||
`src/theme.rs`, which is the one place to change them. They are not
|
||||
configurable at runtime beyond the font flags.
|
||||
|
||||
The font is looked up by family name. Your own font directories are scanned
|
||||
first because they are small; the full system scan (~37ms) happens only if the
|
||||
family isn't found there, and an unknown family then falls back to whatever
|
||||
cosmic-text picks rather than failing. Long titles are ellipsised to the cell.
|
||||
The label font defaults to the system monospace font — whatever `fc-match
|
||||
monospace` answers, which is what the rest of the desktop uses. (cosmic-text's
|
||||
own generic resolves through a built-in preference that is usually not
|
||||
installed, and then lands on an arbitrary face, so it is asked directly
|
||||
instead; if fontconfig isn't available, a short list of common distribution
|
||||
defaults is tried.) `--font` names a family instead, and `--verbose` reports
|
||||
which family the labels were actually shaped with.
|
||||
|
||||
Naming a family scans your own font directories first because they are small;
|
||||
the full system scan (~37ms) happens only if it isn't found there. An unknown
|
||||
family falls back to whatever cosmic-text picks rather than failing. Long titles
|
||||
are ellipsised to the cell.
|
||||
|
||||
## Requirements
|
||||
|
||||
|
||||
Reference in New Issue
Block a user