Update documentation and PKGBUILD for new features

Update README.md:
- Add comprehensive Key Features section highlighting desktop-agnostic design
- Document plugin system, D-Bus remote control, sleep mode, and self-voicing
- Reorganize dependencies section with clear categories
- Emphasize desktop neutrality and universal compatibility

Update PKGBUILD:
- Bump pkgrel to reflect new features
- Improve package description to highlight desktop-agnostic nature
- Organize dependencies with comments for clarity
- Add optdepends for alternative TTS engines
- Ensure all new dependencies (python-dasbus, python-pluggy) are included

These updates reflect Cthulhu's evolution from a simple Orca fork to a
feature-rich, desktop-agnostic screen reader with plugin capabilities.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Storm Dragon
2025-07-31 14:17:32 -04:00
parent 05a4f90af2
commit 06d1c21d03
2 changed files with 86 additions and 26 deletions

View File

@ -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 (<https://json.org/>) reader and writer in Python
* python-speechd - Python bindings for Speech Dispatcher (optional)
* BrlTTY - BrlTTY (<https://mielke.cc/brltty/>) support for braille (optional)
* BrlAPI - BrlAPI support for braille (optional)
* liblouis - Liblouis (<http://liblouis.org/>) 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 (<https://mielke.cc/brltty/>) braille terminal support
* **BrlAPI** - BrlAPI Python bindings for braille
* **liblouis** - Liblouis (<http://liblouis.org/>) 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.

View File

@ -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
)