Initial commit.

This commit is contained in:
Storm Dragon committed 2026-10-13 13:00:48 -04:00
commit 6a02494ac8
14 files changed
+843

No files matched your search

+78
View File
@@ -0,0 +1,78 @@
# 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](LICENSE).
## Local launch
Run `make build` from the repository root. Rebuild Cthulhu-Go with the matching
SDK/output implementation before a live test:
```sh
cd ../cthulhu-go
GOCACHE=/tmp/cthulhu-go-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:
```sh
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:
```sh
/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 eventual
repository-installation workflow require these live checks; protocol tests do
not establish them.