Skip to content
This repository was archived by the owner on Oct 6, 2026. It is now read-only.

v0.4.0 — readable on a plain text console

Choose a tag to compare

@jetomev jetomev released this 01 Oct 21:39
· 33 commits to main since this release
v0.4.0
133b835

Readable on a plain text console

The plain Linux text screen (Ctrl+Alt+F3) is where you end up when the desktop is broken, which is exactly when you want a bootloader manager or a package manager. Until now every Forge app turned into black-on-black there, with broken corners and missing characters. This release makes a promise and keeps it:

Every Forge app is readable and usable on a plain text console (TERM=linux). It does not have to look the same as in a terminal window.

When an app starts on a text console, forgekit switches by itself:

  • Colours by role. Styling asks for a role ($forge-accent, $forge-muted, $forge-border…), which is Catppuccin in a terminal window and a console colour on a text console, chosen so the roles stay apart. Only the 8 basic colours are used as backgrounds there.
  • Characters. Every character the console font lacks is swapped for one it has, at the same width so columns stay lined up: ╭ → ┌, ✓ → +, — → -, Á → A. The font's character list was read from the font file, not assumed.
  • Scrollbars in whole cells, no italic, no bold on coloured blocks (the console shows those as colours of their own).
  • F1 opens Help in every app (F-10, #2): a text console sends Ctrl+H as Backspace.

FORGE_ASCII=1 forces console mode on, FORGE_ASCII=0 forces it off. In a terminal window nothing changes: the README screenshots regenerate identical to 0.3.0.

For app authors: use the $forge-* roles in your CSS and markup, glyph("ok") for marks, and read self.forge_console. See the README section On a plain text console.

Tested

  • 23 tests, 0 warnings (the repo had none before): detection, the character swap, the colour roles, layout positions identical in both modes, F1, and the demo run as if on a console.
  • New tools: tools/console-preview.py shows any app as a text console would and fails on undrawable characters or invisible letters; tools/vcsa-shot.py redraws a real console's screen exactly.
  • On a real console in a KognogOS virtual machine. That run found F-11 (#3): the console shows underline as cyan and italic as green, which hid the active menu item's letter. Fixed and re-checked.

Closes #1. The apps adopt it as they upgrade: grubForge first, with its v2.0.0.

Assets are signed with 32E1D2AB9380BFD6BFE3BC1EAC2A3407CC070F9E.

🤖 Generated with Claude Code