Go to file
2024-12-20 11:22:09 -05:00
autostart Updated auto start example service files for systemd and runit. 2024-12-09 19:38:39 -05:00
config Removed the emacs speech driver. Also some cleanup missed from removing the old espeak driver that no longer worked. 2024-12-11 17:31:05 -05:00
docs Updated the man page creation script. 2024-12-09 12:58:14 -05:00
locale add russian translation 2020-04-20 13:22:02 +07:00
src File restructuring. 2024-12-20 10:09:07 -05:00
tools Removed Braille. BrlTTY does a great job already in the console. Also, Fenrir's implementation was only partially done and not working. 2024-12-08 06:43:22 -05:00
.gitignore cleanup 2019-01-22 00:37:07 +01:00
bugs folder restructuring 2018-09-11 02:43:03 +02:00
check-dependencies.py Removed Braille. BrlTTY does a great job already in the console. Also, Fenrir's implementation was only partially done and not working. 2024-12-08 06:43:22 -05:00
CREDITS Started project cleanup. 2024-12-02 17:03:16 -05:00
install.sh Updated install.sh so that all keyboard layouts will be installed. 2021-02-22 17:51:36 -05:00
LICENCE add licence LGPLv3 2016-12-30 19:54:27 +01:00
pyproject.toml Modernize installation. 2024-12-20 11:04:13 -05:00
README.md Updated README. 2024-12-10 12:32:09 -05:00
requirements.txt Update requirements.txt 2019-01-28 14:51:11 +01:00
setup.py Second attempt at placing files into correct directories. 2024-12-20 11:22:09 -05:00
TODO Started project cleanup. 2024-12-02 17:03:16 -05:00
uninstall.sh Update uninstall.sh 2018-06-12 11:36:52 +02:00

Fenrir

A modern, modular, flexible and fast console screenreader. It should run on any operating system. If you want to help, or write drivers to make it work on other systems, just let me know. This software is licensed under the LGPL v3.

OS Requirements

  • Linux (ptyDriver, vcsaDriver, evdevDriver)
  • macOS (ptyDriver)
  • BSD (ptyDriver)
  • Windows (ptyDriver)

Core Requirements

  • python3 >= 3.3
  • screen, input, speech, sound drivers dependencies see "Features, Drivers, Extras".

Features, Drivers, Extras, Dependencies

Input Drivers:

  1. "evdevDriver" input driver for linux evdev
  • python-evdev >=0.6.3 (This is commonly referred to as python3-evdev by your distribution)
  • python-pyudev
  • loaded uinput kernel module
  • ReadWrite permission
    • /dev/input
    • /dev/uinput
  1. "ptyDriver" terminal emulation input driver
  • python-pyte

Screen Drivers:

  1. "vcsaDriver" screen driver for linux VCSA devices
  • python-dbus
  • Read permission to the following files and services:
    • /sys/devices/virtual/tty/tty0/active
    • /dev/tty[1-64]
    • /dev/vcsa[1-64]
    • read logind DBUS
  1. "ptyDriver" terminal emulation driver
  • python-pyte

Speech Drivers:

  1. "genericDriver" (default) speech driver for sound as subprocess:
  • espeak or espeak-ng
  1. "speechdDriver" speech driver for Speech-dispatcher:
  • Speech-dispatcher
  • python-speechd
  1. "emacspeakDriver" speech driver for emacspeak
  • emacspeak

Sound Drivers:

  1. "genericDriver" (default) sound driver for sound as subprocess:
  • Sox
  1. "gstreamerDriver" sound driver for gstreamer
  • gstreamer >=1.0
  • GLib

Extras:

  1. spellchecker
  • python-pyenchant
  • aspell-YourLanguageCode (example aspell-en for us English)
  1. Unix daemon (also needed for Systemd):
  • python-daemonize
  1. Modify system volume:
  • pyalsaaudio (needs libasound2's headers).

installation

If there is a package for your distrobution of choice, please let us know so we can add it here.

  • Archlinux: PKGBUILD in AUR

    • fenrir: stable release
    • fenrir-git: Bleeding edge release
  • Manual:

    • install "espeak" and "sox" with your package manager
    • sudo pip install -r requirements.txt
    • run install.sh or uninstall.sh as root
  • You can also just run it from Git without installing: Requires root privileges

    cd src/fenrir/ sudo ./fenrir

Settings "settings.conf" is located in the "config" directory or after installation in /etc/fenrir/settings. Take care to use drivers from the config matching your installed drivers. By default it uses:

  • sound driver: genericDriver (via sox, could configured in settings.conf)
  • speech driver: genericDriver (via espeak or espeak-ng, could configured in settings.conf)
  • input driver: evdevDriver

Configure pulseaudio

Pulseaudio by default only plays sound for the user its currently running for. As fenrir is running as root, your local user does not hear the sound and speech produced by fenrir. for this fenrir provides a script to configure pulseaudio to stream the sound played as root to your local user. This is not a issue of fenrir but this is how pulseaudio works.

just run the configuration script twice (once as user, once as root):

/usr/share/fenrirscreenreader/tools/configure_pulse.sh
sudo /usr/share/fenrirscreenreader/tools/configure_pulse.sh

The script is also located in the tools directory in git

Configure pipewire

Pipewire by default only plays sound for the user its currently running for. As fenrir is running as root, your local user does not hear the sound and speech produced by fenrir. for this fenrir provides a script to configure pipewire to stream the sound played as root to your local user. This is not a issue of fenrir but this is how pipewire works.

just run the configuration script twice (once as user, once as root):

/usr/share/fenrirscreenreader/tools/configure_pipewire.sh
sudo /usr/share/fenrirscreenreader/tools/configure_pipewire.sh

The script is also located in the tools directory in git

localization

copy fenrir.mo translations file from fenrir/locale/your_language/LC_MESSAGES/fenrir.mo to /usr/share/locale/your_language/LC_MESSAGES/fenrir.mo

Documentation and Support