No Description

chrys b609476d9e fix syntax for WIP driver 6 days ago
autostart 13c61cb1a6 systemd 2 months ago
config d926858aeb fix missing renames 6 days ago
contrib bdb366d9c3 change contrib structure, prepare rrpm, update AUR 11 months ago
docu d926858aeb fix missing renames 6 days ago
experimental e39a5b301c make initial work 1 year ago
locale a459de8463 Proofreading, thanks Jenny 5 months ago
play zone 601dac8f5a add toggle sink-a 2 weeks ago
realese nots 46e778e54a todo and release notes 1 week ago
src b609476d9e fix syntax for WIP driver 6 days ago
tools d926858aeb fix missing renames 6 days ago
.gitignore 1b559ef722 remove stalled stuff 8 months ago
CREDITS 5c66426f26 Credits file updated. 1 week ago
Changelog.txt 12878deadc add changelog 8 months ago
LICENCE dd8f7e05f9 add licence LGPLv3 1 year ago 85ec5d22ea Update 2 weeks ago
TODO v2.0 fa240a75f3 mark sound icon as done 6 days ago
TODOv3.0 5936465037 sync 3 weeks ago
bugs 8cf405bad1 Fixed lots of grammatical errors, install scripts using -f for copy to avoid errors whilst installing. 10 months ago 547c9302b0 fix dependency check 2 weeks ago 9743bf8f72 Update 1 week ago
known bugs.txt 65fc6cb027 todo and release notes 1 week ago 5f8360a8de Update 1 week ago dc7d8229a3 Update 1 week ago


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.

Requirements (core)

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

  • python3 >= 3.3

  • python-configargparse

  • screen, input, speech, sound or braille drivers see "Features, Drivers, Extras".

Features, Drivers, Extras, Dependencies

Input Drivers:

  1. "evdevDriver" input driver for linux evdev
    • python-evdev >=0.6.3
    • python-pyudev
  2. This is commonly referred to as python3-evdev by your distribution
    • loaded uinput kernel module
    • ReadWrite permission
    • /dev/input
    • /dev/uinput
  3. "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
  2. "ptyDriver" terminal emulation driver
    • python-pyte
  3. "dummyDriver" just a dummy

Speech Drivers:

  1. "genericDriver" (default) speech driver for sound as subprocess:
    • espeak or espeak-ng
  2. "espeakDriver" speech driver for Espeak or Espeak-NG:
    • python-espeak
  3. "speechdDriver" speech driver for Speech-dispatcher:
    • Speech-dispatcher
    • python-speechd
  4. "dummyDriver" no speech
  5. "debugDriver" speech driver for debugging

Braille Drivers:

  1. "BrlttyDriver" braille driver (WIP):
    • brltty (configured and running)
    • python-brlapi
  2. "dummyDriver" (default) no braille
  3. "debugDriver" Braille driver for debugging

Sound Drivers:

  1. "genericDriver" (default) sound driver for sound as subprocess:
    • Sox
  2. "gstreamerDriver" sound driver for gstreamer
    • gstreamer >=1.0
    • GLib
  3. "dummyDriver" no sound
  4. "debugDriver" sound driver for debugging


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


  • Archlinux: PKGBUILD in AUR
  • Manual: run and as root
  • you also can just run it from Git without installing: You can just run the following as root: if you are in Fenrir Git rootfolder: 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)
  • braille driver: brlttyDriver (WIP)
  • input driver: evdevDriver


You can see all information on the Wiki: