Using CySpeak

Documentation / CySpeak

Using 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).

The Reading Face

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.

Speak Selection Order

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)".

Hotkeys Via Cykeys

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.

Engines

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.

See Also

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.