diff --git a/config/settings/settings.conf b/config/settings/settings.conf index 68b38be5..3eb893d3 100644 --- a/config/settings/settings.conf +++ b/config/settings/settings.conf @@ -81,7 +81,7 @@ read_numbers_as_digits = False # fenrirVolume = is replaced with the current volume # fenrirPitch = is replaced with the current pitch # fenrirRate = is replaced with the current speed (speech rate) -generic_speech_command=espeak-ng -a fenrirVolume -s fenrirRate -p fenrirPitch -v fenrirVoice -- "fenrirText" +generic_speech_command=espeak-ng -a fenrir_volume -s fenrir_rate -p fenrir_pitch -v fenrir_voice -- "fenrir_text" # min and max values of the TTS system that is used in generic_speech_command fenrir_min_volume=0 diff --git a/src/fenrirscreenreader/commands/onScreenUpdate/65000-progress_detector.py b/src/fenrirscreenreader/commands/onScreenUpdate/65000-progress_detector.py index 72135bd2..2b2bc6d5 100644 --- a/src/fenrirscreenreader/commands/onScreenUpdate/65000-progress_detector.py +++ b/src/fenrirscreenreader/commands/onScreenUpdate/65000-progress_detector.py @@ -284,8 +284,12 @@ class command: self.env["commandBuffer"]["lastProgressTime"] = current_time return - # Pattern 6: Claude Code progress indicators - claude_progress_match = re.search(r'[·✶✢✻✽*].*?\(esc to interrupt[^)]*\)', text) + # Pattern 6: Claude/Codex working indicators (bullets + "esc to interrupt") + claude_progress_match = re.search( + r'^[\s]*[•◦][^\n]*\(\s*(?:\d+m\s+)?\d+s?\s+•\s+esc to interrupt[^)]*\)', + text, + re.IGNORECASE, + ) if claude_progress_match: if current_time - self.env["commandBuffer"]["lastProgressTime"] >= 1.0: self.play_activity_beep() diff --git a/src/fenrirscreenreader/fenrirVersion.py b/src/fenrirscreenreader/fenrirVersion.py index 00ac2792..a1c2aaaf 100644 --- a/src/fenrirscreenreader/fenrirVersion.py +++ b/src/fenrirscreenreader/fenrirVersion.py @@ -4,5 +4,5 @@ # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. -version = "2025.12.10" +version = "2025.12.14" code_name = "master"