diff --git a/README.md b/README.md index bd55dd58..46eb6f81 100644 --- a/README.md +++ b/README.md @@ -222,7 +222,7 @@ Fenrir supports two main keyboard layouts: Configure in `/etc/fenrir/settings/settings.conf`: ```ini [keyboard] -keyboardLayout=desktop # or 'laptop' +keyboard_layout=desktop # or 'laptop' ``` ### First Time Setup @@ -255,9 +255,9 @@ Enable remote control in `/etc/fenrir/settings/settings.conf`: enable=True driver=unixDriver # or tcpDriver port=22447 # for TCP driver -socketFile= # custom socket path (optional) -enableSettingsRemote=True # allow settings changes -enableCommandRemote=True # allow command execution +socket_file= # custom socket path (optional) +enable_settings_remote=True # allow settings changes +enable_command_remote=True # allow command execution ``` ### Remote Drivers @@ -299,8 +299,8 @@ echo "setting set speech#pitch=0.6" | socat - UNIX-CLIENT:/tmp/fenrirscreenreade echo "setting set speech#volume=0.9" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Change punctuation level (none/some/most/all) -echo "setting set general#punctuationLevel=all" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock -echo "setting set general#punctuationLevel=none" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock +echo "setting set general#punctuation_level=all" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock +echo "setting set general#punctuation_level=none" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Voice and TTS engine control echo "setting set speech#voice=en-us+f3" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock @@ -311,14 +311,14 @@ echo "setting set sound#enabled=False" | socat - UNIX-CLIENT:/tmp/fenrirscreenre echo "setting set sound#volume=0.5" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Keyboard and input settings -echo "setting set keyboard#charEchoMode=1" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock -echo "setting set keyboard#wordEcho=True" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock +echo "setting set keyboard#char_echo_mode=1" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock +echo "setting set keyboard#word_echo=True" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Screen control (ignore specific TTYs) -echo "setting set screen#ignoreScreen=1,2,3" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock +echo "setting set screen#ignore_screen=1,2,3" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Multiple settings at once -echo "setting set speech#rate=0.8;sound#volume=0.7;general#punctuationLevel=most" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock +echo "setting set speech#rate=0.8;sound#volume=0.7;general#punctuation_level=most" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock # Reset all settings to defaults echo "setting reset" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock @@ -421,7 +421,7 @@ setting [parameters] - `speech#voice=voice_name` - Voice selection (e.g., "en-us+f3") - `speech#module=module_name` - TTS module (e.g., "espeak-ng") - `speech#driver=driver_name` - Speech driver (speechdDriver/genericDriver) -- `speech#autoReadIncoming=True/False` - Auto-read new text +- `speech#auto_read_incoming=True/False` - Auto-read new text *Sound Settings:* - `sound#enabled=True/False` - Enable/disable sound @@ -430,32 +430,32 @@ setting [parameters] - `sound#theme=theme_name` - Sound theme *General Settings:* -- `general#punctuationLevel=none/some/most/all` - Punctuation verbosity -- `general#debugLevel=0-3` - Debug level +- `general#punctuation_level=none/some/most/all` - Punctuation verbosity +- `general#debug_level=0-3` - Debug level - `general#emoticons=True/False` - Enable emoticon replacement -- `general#autoSpellCheck=True/False` - Automatic spell checking +- `general#auto_spell_check=True/False` - Automatic spell checking *Focus Settings:* - `focus#cursor=True/False` - Follow text cursor - `focus#highlight=True/False` - Follow text highlighting *Keyboard Settings:* -- `keyboard#charEchoMode=0-2` - Character echo (0=none, 1=always, 2=capslock only) -- `keyboard#wordEcho=True/False` - Echo complete words -- `keyboard#charDeleteEcho=True/False` - Echo deleted characters -- `keyboard#interruptOnKeyPress=True/False` - Interrupt speech on key press +- `keyboard#char_echo_mode=0-2` - Character echo (0=none, 1=always, 2=capslock only) +- `keyboard#word_echo=True/False` - Echo complete words +- `keyboard#char_delete_echo=True/False` - Echo deleted characters +- `keyboard#interrupt_on_key_press=True/False` - Interrupt speech on key press *Screen Settings:* -- `screen#ignoreScreen=1,2,3` - TTY screens to ignore -- `screen#autodetectIgnoreScreen=True/False` - Auto-detect screens to ignore -- `screen#screenUpdateDelay=float` - Screen update delay +- `screen#ignore_screen=1,2,3` - TTY screens to ignore +- `screen#autodetect_ignore_screen=True/False` - Auto-detect screens to ignore +- `screen#screen_update_delay=float` - Screen update delay *Time Settings:* - `time#enabled=True/False` - Enable time announcements -- `time#presentTime=True/False` - Announce time -- `time#presentDate=True/False` - Announce date changes -- `time#delaySec=seconds` - Announcement interval -- `time#onMinutes=00,30` - Specific minutes to announce +- `time#present_time=True/False` - Announce time +- `time#present_date=True/False` - Announce date changes +- `time#delay_sec=seconds` - Announcement interval +- `time#on_minutes=00,30` - Specific minutes to announce ## Table Navigation @@ -623,7 +623,7 @@ rsync -av source/ destination/ # File synchronization ### Customization Progress monitoring can be configured through settings: -- **Default enabled**: Set `progressMonitoring=True` in sound section +- **Default enabled**: Set `progress_monitoring=True` in sound section - **Sound integration**: Works with all sound drivers (sox, gstreamer) - **Remote control**: Enable/disable through remote commands @@ -677,8 +677,8 @@ send_fenrir_command("setting set speech#rate=0.9") - TCP driver binds only to localhost (127.0.0.1) - Socket file permissions are set to write-only (0o222) - Commands are processed with Fenrir's privileges -- Settings changes can be disabled via `enableSettingsRemote=False` -- Command execution can be disabled via `enableCommandRemote=False` +- Settings changes can be disabled via `enable_settings_remote=False` +- Command execution can be disabled via `enable_command_remote=False` ### Troubleshooting @@ -688,7 +688,7 @@ send_fenrir_command("setting set speech#rate=0.9") - Ensure remote driver is enabled in settings **Commands not working:** -- Verify `enableCommandRemote=True` in settings +- Verify `enable_command_remote=True` in settings - Check Fenrir debug logs: `/var/log/fenrir.log` - Test with simple command: `echo "command interrupt" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock` @@ -710,7 +710,7 @@ fenrir [OPTIONS] - `-p, --print` - Print debug messages to screen - `-e, --emulated-pty` - Use PTY emulation with escape sequences for input (enables desktop/X/Wayland usage) - `-E, --emulated-evdev` - Use PTY emulation with evdev for input (single instance) -- `-F, --force-all-screens` - Force Fenrir to respond on all screens, ignoring ignoreScreen setting +- `-F, --force-all-screens` - Force Fenrir to respond on all screens, ignoring ignore_screen setting - `-i, -I, --ignore-screen SCREEN` - Ignore specific screen(s). Can be used multiple times. Combines with existing ignore settings. ### Examples: @@ -724,7 +724,7 @@ sudo fenrir -e # Override settings via command line sudo fenrir -o "speech#rate=0.8;sound#volume=0.5" -# Force Fenrir to work on all screens (ignore ignoreScreen setting) +# Force Fenrir to work on all screens (ignore ignore_screen setting) sudo fenrir -F # Ignore specific screens diff --git a/config/settings/settings.conf b/config/settings/settings.conf index 3eb893d3..9e7c5f8a 100644 --- a/config/settings/settings.conf +++ b/config/settings/settings.conf @@ -3,14 +3,13 @@ enabled=True # Select the driver used to play sounds, choices are genericDriver and gstreamerDriver. +# Generic driver uses fewer dependencies but spawns a process for each sound played including progress bar beeps # Gstreamer is the default. driver=gstreamerDriver #driver=genericDriver # Sound themes. These are the pack of sounds used for sound alerts. # Sound packs may be located at /usr/share/sounds -# For system wide availability, or ~/.local/share/fenrirscreenreader/sounds -# For the current user. theme=default # Sound volume controls how loud the sounds for your selected soundpack are. @@ -110,8 +109,10 @@ driver=evdevDriver device=ALL # gives Fenrir exclusive access to the keyboard and lets it control keystrokes. grab_devices=True -ignore_shortcuts=False +# Ignore shortcut bindings and pass all keys through without processing Fenrir commands. +# When True, Fenrir will only monitor screen content without intercepting keyboard input. # the current shortcut layout located in /etc/fenrirscreenreader/keyboard +ignore_shortcuts=False keyboard_layout=desktop # echo chars while typing. # 0 = None @@ -138,6 +139,8 @@ debug_level=2 # debugMode=Print just prints on the screen debug_mode=File debug_file= +# Punctuation settings control how punctuation is spoken during text review. +# Profile selects a punctuation definition file from config/punctuation/ (e.g., default.conf) punctuation_profile=default punctuation_level=some respect_punctuation_pause=True @@ -247,6 +250,11 @@ enabled=True inactive_timeout_sec=120 # Comma-separated list of text patterns to promote when detected # Leave empty to disable pattern-based promotion +# Examples: +# error,warning,failed - Announce build/command errors +# complete,finished,done - Announce task completions +# new message,@username - Announce chat notifications +# download complete - Announce download completions list= [menu] diff --git a/src/fenrirscreenreader/fenrirVersion.py b/src/fenrirscreenreader/fenrirVersion.py index 834fce62..355398d2 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.14" +version = "2025.12.19" code_name = "testing"