Files

Hello World

Press Cthulhu+Alt+Shift+H to speak and braille Hello world!. The Tentacle suggests this global binding in both desktop and laptop layouts. Core and user bindings take precedence; a conflict leaves the command available for remapping. Learn mode announces the command description without running it.

The command returns one plain-message presentation through the reader SDK, with uninterruptible = true. After the reader accepts the result, ordinary typing, focus changes and reader commands cannot interrupt the speech; later output queues until the synthesizer reports completion. Pending stale results are still rejected. Session disable/failure, screen lock, terminal handoff, reader shutdown, speech disable and speech mode changes can stop it. Protection has a 30-second bound starting at acceptance. This requires Speech Dispatcher completion events; hardware speech backends cannot guarantee audible completion. The message obeys speech/beeps/off and Braille preferences. Braille uses a normal translated flash and can be replaced by newer core output.

Hello World requests presentation access only. It receives no focused text, uses no network services, and stores no settings. Source and distribution are licensed under GPL-3.0-or-later; see LICENSE.

Repository installation

Refresh the source in global Preferences → Tentacles. Space on Hello World opens first-use review and installs/enables the package after acceptance. Install saves it disabled instead. The release must be published at the catalog URL; building locally alone does not make it downloadable. Refresh status until Active before trying the shortcut.

Local launch

Run make build from the repository root. Rebuild Cthulhu with the matching SDK/output implementation before a live test:

cd ../cthulhu
GOCACHE=/tmp/cthulhu-cache go build -o /tmp/cthulhu-with-hello-world ./cmd/cthulhu

Create a development launch list with an absolute executable path. From this repository root, this command writes one without changing your saved registry:

python3 - <<'PY'
import json
from pathlib import Path

programPath = Path('hello-world/bin/hello-world').resolve()
Path('/tmp/cthulhu-hello-world.json').write_text(json.dumps([
    {'ID': 'hello-world', 'Presentation': True, 'Program': [str(programPath)]}
]) + '\n')
PY

When ready to test, launch the rebuilt reader explicitly:

/tmp/cthulhu-with-hello-world --replace --tentacles /tmp/cthulhu-hello-world.json

That command replaces the running Go reader and selects the development launch list instead of saved Tentacles. The reader automatically requests systemd user cgroup delegation. A delegation failure leaves the Tentacle unavailable. Resource limits do not make untrusted same-user programs safe.

Live verification

  1. In an ordinary accessible GTK window on Xorg, press Cthulhu+Alt+Shift+H. Listen for exactly “Hello world!” and verify it on a connected Braille display. Repeat with desktop and laptop layouts.
  2. Immediately type or move focus after activation. Once speech has begun, it should finish and later control speech should follow. Input before the result is accepted can still suppress that stale reply.
  3. Try the binding in learn mode: expect its description, with no greeting. Verify existing heading navigation and ordinary reader commands still work.
  4. During the greeting, disable Tentacles with Cthulhu+Ctrl+Shift+Q, enter screen lock or terminal handoff, or change speech mode. The greeting must stop and must not resume afterward. Restart the reader to re-enable the development list.
  5. Check speech off/beeps and disabled Braille settings. Hello World must respect them. Remap or occupy the suggested binding and check core/user precedence.

Audible speech, physical shortcuts, actual display output and the repository-installation workflow require these live checks; protocol tests do not establish them.