diff --git a/README.md b/README.md index 7c9b215..b65eaf3 100644 --- a/README.md +++ b/README.md @@ -18,23 +18,66 @@ operating environments. Applications and toolkits supporting the AT-SPI include the GNOME GTK+ toolkit, the Java platform's Swing toolkit, OpenOffice/LibreOffice, Gecko, WebKitGtk, and KDE Qt toolkit. +## Key Features + +### Desktop-Agnostic Design +- **Universal compatibility**: Works on KDE, XFCE, i3, Sway, and other desktop environments +- **Minimal GNOME dependencies**: Reduced reliance on GNOME-specific libraries +- **Tiling window manager optimized**: Enhanced support for i3, Sway, and similar WMs + +### Plugin System +- **Extensible architecture**: Plugin system using pluggy framework +- **Hot-reloadable plugins**: Add functionality without restarting +- **Community plugins**: User and system plugin directories + +### Remote Control +- **D-Bus interface**: External control via D-Bus service +- **API access**: Remote access to Cthulhu functions and settings +- **Automation support**: Script-friendly remote control + +### Sleep Mode +- **Application-specific**: Disable speech/events per application +- **Toggle keybinding**: `Cthulhu+Ctrl+Alt+Shift+Q` (matches Orca) +- **Preserves exit key**: Only sleep toggle remains active + +### Self-Voicing +- **Unix socket interface**: Direct speech output via `/tmp/cthulhu.sock` +- **External integration**: Other applications can speak through Cthulhu +- **Simple protocol**: `echo "text" | socat - UNIX-CLIENT:/tmp/cthulhu.sock` ## Dependencies -Cthulhu has the following dependencies: +### Core Requirements -* Python 3 - Python platform -* pygobject-3.0 - Python bindings for the GObject library -* pluggy - Plugin and hook calling mechanisms for python -* gtk+-3.0 - GTK+ toolkit -* json-py - a JSON () reader and writer in Python -* python-speechd - Python bindings for Speech Dispatcher (optional) -* BrlTTY - BrlTTY () support for braille (optional) -* BrlAPI - BrlAPI support for braille (optional) -* liblouis - Liblouis () support for contracted braille (optional) -* py-setproctitle - Python library to set the process title (optional) -* gstreamer-1.0 - GStreamer - Streaming media framework (optional) -* socat - Used for self-voicing functionality. +* **Python 3.3+** - Python platform +* **pygobject-3.0** - Python bindings for the GObject library +* **gtk+-3.0** - GTK+ toolkit (minimal usage for AT-SPI integration) +* **AT-SPI2** - Assistive Technology Service Provider Interface +* **ATK** - Accessibility Toolkit + +### Desktop-Neutral Features + +* **pluggy** - Plugin and hook calling mechanisms for Python +* **python-dasbus** - D-Bus remote control interface (optional) +* **libpeas** - Plugin loader library + +### Audio and Speech + +* **python-speechd** - Python bindings for Speech Dispatcher (recommended) +* **gstreamer-1.0** - GStreamer streaming media framework (for sounds) + +### Braille Support (Optional) + +* **BrlTTY** - BrlTTY () braille terminal support +* **BrlAPI** - BrlAPI Python bindings for braille +* **liblouis** - Liblouis () contracted braille translation + +### System Integration + +* **py-setproctitle** - Python library to set the process title (optional) +* **socat** - Used for self-voicing functionality +* **xorg-xkbcomp** - X keyboard compiler (for key remapping) +* **xorg-xmodmap** - X modifier map utility You are strongly encouraged to also have the latest stable versions of AT-SPI2 and ATK. diff --git a/distro-packages/Arch-Linux/PKGBUILD b/distro-packages/Arch-Linux/PKGBUILD index d550dd4..3e57c52 100644 --- a/distro-packages/Arch-Linux/PKGBUILD +++ b/distro-packages/Arch-Linux/PKGBUILD @@ -2,37 +2,54 @@ pkgname=cthulhu pkgver=2025.07.01 -pkgrel=1 -pkgdesc="Screen reader for individuals who are blind or visually impaired forked from Orca" +pkgrel=2 +pkgdesc="Desktop-agnostic screen reader with plugin system, forked from Orca" url="https://git.stormux.org/storm/cthulhu" arch=(any) license=(LGPL) depends=( + # Core AT-SPI accessibility at-spi2-core - brltty + python-atspi gobject-introspection-runtime - gsettings-desktop-schemas + python-gobject + python-cairo + gtk3 + + # Audio and speech + speech-dispatcher gstreamer gst-plugins-base # playbin, audiotestsrc, basic decoders gst-plugins-good # pulsesink, more decoders - gtk3 - hicolor-icon-theme + + # Braille support + brltty liblouis + + # Plugin system and D-Bus remote control + python-pluggy + python-dasbus libpeas + + # Desktop integration + gsettings-desktop-schemas + hicolor-icon-theme libwnck3 pango + + # System utilities python - python-atspi - python-cairo - python-gobject - python-pluggy python-setproctitle - python-dasbus - socat - speech-dispatcher + socat # for self-voicing feature xorg-xkbcomp xorg-xmodmap ) +optdepends=( + 'espeak-ng: Alternative TTS engine' + 'festival: Alternative TTS engine' + 'flite: Lightweight TTS engine' + 'espeak: Legacy TTS engine' +) makedepends=( git )