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