185 Commits

Author SHA1 Message Date
Storm Dragon
928bae6d86 OCR is much more feature complete. 2025-08-22 13:01:43 -04:00
Storm Dragon
1fed5922c3 Ocr initial implementation complete. 2025-08-21 23:14:47 -04:00
Storm Dragon
41c91ffc66 Initial work on ocr integration. Is broken currently. 2025-08-21 21:59:29 -04:00
Storm Dragon
03f13140fe Latest PKGBUILD update. 2025-08-19 19:21:17 -04:00
Storm Dragon
68bc571a83 Fixed sleep mode after a long and fierce battle. 2025-08-14 20:53:03 -04:00
Storm Dragon
fb8c64a406 2 new options added for the ai assistant. First, describe images, which *should* describe any images on the screen. The second is browse for image, which will provide a description for the selected image specifically. 2025-08-12 15:34:35 -04:00
Storm Dragon
15bcc0589a Remove a debug file that accidently got committed. 2025-08-12 03:09:14 -04:00
Storm Dragon
287522c293 Cthulhu should now work no matter where it gets installed. 2025-08-12 03:01:33 -04:00
Storm Dragon
e6cee379ee Remove libpeas dependency since we don't use it any more. 2025-08-12 02:53:27 -04:00
Storm Dragon
1b87262861 Updated README. 2025-08-12 02:43:32 -04:00
Storm Dragon
e1f2467415 Fix launcher path logic for proper system/local separation
- Add runtime detection of installation type based on launcher location
- Local installations (~/.local/bin) now correctly load from ~/.local/lib/python*/site-packages
- System installations (/usr/bin) load from /usr/lib/python*/site-packages
- Source directory execution continues to work from development tree
- Restores clear separation between system and local installations like autotools had

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-12 02:26:47 -04:00
Storm Dragon
84299cc139 Fixed some bugs introduced by the new build system. 2025-08-12 02:12:07 -04:00
Storm Dragon
502f73ae2a Fix icon cache update script for local builds
- Make gtk4-update-icon-cache optional and gracefully handle failures
- Use proper MESON_INSTALL_DESTDIR_PREFIX environment variable
- Prevent build failures when icon cache can't be updated

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-12 02:12:07 -04:00
Storm Dragon
d4255f792c fixed removal of settings in cleanup script. 2025-08-12 02:12:07 -04:00
Storm Dragon
1ecdd21b7c Remove GNOME dependencies and make more desktop-neutral - cleaned
- Remove gsettings-desktop-schemas dependency (GNOME-specific)
- Replace gnome.post_install() with manual gtk4-update-icon-cache
- Remove GNOME import from meson.build
- Make autostart desktop file desktop-neutral (remove GSettings condition)
- Add accessibility categories and keywords to desktop file

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-12 02:11:58 -04:00
Storm Dragon
5cbe6267de Fix meson build: add missing cthulhu_state.py and fix generated file dependencies
- Add cthulhu_state.py to cthulhu_python_sources list
- Fix dependency order for generated files (cthulhu_bin.py, cthulhu_i18n.py, cthulhu_platform.py)
- Use configure_file() variables in python3.install_sources() for proper dependency tracking

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-11 16:49:47 -04:00
Storm Dragon
21b7cff27c Updates to meson.build. 2025-08-11 16:44:36 -04:00
Storm Dragon
2d24a5b126 Fixes to the new meson/ninja build system. Pretty close to working... I think. 2025-08-11 16:27:27 -04:00
Storm Dragon
aa369af689 Allow building without help dependencies. 2025-08-11 13:41:27 -04:00
Storm Dragon
02fa1e4356 Rest of the conversion to meson/ninja missed in the first push. Thanks again Claud for the assist. 2025-08-11 13:27:22 -04:00
Storm Dragon
8bcc85f82c Migrated to meson/ninja for building. There may be bugs. Thanks Claud for the assist. 2025-08-11 13:17:09 -04:00
Storm Dragon
7b84cd7492 Ollama AI can now have customized api endpoint instead of always using localhost. 2025-08-11 12:10:21 -04:00
Storm Dragon
a80bca78d1 Clickables now present a message when loading. Focus is preserved. Woogoo 2025-08-10 21:53:49 -04:00
Storm Dragon
b715e9071b Press enter on clickables to activate them like any other web control. Very experimental. 2025-08-10 21:28:56 -04:00
Storm Dragon
eae9a5896e Backport browser fixes for chromium and new d-bus functionality from Orca. 2025-08-10 12:45:50 -04:00
Storm Dragon
89df8991f7 More work on finding and fixing bugs. I want to improve stability before progressing with new functionality. 2025-08-06 00:10:23 -04:00
Storm Dragon
c9cfe3e0f4 Went bug huntin' Squished a bunch of 'em little critters. 2025-08-05 23:57:23 -04:00
Storm Dragon
37bd89ab87 many updates to AI Assistant plugin. Improved UI, hopefully improved accuracy as well. 2025-08-05 19:05:45 -04:00
Storm Dragon
a322c1d9b2 Bug fix in ActionPresenter. 2025-08-04 01:00:40 -04:00
Storm Dragon
493350f049 Work on backporting new d-bus functionality from Orca. 2025-08-04 00:55:55 -04:00
Storm Dragon
97f6cec0ed Improvements to action menu. 2025-08-04 00:36:27 -04:00
Storm Dragon
ecb1ae4fe5 Keyboard seems to be working, same methods as orca now. 2025-08-04 00:21:49 -04:00
Storm Dragon
9c8063c55e AI assistance pretty much integrated. 2 options currently that actually work, Claud and Ollama. More planned for later, so other options available they just don't do anything. 2025-08-03 14:24:03 -04:00
Storm Dragon
270def0a59 Implement complete AI Assistant plugin with Claude Code integration
This commit adds a comprehensive AI Assistant plugin that provides AI-powered
accessibility features for the Cthulhu screen reader.

