After commit c018f5fd29 Fenrir is being switched over to go. If you do not want to be part of the testing process, please switch to master.

This commit is contained in:
Storm Dragon committed 2026-10-27 20:30:55 -04:00
1 parent c018f5fd29
commit 0e50de4c76
1047 files changed
+58364 -63747

No files matched your search

-378
View File
@@ -1,378 +0,0 @@
[sound]
# Turn sound on or off:
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 ~/.local/stormux/fenrir/sounds,
# /usr/share/sounds/fenrir, or /usr/share/sounds/fenrirscreenreader.
theme=default
# Sound volume controls how loud the sounds for your selected soundpack are.
# 0 is quietest, 1.0 is loudest.
volume=0.7
# shell commands for generic sound driver
# the folowing variable are substituted
# fenrir_volume = the current volume setting
# fenrir_sound_file = the soundfile for an soundicon
# fenrir_frequency = the frequency to play
# fenrir_duration = the duration of the frequency
# the following command is used to play a soundfile
generic_play_file_command=play -q -v fenrir_volume fenrir_sound_file
#the following command is used to generate a frequency beep
generic_frequency_command=play -q -v fenrir_volume -n -c1 synth fenrir_duration sine fenrir_frequency
# Enable progress bar monitoring with ascending tones by default
progress_monitoring=True
[speech]
# Turn speech on or off:
enabled=True
# Select speech driver, options are speechdDriver, genericDriver,
# dectalkDriver, dectalkUsbDriver, litetalkDriver, doubletalkDriver,
# or tripletalkDriver:
driver=speechdDriver
#driver=genericDriver
#driver=dectalkDriver
#driver=dectalkUsbDriver
#driver=litetalkDriver
#driver=doubletalkDriver
#driver=tripletalkDriver
# The rate selects how fast Fenrir will speak. Options range from 0, slowest, to 1.0, fastest.
rate=0.5
# Pitch controls the pitch of the voice, select from 0, lowest, to 1.0, highest.
pitch=0.5
# Pitch for capital letters
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=pitch
# Volume controls the loudness of the voice, select from 0, quietest, to 1.0, loudest.
volume=1.0
# Module is used for Speech-dispatcher, to select the speech module you want to use.
# Consult Speech-dispatcher's configuration and help Fenrir find out which modules are available.
# The default is specified in speechd.conf.
#module=espeak-ng
# Voice selects the voice you want to use, for example, en-GB-scotland will use the Scotish English voice in Espeak,
# To find out which voices are available, consult the documentation provided with your selected synthesizer.
# This also sets the voice used in the generic driver.
# You can add a variant by adding +name onto the end.
# voice=en-us
# Select the language you want Fenrir to use.
#language=en
# Hardware speech synthesizer serial device.
# Used by dectalkDriver, litetalkDriver, doubletalkDriver, and tripletalkDriver.
# dectalkUsbDriver autodetects the Access Solutions device and ignores this.
# USB serial devices are supported if Linux exposes them as /dev/ttyACM*
# or /dev/ttyUSB*. USB-only synths with no tty device need a separate driver.
# Set an explicit device for hardware speech.
# Examples:
# hardware_device=/dev/ttyACM0 # RPITalk USB gadget mode
# hardware_device=/dev/ttyUSB0 # USB serial adapter
# hardware_device=/dev/ttyS0 # built-in serial port
hardware_device=/dev/ttyS0
# Serial baud rate for hardware speech synthesizers.
hardware_baud_rate=9600
# Read new text as it happens?
auto_read_incoming=True
# Speak individual numbers instead of whole string.
read_numbers_as_digits = False
# Number of spoken items kept in runtime speech history.
history_size=50
# 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
# generic_speech_command is the command that is executed for talking
# the following variables are replaced with values
# fenrir_text = is the text that should be spoken
# fenrir_module = may be the speech module like used in speech-dispatcher, not every TTY need this
# fenrir_language = the language
# fenrir_voice = is the current voice that should be used. Set the voice variable above.
# the current volume, pitch and rate is calculated like this
# value = min + settingValue * (min - max )
# fenrir_volume = is replaced with the current volume
# fenrir_pitch = is replaced with the current pitch
# fenrir_rate = is replaced with the current speed (speech rate)
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
fenrir_max_volume=200
fenrir_min_pitch=0
fenrir_max_pitch=99
fenrir_min_rate=80
fenrir_max_rate=450
[screen]
# Screen driver: vcsaDriver (Linux TTY/virtual console), ptyDriver (terminal emulation)
driver=vcsaDriver
# Text encoding: auto (auto-detect), utf-8, latin1, etc.
encoding=auto
# Delay in seconds between screen updates (lower = more responsive, higher = less CPU)
# Recommended: 0.05 for most systems
screen_update_delay=0.05
# TTY number to completely ignore (e.g., 7 for X11/graphical login screen)
ignore_screen=7
# Automatically detect and ignore graphical TTYs (X11, Wayland sessions)
autodetect_ignore_screen=True
[keyboard]
driver=evdevDriver
# filter input devices NOMICE, ALL or a DEVICE NAME
device=ALL
# gives Fenrir exclusive access to the keyboard and lets it control keystrokes.
grab_devices=True
# Optional X11 target window id for x11Driver. Empty uses WINDOWID or active window.
x11_window_id=
# 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
# 1 = always
# 2 = only while capslock (not compatible with capslock as fenrir key)
char_echo_mode=1
# echo deleted chars
char_delete_echo=True
# echo word after pressing space
word_echo=False
# interrupt speech on any keypress
interrupt_on_key_press=True
# you can filter the keys on that the speech should interrupt (empty = all keys, otherwhise the given keys)
interrupt_on_key_press_filter=
# timeout for double tap in sec
double_tap_timeout=0.2
[general]
# 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=File writes to debug_file (Default:/tmp/fenrir.log)
# If the default log is already in use, Fenrir uses /tmp/fenrir2.log, etc.
# 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
# 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
# Convert text emoticons like :) to descriptive text (e.g., "smiling face")
emoticons=True
# Define the Fenrir modifier key(s) - used to trigger Fenrir commands
# Examples: KEY_KP0 (numpad 0), KEY_META (Super/Windows), KEY_INSERT
# Multiple keys: KEY_KP0,KEY_META,KEY_INSERT
fenrir_keys=KEY_KP0,KEY_META,KEY_INSERT
# Script key - used to execute custom scripts in script_path
script_keys=KEY_COMPOSE
# Time format using Python strftime codes (https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior)
# Default: %%I:%%M%%P (12-hour format, e.g., "06:38pm")
# 24-hour format: %%H:%%M (e.g., "18:38")
# Common codes: %%I=12hr hour, %%H=24hr hour, %%M=minute, %%S=second, %%P=am/pm lowercase, %%p=AM/PM uppercase
time_format=%%I:%%M%%P
# Date format using Python strftime codes
# Default: %%A, %%B %%d, %%Y (e.g., "Tuesday, December 10, 2024")
# ISO format: %%Y-%%m-%%d (e.g., "2024-12-10")
# Common codes: %%A=weekday name, %%B=month name, %%d=day, %%Y=year with century, %%m=month number
date_format=%%A, %%B %%d, %%Y
# Automatically spell check words when reviewing character-by-character
auto_spell_check=True
# Language for spell checking (format: language_COUNTRY, e.g., en_US, en_GB, es_ES)
spell_check_language=en_US
# path for your scripts "script_keys" functionality.
# User-local scripts in ~/.local/stormux/fenrir are loaded first.
script_path=/usr/share/fenrirscreenreader/scripts
# Override default commands or add custom commands without modifying Fenrir installation
# Leave empty to use default commands only
command_path=
# Format string for announcing text attributes (colors, formatting)
# Available variables:
# fenrirBGColor = the background color
# 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=True
# Shell to use for PTY emulation mode (empty = use system default shell)
# Examples: /bin/bash, /bin/zsh, /usr/bin/fish
shell=
# Diff review presentation mode:
# speech = spoken feedback only
# sound = sound cues only (falls back to speech when cue is unavailable)
# both = speech and sound cues
diff_presentation=both
# Diff review verbosity:
# compact = concise role/location feedback
# verbose = include diff line content during navigation
diff_verbosity=compact
[clipboard]
# Number of clipboard history entries Fenrir keeps.
number_of_clipboards=50
# used path for "export_clipboard_to_file"
# $user is replaced by username
#clipboard_export_path=/home/$user/fenrirClipboard
clipboard_export_path=/tmp/fenrirClipboard
# Keep Fenrir's clipboard history and the X clipboard synchronized.
# In fenrir -x, an empty sync_display uses the current DISPLAY.
# In console/TTY mode, set sync_display explicitly, for example :0.
# Manual graphical clipboard import/export also use sync_display when set.
sync_enabled=False
sync_display=
sync_interval=0.5
[focus]
# Follow and announce text cursor position changes
cursor=True
# Follow and announce highlighted/selected text changes (useful in menus)
highlight=False
# Suppress generic incoming announcements for full-screen TUIs that redraw often
tui=False
[remote]
enable=True
# driver
# unixDriver = unix sockets
# tcpDriver = tcp (localhost only)
driver=unixDriver
# tcp port
port=22447
# socket filepath
socket_file=
# allow settings to overwrite
enable_settings_remote=True
# allow commands to be executed
enable_command_remote=True
[barrier]
# Enable barrier detection - automatically detects table/box borders for improved navigation
enabled=False
# Characters that represent left-side barriers/borders (for table/box detection)
left_barriers=│└┌─
# Characters that represent right-side barriers/borders (for table/box detection)
right_barriers=│┘┐─
[review]
# Announce line breaks during review mode
line_break=True
# Announce when reaching the end of screen during review
end_of_screen=True
# Exit review mode when cursor position changes (e.g., when typing)
leave_review_on_cursor_change=True
# Exit review mode when switching to a different TTY/screen
leave_review_on_screen_change=True
[menu]
# Custom path for VMenu (virtual menu) profiles
# 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]
# Enable automatic time announcements
enabled=False
# Announce the current time
present_time=True
# Announce the date (only when it changes, e.g., at midnight)
present_date=True
# Announce time every N seconds (0 = disabled)
# If delay_sec > 0, on_minutes is ignored
delay_sec=0
# Announce time at specific minutes of each hour (comma-separated)
# Examples:
# 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
# Interrupt current speech to announce time immediately
interrupt=False
+138
View File
@@ -0,0 +1,138 @@
# Same settings directories as Python Fenrir, with a separate TOML filename.
version = 3
[presentation.sound]
enabled = true
# Driver and theme apply at launch; the Sound form saves these selections.
# pulse uses PulseAudio or PipeWire's PulseAudio service; alsa opens a PCM.
driver = "pulse"
theme = "default"
# File-only ALSA PCM name, ignored by pulse. Use plughw:CARD=...,DEV=... for
# direct hardware with format conversion; "default" follows ALSA configuration.
device = "default"
# 0.0 is silent, 1.0 is full volume. Matches Python Fenrir's default.
volume = 0.7
[presentation.speech]
driver = "speech-dispatcher"
# Hardware alternatives: dectalk, dectalk-usb, litetalk, doubletalk, tripletalk.
# Serial drivers require an explicit path. Also available in the Speech form.
# Driver, port and baud changes apply at launch; Test synthesizer previews them.
hardware_device = ""
# 0 selects 9600 baud. Native dectalk-usb ignores serial settings.
hardware_baud_rate = 0
enabled = true
# Shared -100 to 100 scale; hardware drivers map it to native ranges.
rate = 80
# Empty choices use the server default. Voice names are module-specific.
module = ""
language = ""
voice = ""
pitch = 0
volume = 100
# Tone feedback is independent of speech and automatic reading.
# Toggle with NumLock-off KP+ (desktop) or Fenrir+Shift+P (laptop).
[presentation.progress]
enabled = true
# Select presets with current examples in Presentation > Time and date.
[presentation.time_and_date]
time_format = "locale"
date_format = "locale"
[keyboard]
# Window between fresh presses; 1–5000 ms. File-only, applied at launch.
multi_press_timeout_ms = 200
# Named layouts live in keyboard/ alongside settings/. Explicit TOML paths work too.
layout = "desktop"
# Empty discovers all supported keyboards and numeric keypads.
devices = []
character_echo = true
word_echo = false
# Enables character echo while CapsLock is on, even if character_echo is false.
echo_on_capslock = false
[reading]
# Automatic completed-word checking uses the session language and PATH.
spellcheck = true
spellcheck_read_word = false
spellcheck_say_misspelled = false
spellcheck_sound = true
automatic = true
# cursor (default), table, or highlight. Cycle with Fenrir+KP* / Fenrir+Y.
mode = "cursor"
# Cursor navigation feedback, independent of typing echo.
cursor_echo = true
punctuation_profile = "default"
# none, some, most, all. Character review always names punctuation.
punctuation_level = "some"
# Whole whitespace-delimited emoticons, matching Python's names/boundaries.
emoticons = true
# Optional summaries for whole repeated-symbol tokens, e.g. ##### -> 5 number.
# Only symbols named at the selected punctuation level are summarized.
repeated_symbols = false
# Minimum run length, 2–10000; default 4 means more than three repeats.
repeated_symbols_min = 4
# Independent capital indicators for typing, cursor echo and character review.
raise_pitch_for_capitals = true
beep_for_capitals = false
say_cap_for_capitals = false
# Automatic indentation feedback: none, speech, beeps, or both.
# Also available through quick settings; explicit Save persists the choice.
indentation = "none"
# Attribute feedback: none, speech, beeps (presence cue), or both.
# Fenrir+KP- temporarily toggles feedback without changing this startup default.
attributes = "none"
attribute_format = "Background fenrirBGColor,Foreground fenrirFGColor,fenrirUnderline,fenrirBold,fenrirBlink, Font fenrirFont,Fontsize fenrirFontSize"
# File-only prompt customization, applied at launch. See docs/prompt-silence.md.
# Built-in shell/password/confirmation and Worked-for completion detection stays active.
[prompt]
exact_matches = []
# Regular expressions; literal TOML strings preserve backslashes.
custom_patterns = []
[clipboard]
# One sync switch for both -x and console mode. Missing X never stops Fenrir.
sync = false
# Empty uses DISPLAY; without DISPLAY discover a single local X server.
sync_display = ""
# Saves unencrypted history in separate TTY/terminal files. Off by default.
persistent = false
number_of_clipboards = 200
# File import/export use this path. Exports are atomic and private (0600).
export_path = "/tmp/fenrirClipboard"
# Python Fenrir's existing script paths and filename shortcuts are retained.
# The user resource root ~/.local/stormux/fenrir is searched first.
[general]
script_path = "/usr/share/fenrirscreenreader/scripts"
script_keys = ["KEY_COMPOSE"]
# File-only runner limits. Zero timeout preserves long-running Python scripts.
[scripts]
workers = 2
queue_limit = 16
output_bytes = 1048576
timeout_seconds = 0
# Existing socat callers use /tmp/fenrirscreenreader-daemon.sock by default.
# An occupied socket is never replaced; choose a separate path for a trial.
[remote]
enabled = true
socket_file = ""
enable_command_remote = true
enable_settings_remote = true
# Review feedback and exit policies; file-only, applied at launch.
[review]
line_break = true
end_of_screen = true
leave_review_on_cursor_change = true
leave_review_on_screen_change = true
# File-only console policy. Ignored VTs release input and skip screen capture.
# Applies only to Linux TTY mode; graphical VTs are always released automatically.
[screen]
ignored_vts = [] # For example [7, 8, 10]; distinct numbers from 1 through 63.