ADR-0027: Icons are monochrome Unicode glyphs
- Status: Accepted
- Date: 2026-06-29
- Deciders: jka
- Decision: D27
Context
The GUI needs a few iconic affordances: close, refresh, send, expand and collapse,
unsaved marker. The options were raster icons (including the classic Windows
.ico set), colour emoji, or text glyphs.
Decision
Iconic controls use monochrome Unicode symbol glyphs, limited to code points that
common monospace fonts cover (for example × · → ● ○ ▸ ▾ ⟳ ↑ ↓ ▶). Where coverage is
doubtful, a plain text label is used instead.
Glyphs cost no assets, take the theme's foreground colour, and scale with the font.
If true pixel icons are ever wanted, they are PNG files through Tk's core photo
image type.
Alternatives considered
.icofiles. Tk 8.6'sphotoreads PNG and GIF but not.ico; reading them would need the Img extension, a dependency rio avoids. The classic Windows icon set is not freely redistributable, and raster icons do not scale with font size.- Colour emoji. Tk 8.6 does not render colour emoji, and emoji clash with the monospace look.
Consequences
- Icons recolour through the theme with no additional roles.
- Some idioms stay text by choice: the file pane's trailing
/for directories and git's own porcelain status letters. - A search glyph (
⌕) has no on-screen home yet.