Major Features:
- Screen analysis using screenshots combined with AT-SPI accessibility data
- Natural language questions about UI elements and screen content
- Safe action assistance with user confirmation (click, type, copy)
- Multi-provider AI support (Claude, Claude Code CLI, OpenAI, Gemini, Ollama)
- Complete preferences GUI integration with provider selection and settings

Technical Implementation:
- Plugin-based architecture using pluggy framework
- Three keybindings: Cthulhu+Ctrl+Shift+A/Q/D for describe/question/action
- PyAutoGUI integration for universal input synthesis (Wayland/X11 compatible)
- Robust error handling and user safety confirmations
- Claude Code CLI integration (no API key required)

Core Files Added/Modified:
- src/cthulhu/plugins/AIAssistant/ - Complete plugin implementation
- src/cthulhu/settings.py - AI settings and Claude Code provider constants
- src/cthulhu/cthulhu-setup.ui - AI Assistant preferences tab
- src/cthulhu/cthulhu_gui_prefs.py - GUI handlers and settings management
- distro-packages/Arch-Linux/PKGBUILD - Updated dependencies
- CLAUDE.md - Comprehensive documentation

Testing Status:
- Terminal applications: 100% working
- Web forms (focus mode): 100% working
- Question and description features: 100% working
- Claude Code CLI integration: 100% working
- Settings persistence: 100% working

The AI Assistant is fully functional and ready for production use.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-03 13:45:34 -04:00
Storm Dragon
a8672165d8 AI capabilities added. Working 90 percent with ollama, more providers and functionality coming soon. 2025-08-03 00:07:59 -04:00
Storm Dragon
9ead764b2e Fixed a bug in control+shift key parsing for plugins. 2025-08-02 23:03:52 -04:00
Storm Dragon
d41d9076d1 Notify users that to apply changes, Cthulhu has to be restarted. The previous attempt was not screen reader accessible, a terrible thing for a screen reader itself to have inaccessible components lol. 2025-08-02 13:14:23 -04:00
Storm Dragon
06894693b0 Plugin manager added. No more hand editing the settings file to enable and disable plugins. Hopefully less breakage. Updates to the local build and clean files for installing test builds. 2025-08-02 05:11:56 -04:00
Storm Dragon
cb20579625 Indentation plugin finally working. Indentation now indicated by beeps. 2025-08-02 04:23:51 -04:00
Storm Dragon
3679609923 Keep settings files when cleaning. My bad that actually got removed in the first place. 2025-08-02 03:59:52 -04:00
Storm Dragon
dfe51aa45f Bump version file so it matches the latest commit date. 2025-08-02 02:35:45 -04:00
Storm Dragon
06d1c21d03 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>
2025-07-31 14:18:18 -04:00
Storm Dragon
05a4f90af2 Add local development infrastructure and documentation
Add essential development tools and documentation for Cthulhu development:

Development Scripts:
- build-local.sh: Local build and install to ~/.local
- clean-local.sh: Clean build artifacts and local installation
- test-local.sh: Test local installation

Documentation:
- README-REMOTE-CONTROLLER.md: D-Bus service API documentation
- README-DEVELOPMENT.md: Development workflow documentation
- .gitignore: Updated with local build artifact patterns

These tools enable efficient local development without system-wide installation
and provide proper documentation for the D-Bus remote control capabilities.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-31 14:03:48 -04:00
Storm Dragon
4d2561a293 Implement sleep mode functionality for Cthulhu
Add application-specific sleep mode that disables speech and events while preserving the ability to toggle back to normal operation.

Features:
- Keybinding: Cthulhu+Ctrl+Alt+Shift+Q (matches Orca)
- Per-application scope (only affects focused app)
- Suppresses all speech, braille, and event processing
- Preserves sleep mode toggle keybinding for exit
- Status messages on enter/exit

Implementation:
- New sleepmode script module in src/cthulhu/scripts/sleepmode/
- Toggle handler in default.py using script manager
- Proper autotools integration with correct installation paths
- Build system fixes for module discovery

Files modified:
- src/cthulhu/common_keyboardmap.py: Add sleep mode keybinding
- src/cthulhu/scripts/default.py: Add toggleSleepMode handler
- src/cthulhu/scripts/sleepmode/: Complete sleep mode implementation
- CLAUDE.md: Documentation for build system and sleep mode
- Fix sleepmode/Makefile.am installation path

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-31 14:03:10 -04:00
Storm Dragon
613fc514fb Merge branch 'testing' of ssh://git.stormux.org:1101/storm/cthulhu into testing 2025-07-31 04:07:10 -04:00
Storm Dragon
a71da1ad2a Some work on the audio indentation plugin. 2025-07-31 04:07:01 -04:00
Storm Dragon
0c26025a81 Updates to build files. 2025-07-01 15:55:00 -04:00
Storm Dragon
0405200980 New plugin, updates to a few other things. Yes, I know that's not descriptive, but apparently I forgot to add a few things last time. lol 2025-07-01 13:56:18 -04:00
Storm Dragon
408fb85730 Updated clipboard plugin to work with the now fixed plugin system. 2025-06-05 14:05:23 -04:00
Storm Dragon
0f25245d3d OMG it actually works! Just some finishing touches. 2025-06-05 13:55:30 -04:00