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:
69
README.md
69
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 (<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.
|
||||
|
@ -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
|
||||
)
|
||||
|
Reference in New Issue
Block a user