Skip to content
ALB Wiki

Eyes-Free Linux

This is an old revision of this page — revision 1 (2026-10-25 14:51:07 UTC). It may differ from the current revision.

Linux is the only OS whose console can speak from the kernel itself — no desktop needed, no GUI required, speech from the moment init starts. This chapter covers the eyes-free path: Speakup (the kernel-level screen reader), BRLTTY (the braille daemon), Orca (the graphical one), espeakup (the bridge to software speech), and Slint — the distro that ships it all working. The lineage runs through this wiki's existing cluster — the machine that reads text onscreen descends from the one that read it off paper.

The lineage — the hardware that taught software

The chain this handbook's wiki already documents: the Kurzweil Reading Machine (1976 — the machine that read paper), the Braille 'n Speak (1987 — the notetaker that became a speech synthesizer), and Speakup (1998 — the screen reader that lives in the kernel). The kernel still ships speakup_bns.c — the driver that lets Speakup talk through a forty-year-old Braille 'n Speak. The three articles link by tech, not just theme.

Speakup — the kernel speaks

modprobe speakup_soft        # load it, software synth
speakup_soft.start=1         # or kernel cmdline
espeakup                     # the daemon bridging speakup→espeak

Speakup lives in drivers/accessibility/speakup/ — the kernel synthesizes speech as you navigate the console — from boot, before any userspace exists, all the way to a panic. It drives hardware synths (the DoubleTalk, the DECtalk line, the Braille 'n Speak via bns) or espeakup's software bridge to eSpeak. The speakup keymap: review keys read the screen, the numpad navigates; speakup.synth=soft or =bns selects the voice.

BRLTTY — the braille side

brltty -b auto -x auto       # auto-detect the display
systemctl enable brltty

BRLTTY drives refreshable braille displays — the hardware that turns the console into tactile dots — handling every major display's protocol since 1995. It reads the screen, maps cursor position, handles keyboard input on display keys. Speakup speaks; BRLTTY braills; both make the console fully usable without sight.

The rest of the ecosystem

  • Orca — the graphical screen reader — GNOME's eyes-free layer
  • espeak-ng / speech-dispatcher — the software synths + the speech service
  • Fenrir — the modern modular console reader
  • Emacspeak — the speaking Emacs environment — Raman, 1995 — still maintained
  • Accessible-Coconut, Vinux, Sonar, TalkingArch — the eyes-free distros — each a distro pre-configured for speech/braille from boot

Slint is Slackware rebuilt for accessibility — the same system this handbook features, but the installer itself speaks. Slint boots a talking installer, ships Speakup+BRLTTY+Orca working out of the box, and is both the handbook's recommended host and its accessibility answer. Installing Linux blind is a solved problem — Slint solved it.

The eyes-free LFS build

Chapter 2's whole setup is console-only — gdisk, mkfs, tar, configure — nothing needs a GUI. Speakup reads every command's output; configure's checks scroll and are read; make's errors speak. The entire LFS build is achievable eyes-free on a Slint host — the toolchain's text-native design is the accessibility. The only friction: make menuconfig's ncurses UI — navigable via review mode, or replaced by make config/make olddefconfig's line-based alternatives.

The kernel config for accessibility

# make menuconfig — Device Drivers → Accessibility → Speakup
CONFIG_ACCESSIBILITY=y
CONFIG_SPEAKUP=y
CONFIG_SPEAKUP_SYNTH_SOFT=y    # software synth
CONFIG_SPEAKUP_SYNTH_BNS=y     # the Braille 'n Speak driver
CONFIG_SPEAKUP_SYNTH_DTLK=y    # DoubleTalk

Inside an LFS system you configure it yourself — the kernel chapter's menuconfig includes Accessibility → Speakup — a feature most distros bury but LFS lets you build in.

The console-reading disciplines

  • less pages predictably — screen readers read line-by-line; pagers are friends
  • --no-pager, | cat defeat auto-paging (git's pager speaks awkwardly)
  • TERM matters — dumb vs linux vs xterm changes how readers track output
  • Line-oriented tools (grep -n, awk, sed) are naturally readable; full-screen TUIs (ncurses) need review-mode fluency
  • stty cols 80 keeps output within a braille display's width

Timeline

1976Kurzweil Reading Machine — reads paper
1987Braille 'n Speak — the notetaker
1995BRLTTY + Emacspeak
1998Speakup v0.01 — the kernel speaks
2000sOrca, speech-dispatcher, eyes-free distros
2020Speakup reaches mainline — kernel 5.9

See also

This page was last edited 2026-10-25 14:51:07 UTC by ALB Team. What links here