Speech history plugin added. Code and documentation audit completed. Preparing for tagged release.
This commit is contained in:
89
CLAUDE.md
89
CLAUDE.md
@@ -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)
|
||||
```
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user