322 Commits

Author SHA1 Message Date
Storm Dragon
523b896053 Couple minor bug fixes, new speech code added in prefs. 2026-02-18 06:10:57 -05:00
Storm Dragon
9152455227 Speech in settings now uses the voice when switched to it. 2026-02-18 06:07:55 -05:00
Storm Dragon
c0fdaca4d0 Merge remote-tracking branch 'origin/web-and-punctuation-fixes' into testing 2026-02-17 14:50:01 -05:00
8312a842c1 Fix duplicate role name when aria-roledescription is present
When an element has aria-roledescription (e.g. Discord messages use
'Message'), _generateRoleName was adding both the roledescription AND
the standard localized role name (e.g. 'article'). This resulted in
the role being announced twice.

The aria-roledescription attribute is intended to replace the standard
role name, not supplement it. Return early after adding the
roledescription to match Orca's behavior.
2026-02-17 19:21:36 +00:00
07138197cb Fix web content editable label, line boundary, and punctuation bugs
Bug 1: Content editable entry label not announced on caret-nav focus
- When navigating into a content editable via caret navigation (e.g. down
  arrow from message list to message entry in Discord), the label and role
  were suppressed because the code treated entering the field the same as
  navigating within it.
- Fixed locus_of_focus_changed in web/script.py to detect when focus enters
  a content editable from outside and generate full object speech.
- Fixed _generateLabelOrName in web/speech_generator.py to preserve the
  label when the prior object was outside the content editable.

Bug 2: Adjacent button included in line contents on first line
- When reading line contents inside a content editable, the layout-mode
  expansion could walk outside the content editable boundary and include
  adjacent UI elements (e.g. a 'More options' button) that happened to
  share the same visual line.
- Fixed _getLineContentsAtOffset in web/script_utilities.py to stop
  expanding at content editable boundaries in both directions.

Bug 3: Punctuation stripped from live regions and AT-SPI announcements
- presentMessage uses resetStyles=True by default, which sets punctuation
  to NONE for system voice messages. This is correct for generated text
  but wrong for user content in live regions and AT-SPI announcements.
- Fixed liveregions.py pumpMessages and default.py onAnnouncement to pass
  resetStyles=False, preserving the user's punctuation settings.
