2017-01-30 10:45:01 -05:00
# Fenrir
2022-11-20 11:07:04 -05:00
2018-06-04 18:28:30 -04:00
A modern, modular, flexible and fast console screenreader.
2018-06-04 18:26:56 -04:00
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.
2016-07-05 05:16:34 -04:00
2022-11-20 11:07:04 -05:00
2018-09-15 14:03:26 -04:00
# OS Requirements
2022-11-20 11:07:04 -05:00
2018-06-04 18:26:56 -04:00
- Linux (ptyDriver, vcsaDriver, evdevDriver)
- macOS (ptyDriver)
- BSD (ptyDriver)
- Windows (ptyDriver)
2022-11-20 11:07:04 -05:00
2018-09-15 14:03:00 -04:00
# Core Requirements
2022-11-20 11:07:04 -05:00
2017-01-30 10:45:01 -05:00
- python3 >= 3.3
2024-12-08 06:43:22 -05:00
- screen, input, speech, sound drivers dependencies see "Features, Drivers, Extras".
2016-07-07 08:37:10 -04:00
2022-11-20 11:07:04 -05:00
2017-08-04 06:46:52 -04:00
# Features, Drivers, Extras, Dependencies
2022-11-20 11:07:04 -05:00
2017-01-30 10:46:33 -05:00
# Input Drivers:
2017-02-23 05:33:08 -05:00
1. "evdevDriver" input driver for linux evdev
2018-09-15 14:03:00 -04:00
- python-evdev >=0.6.3 (This is commonly referred to as python3-evdev by your distribution)
2017-07-07 15:44:49 -04:00
- python-pyudev
2017-01-30 10:45:01 -05:00
- loaded uinput kernel module
- ReadWrite permission
- /dev/input
- /dev/uinput
2018-09-15 14:03:00 -04:00
2. "ptyDriver" terminal emulation input driver
2018-04-09 07:44:54 -04:00
- python-pyte
2017-01-30 10:47:13 -05:00
2022-11-20 11:07:04 -05:00
2017-01-30 10:46:33 -05:00
# Screen Drivers:
2022-11-20 11:07:04 -05:00
2017-02-23 05:33:08 -05:00
1. "vcsaDriver" screen driver for linux VCSA devices
- python-dbus
2017-02-23 05:43:31 -05:00
- Read permission to the following files and services:
2017-01-30 10:45:01 -05:00
- /sys/devices/virtual/tty/tty0/active
2017-07-23 15:25:00 -04:00
- /dev/tty[1-64]
2017-01-30 10:45:01 -05:00
- /dev/vcsa[1-64]
2017-08-03 17:13:43 -04:00
- read logind DBUS
2018-04-09 07:47:13 -04:00
2. "ptyDriver" terminal emulation driver
2018-04-09 07:44:54 -04:00
- python-pyte
2022-11-20 11:07:04 -05:00
2017-01-30 10:46:33 -05:00
# Speech Drivers:
2022-11-20 11:07:04 -05:00
2018-06-08 04:41:32 -04:00
1. "genericDriver" (default) speech driver for sound as subprocess:
2018-04-09 07:44:54 -04:00
- espeak or espeak-ng
2018-04-09 07:47:13 -04:00
2. "espeakDriver" speech driver for Espeak or Espeak-NG:
2016-11-16 05:59:16 -05:00
- python-espeak
2018-04-09 07:47:13 -04:00
3. "speechdDriver" speech driver for Speech-dispatcher:
2017-08-12 06:38:03 -04:00
- Speech-dispatcher
2016-11-16 05:59:16 -05:00
- python-speechd
2018-09-25 09:58:35 -04:00
4. "emacspeakDriver" speech driver for emacspeak
- emacspeak
2017-01-30 10:47:13 -05:00
2022-11-20 11:07:04 -05:00
2017-01-30 10:46:33 -05:00
# Sound Drivers:
2022-11-20 11:07:04 -05:00
2018-04-09 07:47:13 -04:00
1. "genericDriver" (default) sound driver for sound as subprocess:
2017-08-12 06:38:03 -04:00
- Sox
2017-02-23 05:33:08 -05:00
2. "gstreamerDriver" sound driver for gstreamer
2017-02-13 15:42:31 -05:00
- gstreamer >=1.0
2016-11-16 05:59:16 -05:00
- GLib
2017-01-30 10:47:13 -05:00
2022-11-20 11:07:04 -05:00
2017-08-12 06:38:03 -04:00
# Extras:
2022-11-20 11:07:04 -05:00
2017-02-23 05:43:31 -05:00
1. spellchecker
2016-11-16 05:59:16 -05:00
- python-pyenchant
2017-08-12 06:38:03 -04:00
- aspell-YourLanguageCode (example aspell-en for us English)
2. Unix daemon (also needed for Systemd):
2016-11-16 05:59:16 -05:00
- python-daemonize
2017-02-26 19:39:19 -05:00
3. Modify system volume:
- pyalsaaudio (needs libasound2's headers).
2016-09-16 05:50:53 -04:00
2022-11-20 11:07:04 -05:00
2016-07-05 05:18:35 -04:00
# installation
2022-11-20 11:07:04 -05:00
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-git recommended)
2018-09-15 14:03:00 -04:00
- PIP: sudo pip install fenrir-screenreader
2019-01-26 04:46:05 -05:00
- Manual:
- install "espeak" and "sox" with your package manager
- sudo pip install -r requirements.txt
2022-11-20 11:07:04 -05:00
- run install.sh or uninstall.sh as root
2017-02-19 20:21:30 -05:00
- you also can just run it from Git without installing:
2016-11-07 04:49:32 -05:00
You can just run the following as root:
2017-02-23 05:45:05 -05:00
if you are in Fenrir Git rootfolder:
2022-11-20 11:07:04 -05:00
cd src/fenrir/
sudo ./fenrir
Same thing, but use the daemon so the terminal is not blocked:
cd src/fenrir/
sudo ./fenrir-daemon
2017-02-19 20:21:30 -05:00
Settings "settings.conf" is located in the "config" directory or after installation in /etc/fenrir/settings.
2017-08-12 06:38:03 -04:00
Take care to use drivers from the config matching your installed drivers.
2016-11-16 05:59:16 -05:00
By default it uses:
2017-01-30 10:45:01 -05:00
- sound driver: genericDriver (via sox, could configured in settings.conf)
2018-04-09 07:47:13 -04:00
- speech driver: genericDriver (via espeak or espeak-ng, could configured in settings.conf)
2017-01-30 10:45:01 -05:00
- input driver: evdevDriver
2022-11-20 11:07:04 -05:00
2020-04-21 08:14:58 -04:00
# Configure pulseaudio
2017-07-25 07:36:46 -04:00
2022-11-20 11:07:04 -05:00
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):
2020-04-21 08:17:12 -04:00
2022-11-20 11:07:04 -05:00
/usr/share/fenrirscreenreader/tools/configure_pulse.sh
sudo /usr/share/fenrirscreenreader/tools/configure_pulse.sh
2020-04-21 08:17:12 -04:00
2022-11-20 11:07:04 -05:00
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
2020-04-21 08:17:12 -04:00
2020-04-22 14:31:14 -04:00
# 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
2022-11-20 11:07:04 -05:00
2020-04-22 14:31:14 -04:00
2017-07-25 07:36:46 -04:00
# Documentation
2022-11-20 11:07:04 -05:00
2022-11-20 11:12:39 -05:00
Here is the [Fenrir Wiki ](https://github.com/chrys87/fenrir/wiki ). It is currently being updated, so keep checking back. Feel free to help with documentation.