Rio
adr/0027-monochrome-unicode-icons.mdRaw Markdown · GitHub ↗

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

  • .ico files. Tk 8.6's photo reads 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.