Speech history plugin added. Code and documentation audit completed. Preparing for tagged release.

This commit is contained in:
Storm Dragon
2025-12-22 19:43:41 -05:00
parent 10b3592173
commit 200faa9e36
19 changed files with 773 additions and 367 deletions

View File

@@ -23,15 +23,12 @@ Cthulhu is a fork of the Orca screen reader, providing access to the graphical d
./clean-local.sh
```
### System Build (Autotools)
### System Build (Meson)
```bash
# Configure and build for system installation
./autogen.sh --prefix=/usr
make
make install
# Or use CI script
ci/build_and_install.sh
meson setup _build --prefix=/usr
meson compile -C _build
sudo meson install -C _build
```
### Alternative Build (Python packaging)
@@ -82,7 +79,7 @@ src/cthulhu/plugins/MyPlugin/
├── __init__.py # Package import: from .plugin import MyPlugin
├── plugin.py # Main implementation
├── plugin.info # Metadata
└── Makefile.am # Build system integration
└── meson.build # Meson install integration
```
#### Minimal Plugin Template
@@ -177,22 +174,30 @@ Version = 1.0.0
Website = https://example.com
```
**Makefile.am template:**
```makefile
pluginname_PYTHON = \
__init__.py \
plugin.py
**meson.build template:**
```meson
plugin_python_sources = files([
'__init__.py',
'plugin.py',
])
pluginnamedir = $(pkgdatadir)/cthulhu/plugins/PluginName
python3.install_sources(
plugin_python_sources,
subdir: 'cthulhu/plugins/PluginName'
)
pluginname_DATA = \
plugin.info
EXTRA_DIST = $(pluginname_DATA)
install_data(
'plugin.info',
install_dir: python3.get_install_dir() / 'cthulhu' / 'plugins' / 'PluginName'
)
```
**Build Integration:**
Add plugin to `src/cthulhu/plugins/Makefile.am` SUBDIRS line.
Add plugin to `src/cthulhu/plugins/meson.build`:
```meson
subdir('PluginName')
```
#### Advanced Plugin Features
@@ -220,12 +225,12 @@ Add plugin to `src/cthulhu/plugins/Makefile.am` SUBDIRS line.
- Community: IRC #stormux on irc.stormux.org
### Key Dependencies
- Python 3.3+, pygobject-3.0, pluggy, gtk+-3.0
- Python 3.10+, pygobject-3.0, pluggy, gtk+-3.0
- AT-SPI2, ATK for accessibility
- Optional: BrlTTY/BrlAPI (braille), Speech Dispatcher, liblouis, GStreamer
### Version Information
Current version in `src/cthulhu/cthulhuVersion.py`, codename "plugins"
Current version and codename in `src/cthulhu/cthulhuVersion.py`
### Self-voicing Feature
Direct speech output via Unix socket:
@@ -263,9 +268,8 @@ The test system uses keystroke recording/playback with speech and braille output
### **Major Architectural Differences**
#### **Build Systems**
- **Cthulhu**: Autotools (102 Makefile.am files) - mature, stable build system
- **Orca**: Meson/Ninja (33 meson.build files, 84 legacy makefiles) - modern, faster builds
- **Integration Consideration**: Should Cthulhu migrate to Meson for faster builds and better dependencies?
- **Cthulhu**: Meson/Ninja (primary build system)
- **Orca**: Meson/Ninja
#### **Plugin Architecture**
- **Cthulhu**: Extensive pluggy-based plugin system with 9 core plugins
@@ -492,7 +496,7 @@ src/cthulhu/plugins/YourPlugin/
├── __init__.py # Import: from .plugin import YourPlugin
├── plugin.py # Main plugin class
├── plugin.info # Metadata (name, version, description)
└── Makefile.am # Build system integration
└── meson.build # Meson install integration
```
### **Essential Plugin Files**
@@ -514,14 +518,22 @@ builtin = false
hidden = false
```
#### **`Makefile.am`** - Build Integration
```makefile
cthulhu_python_PYTHON = \
__init__.py \
plugin.info \
plugin.py
#### **`meson.build`** - Build Integration
```meson
yourplugin_python_sources = files([
'__init__.py',
'plugin.py',
])
cthulhu_pythondir=$(pkgpythondir)/plugins/YourPlugin
python3.install_sources(
yourplugin_python_sources,
subdir: 'cthulhu/plugins/YourPlugin'
)
install_data(
'plugin.info',
install_dir: python3.get_install_dir() / 'cthulhu' / 'plugins' / 'YourPlugin'
)
```
### **Plugin Class Template**
@@ -645,14 +657,9 @@ self.registerGestureByString(
### **Plugin Registration & Activation**
#### **Add to Build System**
1. **Add to `src/cthulhu/plugins/Makefile.am`**:
```makefile
SUBDIRS = YourPlugin OtherPlugin1 OtherPlugin2 ...
```
2. **Add to `configure.ac`**:
```
src/cthulhu/plugins/YourPlugin/Makefile
1. **Add to `src/cthulhu/plugins/meson.build`**:
```meson
subdir('YourPlugin')
```
#### **Add to Default Active Plugins**
@@ -835,4 +842,4 @@ cd /home/storm/devel/orca && meson setup _build && meson compile -C _build
# Test D-Bus interface
# (requires running Orca instance with D-Bus support)
```
```