2026-02-17 19:07:41 +00:00
Storm Dragon
ed78ffc248 Visual speech monitor added to speech history plugin. Toggle with cthulhu+shift+D 2026-02-17 08:40:51 -05:00
Storm Dragon
4add36f5ca latest changed merged, seems to be reasonably stable. 2026-02-17 08:01:47 -05:00
Storm Dragon
40e63150a6 Read a list of applications that should always be started in sleep mode from sleep.toml. 2026-02-17 07:57:14 -05:00
Storm Dragon
4dba0ec0cd Fixed a bug with sleep mode, was not suspending review keys for sleeping applications. 2026-02-16 14:55:56 -05:00
Storm Dragon
e6f780c38b New code tested and seems pretty stable so merged and bumped version. 2026-02-15 12:10:36 -05:00
Storm Dragon
0f7f73a6a0 Fixed flat review bug affecting some sites in chrome. 2026-02-13 13:23:14 -05:00
Storm Dragon
aa71d02036 Merge remote-tracking branch 'origin/keyboard-monitoring-api' into testing 2026-02-13 11:19:40 -05:00
Storm Dragon
f873fcee11 Use toml instead of json for settings. 2026-02-13 11:13:38 -05:00
51ef3de672 Port keyboard monitoring API from Orca, and fix flat review bug in GTK apps 2026-02-13 10:14:04 +00:00
Storm Dragon
13976b7235 Look for missing sound files if not found in 1 directory e.g. if not found in ~/.local look in system themes. 2026-02-07 22:40:21 -05:00
Storm Dragon
c6049ef5f3 Preparing for release. 2026.01.26 2026-01-26 13:07:33 -05:00
Storm Dragon
c8c1922060 Minor tweaks to steam notifications. 2026-01-26 13:03:58 -05:00
Storm Dragon
c8304ce7c0 Fixed indentation error. 2026-01-21 10:04:50 -05:00
Storm Dragon
8ff9c70d29 commit: fix: Corrected indentation error in speech.py file
Co-authored-by: aider (ollama/deepseek-coder:6.7b) <aider@aider.chat>
2026-01-21 09:31:12 -05:00
Storm Dragon
26cca56c34 fix: correct indentation in setSpeechServer function
Co-authored-by: aider (ollama/deepseek-coder:6.7b) <aider@aider.chat>
2026-01-21 09:28:32 -05:00
Storm Dragon
803404aa48 fix: correct indentation in setSpeechServer function
Co-authored-by: aider (ollama/deepseek-coder:6.7b) <aider@aider.chat>
2026-01-21 09:27:41 -05:00
Storm Dragon
fa77d76aa5 More type hints added. 2026-01-20 16:34:18 -05:00
Storm Dragon
75b2d482eb Bump version for testing builds. 2026-01-19 05:40:31 -05:00
Storm Dragon
78ef51d01f Latest code, hopefully stable. 2026-01-19 05:24:48 -05:00
Storm Dragon
b24744b22b many many type hints added. Lots more to go. 2026-01-16 13:01:05 -05:00
Storm Dragon
73ddc18114 Refactor complete. We should be in very good shape moving forward. 2026-01-16 11:41:49 -05:00
Storm Dragon
1862de64ee Getting very close to final refactor push. I think one more after this one will do it. 2026-01-16 11:14:32 -05:00
Storm Dragon
fde43df2d0 Finished with this section of the refactor. Only a couple more to go. 2026-01-16 10:45:33 -05:00
Storm Dragon
a9739dba1a More refactor work. 2026-01-16 10:29:53 -05:00
Storm Dragon
dfa572b453 More refactoring work. Since the first part was such a success, may as well continue. We're actually going to be in very good shape if things keep going this well. 2026-01-16 09:23:53 -05:00
Storm Dragon
45dd30f7f6 I didn't actually intend to do this, but, major refactor. Be careful with testing, it may be horribly broken. 2026-01-15 23:51:49 -05:00
Storm Dragon
495bcca185 Indentation moved from plugin to core code, setting in speech tab. 2026-01-14 08:52:58 -05:00
Storm Dragon
475dfb70ed Attempt to fix bug that causes settings to reinitialize when a change is made. This is a sneaky one, so can't be sure, but hopefully. 2026-01-13 10:19:37 -05:00
Storm Dragon
9bdb7510c9 Fixed a bug in the translation part of the plugin. 2026-01-13 09:31:55 -05:00
Storm Dragon
06cd376cd4 First round of bug fixes and plugin capability extensions. Creating a preferences tab should no longer require editing Cthulhu itself. 2026-01-13 07:49:51 -05:00
Storm Dragon
c510f5a45c Forgot to add pyproject.toml. 2026-01-12 23:53:47 -05:00
Storm Dragon
935ba33081 Version bump for testing. 2026-01-12 23:52:57 -05:00
Storm Dragon
30a40f6974 Merged dbus implementation for plugins. 2026-01-12 11:54:42 -05:00
Storm Dragon
1d241d94a8 Updates to dbus remote for plugins. 2026-01-12 11:53:29 -05:00
Storm Dragon
75ad2f0dec Plugins exposed via d-bus remote. 2026-01-11 23:21:52 -05:00
Storm Dragon
d3c48b1e84 New window title reading plugin implemented. Watches for window title changes and reads them. Enable/disable with cthulhu+control+shift+W. 2026-01-11 22:52:07 -05:00
Storm Dragon
2ccd118cc5 Hopefully stable code. 2026-01-10 19:53:11 -05:00
Storm Dragon
c53ef6606e Merge branch 'testing' 2026-01-10 19:52:27 -05:00
Storm Dragon
52a687c770 Auto translate added with cthulhu+Control+Shift+T 2026-01-10 18:18:48 -05:00
Storm Dragon
aa14e665a6 A few touch ups to the Piper stuff. 2026-01-09 18:00:07 -05:00
Storm Dragon
862504b425 Hopefully fixed a bug tht was causing some settings to reset. 2026-01-09 16:59:59 -05:00
Storm Dragon
2939526c03 Piper-tts added to speech engine options. 2026-01-09 16:11:25 -05:00
Storm Dragon
b1b9ffce22 Attempt to handle capslock as modifier better. 2026-01-09 11:34:37 -05:00
Storm Dragon
eba1ddc419 Attempt to improve steam notifications. Added debugging to see what's actually happening when "view notifications" is pressed in the steam client itself. 2026-01-09 11:11:11 -05:00
Storm Dragon
404e87db25 Fixed a bug in PKGBUILD. 2026-01-08 16:21:22 -05:00