Multiple updates, add modes to the dwm window manager. Fenrir's new settings file.

This commit is contained in:
Storm Dragon
2026-01-29 19:18:02 -05:00
parent f35a523664
commit 57ba7c650a
3 changed files with 242 additions and 103 deletions
+198 -103
View File
@@ -3,14 +3,13 @@
enabled=True enabled=True
# Select the driver used to play sounds, choices are genericDriver and gstreamerDriver. # Select the driver used to play sounds, choices are genericDriver and gstreamerDriver.
# Sox is the default. # Generic driver uses fewer dependencies but spawns a process for each sound played including progress bar beeps
#driver=gstreamerDriver # Gstreamer is the default.
driver=genericDriver #driver=genericDriver
driver=gstreamerDriver
# Sound themes. These are the pack of sounds used for sound alerts. # Sound themes. These are the pack of sounds used for sound alerts.
# Sound packs may be located at /usr/share/sounds # Sound packs may be located at /usr/share/sounds
# For system wide availability, or ~/.local/share/fenrirscreenreader/sounds
# For the current user.
theme=default theme=default
# Sound volume controls how loud the sounds for your selected soundpack are. # Sound volume controls how loud the sounds for your selected soundpack are.
@@ -24,12 +23,12 @@ volume=1.0
# fenrirFrequence = the frequency to play # fenrirFrequence = the frequency to play
# fenrirDuration = the duration of the frequency # fenrirDuration = the duration of the frequency
# the following command is used to play a soundfile # the following command is used to play a soundfile
genericPlayFileCommand=play -q -v fenrirVolume fenrirSoundFile generic_play_file_command=play -q -v fenrirVolume fenrirSoundFile
#the following command is used to generate a frequency beep #the following command is used to generate a frequency beep
genericFrequencyCommand=play -q -v fenrirVolume -n -c1 synth fenrirDuration sine fenrirFrequence generic_frequency_command=play -q -v fenrirVolume -n -c1 synth fenrirDuration sine fenrirFrequence
# Enable progress bar monitoring with ascending tones by default # Enable progress bar monitoring with ascending tones by default
progressMonitoring=True progress_monitoring=True
[speech] [speech]
# Turn speech on or off: # Turn speech on or off:
@@ -45,7 +44,13 @@ rate=0.55
# Pitch controls the pitch of the voice, select from 0, lowest, to 1.0, highest. # Pitch controls the pitch of the voice, select from 0, lowest, to 1.0, highest.
pitch=0.5 pitch=0.5
# Pitch for capital letters # Pitch for capital letters
capitalPitch=0.9 capital_pitch=0.9
# How to indicate capital letters:
# pitch = change speech pitch (uses capital_pitch value)
# beep = play Caps.wav sound icon
# both = play beep AND change pitch
# none = no special indication
capital_indicator=both
# Volume controls the loudness of the voice, select from 0, quietest, to 1.0, loudest. # Volume controls the loudness of the voice, select from 0, quietest, to 1.0, loudest.
volume=1.0 volume=1.0
@@ -65,10 +70,26 @@ volume=1.0
#language=en #language=en
# Read new text as it happens? # Read new text as it happens?
autoReadIncoming=True auto_read_incoming=True
# Speak individual numbers instead of whole string. # Speak individual numbers instead of whole string.
readNumbersAsDigits = False read_numbers_as_digits = False
# Flood control: batch rapid updates instead of speaking each one
# Number of updates within rapid_update_window to trigger batching
rapid_update_threshold=5
# Time window (seconds) for detecting rapid updates
rapid_update_window=0.3
# How often to speak batched content (seconds)
batch_flush_interval=0.5
# Maximum lines to keep when batching (keeps newest, drops oldest)
max_batch_lines=100
# Only enable flood control if this many new lines appear in the window
flood_line_threshold=500
# genericSpeechCommand is the command that is executed for talking # genericSpeechCommand is the command that is executed for talking
# the following variables are replaced with values # the following variables are replaced with values
@@ -81,100 +102,135 @@ readNumbersAsDigits = False
# fenrirVolume = is replaced with the current volume # fenrirVolume = is replaced with the current volume
# fenrirPitch = is replaced with the current pitch # fenrirPitch = is replaced with the current pitch
# fenrirRate = is replaced with the current speed (speech rate) # fenrirRate = is replaced with the current speed (speech rate)
genericSpeechCommand=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 genericSpeechCommand # min and max values of the TTS system that is used in generic_speech_command
fenrirMinVolume=0 fenrir_min_volume=0
fenrirMaxVolume=200 fenrir_max_volume=200
fenrirMinPitch=0 fenrir_min_pitch=0
fenrirMaxPitch=99 fenrir_max_pitch=99
fenrirMinRate=80 fenrir_min_rate=80
fenrirMaxRate=450 fenrir_max_rate=450
[screen] [screen]
# Screen driver: vcsaDriver (Linux TTY/virtual console), ptyDriver (terminal emulation)
driver=vcsaDriver driver=vcsaDriver
# Text encoding: auto (auto-detect), utf-8, latin1, etc.
encoding=auto encoding=auto
screenUpdateDelay=0.05 # Delay in seconds between screen updates (lower = more responsive, higher = less CPU)
ignoreScreen= # Recommended: 0.05 for most systems
autodetectIgnoreScreen=True screen_update_delay=0.05
# TTY number to completely ignore (e.g., 7 for X11/graphical login screen)
ignore_screen=
# Automatically detect and ignore graphical TTYs (X11, Wayland sessions)
autodetect_ignore_screen=True
[keyboard] [keyboard]
driver=evdevDriver driver=evdevDriver
# filter input devices NOMICE, ALL or a DEVICE NAME # filter input devices NOMICE, ALL or a DEVICE NAME
device=ALL device=ALL
# gives Fenrir exclusive access to the keyboard and lets it control keystrokes. # gives Fenrir exclusive access to the keyboard and lets it control keystrokes.
grabDevices=True grab_devices=True
ignoreShortcuts=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 # the current shortcut layout located in /etc/fenrirscreenreader/keyboard
keyboardLayout=laptop ignore_shortcuts=False
keyboard_layout=laptop
# echo chars while typing. # echo chars while typing.
# 0 = None # 0 = None
# 1 = always # 1 = always
# 2 = only while capslock # 2 = only while capslock (not compatible with capslock as fenrir key)
charEchoMode=1 char_echo_mode=1
# echo deleted chars # echo deleted chars
charDeleteEcho=True char_delete_echo=True
# echo word after pressing space # echo word after pressing space
wordEcho=False word_echo=False
# interrupt speech on any keypress # interrupt speech on any keypress
interruptOnKeyPress=True interrupt_on_key_press=True
# you can filter the keys on that the speech should interrupt (empty = all keys, otherwhise the given keys) # you can filter the keys on that the speech should interrupt (empty = all keys, otherwhise the given keys)
interruptOnKeyPressFilter= interrupt_on_key_press_filter=
# timeout for double tap in sec # timeout for double tap in sec
doubleTapTimeout=0.2 double_tap_timeout=0.2
[general] [general]
debugLevel=0 # Debug levels: 0=NONE, 1=ERROR, 2=WARNING, 3=INFO (most verbose)
# For production use, WARNING (2) provides good balance of useful info without spam
# The default is 0, no logging.
debug_level=0
# debugMode sets where the debug output should send to: # debugMode sets where the debug output should send to:
# debugMode=File writes to debugFile (Default:/tmp/fenrir-PID.log) # debugMode=File writes to debug_file (Default:/tmp/fenrir-PID.log)
# debugMode=Print just prints on the screen # debugMode=Print just prints on the screen
debugMode=File debug_mode=File
debugFile= debug_file=
punctuationProfile=default # Punctuation settings control how punctuation is spoken during text review.
punctuationLevel=some # Profile selects a punctuation definition file from config/punctuation/ (e.g., default.conf)
respectPunctuationPause=True punctuation_profile=default
newLinePause=True punctuation_level=some
numberOfClipboards=10 respect_punctuation_pause=True
# Replace undefined punctuation with spaces instead of removing them
# This improves readability of text with punctuation like [X]mute, IP addresses, etc.
replace_undefined_punctuation_with_space=True
# Pause speech briefly at newline characters for better readability
new_line_pause=True
number_of_clipboards=10
# used path for "export_clipboard_to_file" # used path for "export_clipboard_to_file"
# $user is replaced by username # $user is replaced by username
#clipboardExportPath=/home/$user/fenrirClipboard #clipboardExportPath=/home/$user/fenrirClipboard
clipboardExportPath=/tmp/fenrirClipboard clipboard_export_path=/tmp/fenrirClipboard
# Convert text emoticons like :) to descriptive text (e.g., "smiling face")
emoticons=True emoticons=True
# define the current Fenrir key # Define the Fenrir modifier key(s) - used to trigger Fenrir commands
fenrirKeys=KEY_CAPSLOCK,KEY_KP0,KEY_META,KEY_INSERT # Examples: KEY_KP0 (numpad 0), KEY_META (Super/Windows), KEY_INSERT
scriptKeys=KEY_COMPOSE # Multiple keys: KEY_KP0,KEY_META,KEY_INSERT
timeFormat=%H:%M:%P fenrir_keys=KEY_CAPSLOCK,KEY_KP0,KEY_META,KEY_INSERT
dateFormat=%A, %B %d, %Y # Script key - used to execute custom scripts in script_path
autoSpellCheck=True script_keys=KEY_COMPOSE
spellCheckLanguage=en_US # Time format using Python strftime codes (https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior)
# path for your scripts "scriptKeys" functionality # Default: %%I:%%M%%P (12-hour format, e.g., "06:38pm")
scriptPath=/usr/share/fenrirscreenreader/scripts # 24-hour format: %%H:%%M (e.g., "18:38")
# overload commands, and create new one without changing Fenrir default # Common codes: %%I=12hr hour, %%H=24hr hour, %%M=minute, %%S=second, %%P=am/pm lowercase, %%p=AM/PM uppercase
commandPath= time_format=%%H:%%M:%%S
#fenrirBGColor = the backgroundcolor # Date format using Python strftime codes
#fenrirFGColor = the foregroundcolor # Default: %%A, %%B %%d, %%Y (e.g., "Tuesday, December 10, 2024")
#fenrirUnderline = speak the underline attribute # ISO format: %%Y-%%m-%%d (e.g., "2024-12-10")
#fenrirBold = speak the bold attribute # Common codes: %%A=weekday name, %%B=month name, %%d=day, %%Y=year with century, %%m=month number
#fenrirBlink = speak the blink attribute date_format=%%A, %%B %%d, %%Y
#fenrirFont = the font # Automatically spell check words when reviewing character-by-character
#fenrirFontSize = the fontsize auto_spell_check=True
attributeFormatString=Background fenrirBGColor,Foreground fenrirFGColor,fenrirUnderline,fenrirBold,fenrirBlink, Font fenrirFont,Fontsize fenrirFontSize # Language for spell checking (format: language_COUNTRY, e.g., en_US, en_GB, es_ES)
# present indentation spell_check_language=en_US
autoPresentIndent=False # path for your scripts "script_keys" functionality
# speak is only invoked on changeing ident level, sound always script_path=/usr/share/fenrirscreenreader/scripts
# 0 = sound and speak # Override default commands or add custom commands without modifying Fenrir installation
# 1 = sound only # Leave empty to use default commands only
# 2 = speak only command_path=
autoPresentIndentMode=1 # Format string for announcing text attributes (colors, formatting)
# play a sound when attributes are changeing # Available variables:
hasAttributes=False # fenrirBGColor = the background color
# shell for PTY emulatiun (empty = default shell) # fenrirFGColor = the foreground color
# fenrirUnderline = speak the underline attribute
# fenrirBold = speak the bold attribute
# fenrirBlink = speak the blink attribute
# fenrirFont = the font name
# fenrirFontSize = the font size
attribute_format_string=Background fenrirBGColor,Foreground fenrirFGColor,fenrirUnderline,fenrirBold,fenrirBlink, Font fenrirFont,Fontsize fenrirFontSize
# Automatically announce indentation level changes (useful for Python, YAML, etc.)
auto_present_indent=False
# How to present indentation changes:
# 0 = sound and speak (both audio feedback and voice announcement)
# 1 = sound only (just play a tone)
# 2 = speak only (just voice announcement)
auto_present_indent_mode=1
# Play a sound when text attributes (color, bold, etc.) change
has_attributes=False
# Shell to use for PTY emulation mode (empty = use system default shell)
# Examples: /bin/bash, /bin/zsh, /usr/bin/fish
shell= shell=
[focus] [focus]
#follow the text cursor # Follow and announce text cursor position changes
cursor=True cursor=True
#follow highlighted text changes # Follow and announce highlighted/selected text changes (useful in menus)
highlight=False highlight=False
[remote] [remote]
@@ -186,47 +242,86 @@ driver=unixDriver
# tcp port # tcp port
port=22447 port=22447
# socket filepath # socket filepath
socketFile= socket_file=
# allow settings to overwrite # allow settings to overwrite
enableSettingsRemote=True enable_settings_remote=True
# allow commands to be executed # allow commands to be executed
enableCommandRemote=True enable_command_remote=True
[barrier] [barrier]
# Enable barrier detection - automatically detects table/box borders for improved navigation
enabled=False enabled=False
leftBarriers=│└┌─ # Characters that represent left-side barriers/borders (for table/box detection)
rightBarriers=│┘┐ left_barriers=│└┌
# Characters that represent right-side barriers/borders (for table/box detection)
right_barriers=│┘┐─
[review] [review]
lineBreak=True # Announce line breaks during review mode
endOfScreen=True line_break=True
# leave the review when pressing a key # Announce when reaching the end of screen during review
leaveReviewOnCursorChange=True end_of_screen=True
# leave the review when changing the screen # Exit review mode when cursor position changes (e.g., when typing)
leaveReviewOnScreenChange=True leave_review_on_cursor_change=True
# Exit review mode when switching to a different TTY/screen
[promote] leave_review_on_screen_change=True
enabled=True
inactiveTimeoutSec=120
list=
[menu] [menu]
vmenuPath= # Custom path for VMenu (virtual menu) profiles
quickMenu=speech#rate;speech#pitch;speech#volume # Leave empty to use default location (/etc/fenrirscreenreader/vmenu-profiles/)
vmenu_path=
# Quick menu: Semicolon-separated list of settings for rapid adjustment via VMenu
# Access with Fenrir+F10, navigate to "Quick Settings"
# Format: section#setting;section#setting;...
# Supported settings:
# - speech#rate, speech#pitch, speech#volume (0.0-1.0)
# - speech#module, speech#voice (speechdDriver only, auto-added)
# Note: speech#module and speech#voice are automatically added when
# speechdDriver is active. Do not add them manually.
quick_menu=speech#rate;speech#pitch;speech#volume
[prompt]
# Custom prompt patterns for silence until prompt feature
# You can add your own shell prompt patterns as regular expressions
# Each pattern should be on a separate line, format: customPatterns=pattern1,pattern2,pattern3
#
# Built-in patterns include:
# - Shell prompts: $, #, >, user@host$, [user@host]$, bash-5.1$
# - Package manager prompts: [Y/n], [y/N], [Yes/No], (Y/n), (y/N)
# - sudo prompts: [sudo] password for user:, Password:, user's password:
# - Confirmation prompts: Press any key, Are you sure?, Please confirm
#
# Custom pattern examples:
# For PS1='[\u@\h \W] \$ ' use: \[.*@.*\s.*\]\s*[$#>]\s*
# For "[user@hostname ~] $" use: \[.*@.*\s.*\]\s*[$#>]\s*
# For custom prompts ending with specific strings, use patterns like: .*your_prompt_ending$
# For custom package manager prompts: .*your_package_manager.*\[[YyNn]/[YyNn]\].*
custom_patterns=
# Specific prompt strings to match exactly (useful for very specific custom prompts)
# Format: exact_matches=prompt1,prompt2,prompt3
# Examples:
# exact_matches=[storm@fenrir ~] $,[root@fenrir ~] #,Continue installation? [Y/n]
exact_matches=
[time] [time]
# automatic time anouncement # Enable automatic time announcements
enabled=False enabled=False
# present time # Announce the current time
presentTime=True present_time=True
# present date (on change) # Announce the date (only when it changes, e.g., at midnight)
presentDate=True present_date=True
# present time after a given period of seconds # Announce time every N seconds (0 = disabled)
delaySec=0 # If delay_sec > 0, on_minutes is ignored
# present time after to given minutes example every 15 minutes: 00,15,30,45 delay_sec=0
# if delaySec is >0 onMinutes is ignored # Announce time at specific minutes of each hour (comma-separated)
onMinutes=00,30 # Examples:
# announce via soundicon (not interrupting) # 00 = Only on the hour (1:00, 2:00, 3:00, etc.)
# 00,30 = On the hour and half-hour (1:00, 1:30, 2:00, 2:30, etc.)
# 00,15,30,45 = Every 15 minutes
# Note: This is ignored if delay_sec > 0
on_minutes=00,30
# Play a sound icon before time announcement (non-interrupting)
announce=True announce=True
# interrupt current speech for time announcement # Interrupt current speech to announce time immediately
interrupt=False interrupt=False
+23
View File
@@ -0,0 +1,23 @@
# Keymode Configuration
# Configuration for modal keyboard interaction tool
[settings]
# Timeout in seconds (0 = no timeout, waits indefinitely)
timeout_seconds = 0
# Example mode: ratpoison-style application launcher
[mode.ratpoison]
description = "Ratpoison Mode"
# Sound played when entering mode (sox command)
# Will be played in reverse when exiting
sound = "play -qV0 \"|sox -np synth .07 sq 400\" \"|sox -np synth .5 sq 800\" fade h 0 .5 .5 norm -20"
[mode.ratpoison.keys]
# Format: key = "command to execute"
# Special keys use quotes: "F1", "F2", etc.
# Modifiers: "Control+c", "Alt+f", "Shift+x", "Super+r"
# Escape always exits without action (built-in)
# Unbound keys are ignored - the mode waits for a valid key
r = "/usr/local/bin/record.sh"
w = "brave"
+21
View File
@@ -3,6 +3,27 @@
Dates are given for the image. All items listed are available for the listed image version coinciding with the listed date. For example, everything listed under may 7, 2025 are available in the image named stormux_gaming_image-2025.05.07.img.xz. Dates are given for the image. All items listed are available for the listed image version coinciding with the listed date. For example, everything listed under may 7, 2025 are available in the image named stormux_gaming_image-2025.05.07.img.xz.
## January 1, 2026
- Update fenrir to latest version and make settings file compatible
- Upgrade box64
- Upgrade rootfs (aarch64)
- Fix fex-emu package and upgrade it (aarch64)
- Disable fmt consteval on clang 20+ via a patch to fix build failures in fmt's FMT_STRING usage.
- Suppress CMake auto-regeneration to avoid Ninja "build.ninja still dirty" loops.
- added ability to easily convert your audio recordings to video (easily upload your videos to your site of choice)
- Switched to Cthulhu screen reader
- System updates
## December 1, 2025
- Modes added to dwm, use alt+escape to access modes followed by key (see managing multiple windows documentation for details)
- Massive Fenrir updates. The settings file has changed and is no longer compatible with the old version
- Barnard now uses toml configuration file instead of yaml
- bookstorm improvements
- Package updates
## November 1, 2025 ## November 1, 2025
- Bookstorm added to files that get updated from the system menu - Bookstorm added to files that get updated from the system menu