Documentation / CySpeak
CySpeak is a small Motif reading face. Day to day you either leave the window open for a buffer, or bind the one-shot CLI forms in cykeys so speak and stop work with no window up.
Prefs: ~/.cyanotype/cyspeak.conf (override with CYSPEAK_CONF).
Launch cyspeak (or cyspeak FILE) to open the window. A second GUI launch raises the first and exits (prefs-singleton). CLI one-shots do not claim that singleton.
Typical habits:
Empty Speak reports "Nothing to speak" and does not call an engine.
Conf keys speak_primary and speak_clipboard (both on by default) decide what Speak Selection and cyspeak --speak-selection read:
1. If Primary is enabled and non-empty, queue that text first 2. If Clipboard is enabled and non-empty, queue that text second 3. Speak first, then second. When both are non-empty there is a short pause and a spoken cue "Clipboard." before the second segment
Neither source enabled: no-op with a status hint. Both enabled and both empty: "Nothing to speak (selection empty)".
CySpeak never XGrabKeys the root. Bind the catalog exec rows in cykeys (or edit ~/.cyanotype/keys.conf). There are no stock chords for these; pick your own:
exec.cyspeak.speak_sel Super+Shift+s cyspeak --speak-selection exec.cyspeak.stop Super+Shift+x cyspeak --stop
cywm reloads keys on _CY_WM_RELOAD_KEYS after cykeys Apply. Speak-selection works with no GUI open; it exits when done.
Automatic chain: espeak-ng, espeak, flite, festival, spd-say. Pin one with the engine key in conf or the in-app engine control. Missing engines show greyed. --list-engines prints what this host actually has.
Stop uses spd-say -C when that backend is speaking; otherwise the engine process group is killed. A new Speak always cancels the previous job first.
Cyanotype Project. Blueprint Desktop. BSD 2-clause.
Not affiliated with Silicon Graphics. SGI, IRIX, and Indigo Magic
belong to their owners. 1.0 is aimed at 31 October 2026.