Add Orca screen reader with Piper TTS#5139
Conversation
There was a problem hiding this comment.
Pull request overview
Adds an accessibility option to Omarchy by introducing an Orca screen reader toggle plus a helper to configure Piper TTS as a Speech Dispatcher backend (aiming to improve voice quality over espeak-ng), along with install/binding wiring.
Changes:
- Install
orcaandspeech-dispatcherduring T2 Mac setup. - Add a default Hyprland keybinding (
XF86LaunchA) to toggle Orca. - Introduce
omarchy-toggle-orcaandomarchy-setup-piper-ttshelper scripts.
Reviewed changes
Copilot reviewed 2 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| install/config/hardware/apple/fix-t2.sh | Adds Orca/Speech Dispatcher packages during T2 provisioning. |
| default/hypr/bindings/media.conf | Adds a default keybinding to toggle the screen reader. |
| bin/omarchy-toggle-orca | Adds a toggle script to start/stop Orca. |
| bin/omarchy-setup-piper-tts | Downloads Piper + voice model and writes Speech Dispatcher config to use Piper. |
Tip
If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| KERNEL_CMDLINE[default]+=" intel_iommu=on iommu=pt pcie_ports=compat" | ||
| EOF | ||
|
|
||
| omarchy-pkg-add orca speech-dispatcher |
There was a problem hiding this comment.
orca/speech-dispatcher are only installed in the T2-specific path, but the global Hyprland binding/script introduced in this PR will be present on non‑T2 systems too. That leaves the default keybinding invoking omarchy-toggle-orca without the required packages installed. Consider moving these packages to the base (or an accessibility) install step, or make omarchy-toggle-orca handle missing dependencies gracefully (notify/prompt to install).
| bindeld = ,XF86KbdBrightnessUp, Keyboard brightness up, exec, omarchy-brightness-keyboard up | ||
| bindeld = ,XF86KbdBrightnessDown, Keyboard brightness down, exec, omarchy-brightness-keyboard down | ||
| bindld = ,XF86KbdLightOnOff, Keyboard backlight cycle, exec, omarchy-brightness-keyboard cycle | ||
| bindld = ,XF86LaunchA, Toggle screen reader, exec, omarchy-toggle-orca |
There was a problem hiding this comment.
This adds a default binding that will run on all installs, but omarchy-toggle-orca currently assumes orca is installed and will fail with “command not found” on non‑T2 systems. Either ensure orca/speech-dispatcher are installed for all users, or make the script no-op with a notification when dependencies aren’t present.
| bindld = ,XF86LaunchA, Toggle screen reader, exec, omarchy-toggle-orca | |
| bindld = ,XF86LaunchA, Toggle screen reader, exec, sh -c 'command -v orca >/dev/null 2>&1 && command -v speech-dispatcher >/dev/null 2>&1 && omarchy-toggle-orca || notify-send "Screen reader unavailable" "Install orca and speech-dispatcher to use this shortcut."' |
9441b99 to
360dc94
Compare
360dc94 to
2fd4206
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 5 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| bindeld = ,XF86KbdBrightnessUp, Keyboard brightness up, exec, omarchy-brightness-keyboard up | ||
| bindeld = ,XF86KbdBrightnessDown, Keyboard brightness down, exec, omarchy-brightness-keyboard down | ||
| bindld = ,XF86KbdLightOnOff, Keyboard backlight cycle, exec, omarchy-brightness-keyboard cycle | ||
| bindld = ,F3, Toggle screen reader, exec, omarchy-toggle-orca |
There was a problem hiding this comment.
The binding uses F3, but the PR description says the toggle should be on XF86LaunchA (Fn+F3 on many MacBooks). Binding to plain F3 applies to all keyboards and is likely to conflict with normal F-key usage; consider switching the binding to XF86LaunchA (or otherwise making it Mac-specific) to match the stated intent.
| run_logged $OMARCHY_INSTALL/config/powerprofilesctl-rules.sh | ||
| run_logged $OMARCHY_INSTALL/config/wifi-powersave-rules.sh | ||
| run_logged $OMARCHY_INSTALL/config/plocate-ac-only.sh | ||
| run_logged $OMARCHY_INSTALL/config/accessibility.sh |
There was a problem hiding this comment.
accessibility.sh is now run from the global install/config/all.sh, which means orca/speech-dispatcher will be installed for all installs. The PR description says these packages are installed during the T2 setup; either move this to the T2-specific setup path or update the PR description to reflect that this is now part of the default install.
2fd4206 to
79cf52f
Compare
Summary
omarchy-toggle-orcato start/stop the Orca screen reader with a single keypressomarchy-setup-piper-ttsto download Piper TTS and configure it as the speech-dispatcher backend (replaces espeak-ng's robotic voice with a natural-sounding neural voice)orcaandspeech-dispatchervia newinstall/config/accessibility.shfor all usersA nice-to-have accessibility addition — for users who benefit from a screen reader, this pairs Orca with Piper TTS so the voice sounds natural instead of the default robotic espeak-ng output.