ToDo list for Fenrir Version 2.0 Things needing little knowledge are marked with "(Easy for contribution)". so just start with those :). [] = ToDo [W] = WIP [X] = Done Cleanups: - generic list or see Tutorial mode list (convert clipboard management) (Easy for contribution) - core.memoryManager [W] next item [W] prev item [W] curr item [W] first item [W] last item - split oldValues := newValues out to helper function [] split it out [] use it in vcsa driver - Migrate *Data.py to classes and use getter/setter (Easy for contribution) [] commandsData.py [] eventData.py [] generalData.py [] inputData.py [] outputData.py [] punctuationData.py [] runtimeData.py [] screenData.py [] settingsData -> defaultSettings.py General: - imporove attribute handling [] improve attributes_curr_char (Easy for contribution) [] add an attribute sound (Easy for contribution) [] beep on cursor/ review by char (capital wins) [] beep on review by word (once for multiple, capital wins) [] configurable (by char, by word, none) https://github.com/jwilk/vcsapeek/blob/master/linuxvt.py - Improved Say all [] speech callbacks [] speech process by word [] all the text of all pages [] command to stop and place review cursor at this position [] command to slow down speech on keypress [] place say all at clipboard buffer - make it runnable via pypy3 [] wrapper script for running Fenrir to check if pypy exists, use python3 as fallback. - table review mode [] toggle table mode/ select headline [] next line [] prev line [] current line [] next cell [] prev cell [] current cell [] select field separator Braille Support: [] brailleFocusMode: [] manual = no automatic toggle command used [] last = follow last used cursor [] print cursor in review [] print cursor in textmode [] word wrapping (if word does not fit print it at next page) [] command toggle used cursor (in manual brailleFocusMode) [] capture input from braile [] make routing keys assignable by keyboard [] make brailleTable configurable [] pkg-config --variable=tablesdir liblouis returns on Arch:/usr/share/liblouis/tables http://mielke.cc/brltty/doc/Manual-BrlAPI/English/BrlAPI.html https://git.gnome.org/browse/orca/tree/src/orca/braille.py https://wiki.gnome.org/Attic/LSR/ScratchPad/Braille/BrlAPI https://github.com/google/brailleback/blob/master/third_party/brltty/Bindings/Python/brlapi.pyx Driver: [W] PTY Screen driver (to use gnome-terminal and other terminal emulators) https://docs.python.org/3.2/library/pty.html http://sqizit.bartletts.id.au/2011/02/14/pseudo-terminals-in-python/ https://blog.konpat.me/pythons-pseudo-terminal-pty-examples/ [] talkey driver [W] emacspeak driver https://pypi.python.org/pypi/ptyprocess#downloads [W] PTY Input driver [] ATK input driver (don't grab on graphical interface) https://git.linux-a11y.org/AIT/pyatspi2/src/master/examples/keypress.py [] Dectalk SpeechDriver (Easy for contribution, device needed - i dont own one) https://github.com/tvraman/emacspeak/blob/master/servers/obsolete/python/dectalk.py Settings: [] write settings (Easy for contribution) [] menue for settings configuration (Easy for contribution) Application Profiles (low priority): - reimplement process detection without subprocessing - fenrir is not able to detect the current application inside of screen. ps -e -H -o pid,pgrp,ppid,tty,cmd http://stackoverflow.com/questions/24861351/how-to-detect-if-python-script-is-being-run-as-a-background-process/24862213 fd = os.open("/dev/tty5", os.O_RDONLY ) os.tcgetpgrp(fd) - add perApplicationTrigger trigger per application commands per application onScreenChange per application onInput - per application shortcuts -----------DONE---------------- Cleanups: - inheritation for drivers [Done] Speech (All) [Done] Braille (All) [Done] Sound (All) [Done] Input (All) [Done] Screen (All) General: - commands [DONE] place last spoken to clipboard (Easy for contribution) Braille Support: Driver: [Done] pyttsx3 speech driver Settings: Application Profiles: