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
|
AT-SPI include the GNOME GTK+ toolkit, the Java platform's Swing
|
||||||
toolkit, OpenOffice/LibreOffice, Gecko, WebKitGtk, and KDE Qt toolkit.
|
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
|
## Dependencies
|
||||||
|
|
||||||
Cthulhu has the following dependencies:
|
### Core Requirements
|
||||||
|
|
||||||
* Python 3 - Python platform
|
* **Python 3.3+** - Python platform
|
||||||
* pygobject-3.0 - Python bindings for the GObject library
|
* **pygobject-3.0** - Python bindings for the GObject library
|
||||||
* pluggy - Plugin and hook calling mechanisms for python
|
* **gtk+-3.0** - GTK+ toolkit (minimal usage for AT-SPI integration)
|
||||||
* gtk+-3.0 - GTK+ toolkit
|
* **AT-SPI2** - Assistive Technology Service Provider Interface
|
||||||
* json-py - a JSON (<https://json.org/>) reader and writer in Python
|
* **ATK** - Accessibility Toolkit
|
||||||
* python-speechd - Python bindings for Speech Dispatcher (optional)
|
|
||||||
* BrlTTY - BrlTTY (<https://mielke.cc/brltty/>) support for braille (optional)
|
### Desktop-Neutral Features
|
||||||
* BrlAPI - BrlAPI support for braille (optional)
|
|
||||||
* liblouis - Liblouis (<http://liblouis.org/>) support for contracted braille (optional)
|
* **pluggy** - Plugin and hook calling mechanisms for Python
|
||||||
* py-setproctitle - Python library to set the process title (optional)
|
* **python-dasbus** - D-Bus remote control interface (optional)
|
||||||
* gstreamer-1.0 - GStreamer - Streaming media framework (optional)
|
* **libpeas** - Plugin loader library
|
||||||
* socat - Used for self-voicing functionality.
|
|
||||||
|
### 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
|
You are strongly encouraged to also have the latest stable versions
|
||||||
of AT-SPI2 and ATK.
|
of AT-SPI2 and ATK.
|
||||||
|
@ -2,37 +2,54 @@
|
|||||||
|
|
||||||
pkgname=cthulhu
|
pkgname=cthulhu
|
||||||
pkgver=2025.07.01
|
pkgver=2025.07.01
|
||||||
pkgrel=1
|
pkgrel=2
|
||||||
pkgdesc="Screen reader for individuals who are blind or visually impaired forked from Orca"
|
pkgdesc="Desktop-agnostic screen reader with plugin system, forked from Orca"
|
||||||
url="https://git.stormux.org/storm/cthulhu"
|
url="https://git.stormux.org/storm/cthulhu"
|
||||||
arch=(any)
|
arch=(any)
|
||||||
license=(LGPL)
|
license=(LGPL)
|
||||||
depends=(
|
depends=(
|
||||||
|
# Core AT-SPI accessibility
|
||||||
at-spi2-core
|
at-spi2-core
|
||||||
brltty
|
python-atspi
|
||||||
gobject-introspection-runtime
|
gobject-introspection-runtime
|
||||||
gsettings-desktop-schemas
|
python-gobject
|
||||||
|
python-cairo
|
||||||
|
gtk3
|
||||||
|
|
||||||
|
# Audio and speech
|
||||||
|
speech-dispatcher
|
||||||
gstreamer
|
gstreamer
|
||||||
gst-plugins-base # playbin, audiotestsrc, basic decoders
|
gst-plugins-base # playbin, audiotestsrc, basic decoders
|
||||||
gst-plugins-good # pulsesink, more decoders
|
gst-plugins-good # pulsesink, more decoders
|
||||||
gtk3
|
|
||||||
hicolor-icon-theme
|
# Braille support
|
||||||
|
brltty
|
||||||
liblouis
|
liblouis
|
||||||
|
|
||||||
|
# Plugin system and D-Bus remote control
|
||||||
|
python-pluggy
|
||||||
|
python-dasbus
|
||||||
libpeas
|
libpeas
|
||||||
|
|
||||||
|
# Desktop integration
|
||||||
|
gsettings-desktop-schemas
|
||||||
|
hicolor-icon-theme
|
||||||
libwnck3
|
libwnck3
|
||||||
pango
|
pango
|
||||||
|
|
||||||
|
# System utilities
|
||||||
python
|
python
|
||||||
python-atspi
|
|
||||||
python-cairo
|
|
||||||
python-gobject
|
|
||||||
python-pluggy
|
|
||||||
python-setproctitle
|
python-setproctitle
|
||||||
python-dasbus
|
socat # for self-voicing feature
|
||||||
socat
|
|
||||||
speech-dispatcher
|
|
||||||
xorg-xkbcomp
|
xorg-xkbcomp
|
||||||
xorg-xmodmap
|
xorg-xmodmap
|
||||||
)
|
)
|
||||||
|
optdepends=(
|
||||||
|
'espeak-ng: Alternative TTS engine'
|
||||||
|
'festival: Alternative TTS engine'
|
||||||
|
'flite: Lightweight TTS engine'
|
||||||
|
'espeak: Legacy TTS engine'
|
||||||
|
)
|
||||||
makedepends=(
|
makedepends=(
|
||||||
git
|
git
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user