diff --git a/TODO v1.5 b/TODO v1.5 new file mode 100644 index 00000000..02db67cf --- /dev/null +++ b/TODO v1.5 @@ -0,0 +1,74 @@ +ToDo list for Fenrir Version 1.5 +Things with not so deep knowledge needed are marekd wiht "(Easy for contribution)". so just start with that :). + +General: +- 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 + +- try to make it more asynchronus with multpible threads +- be more event based (vcsa sets POLLPRI) + http://scotdoyle.com/python-epoll-howto.html + Needed events: + screen update (vcsa sets POLLPRI) + plug input device (udev event) + screen changed (logind event, collides with screen update) + keyboard input (select, wait forever) + braille input (brlapi_readKey) + braille flush (timer, sleep) + Each event is watched in an own thread. This improves performance and reduce the load. + The event loop is to be done as "queue" since those are thread safe. + The threads are reading incomming data and add the events and data to the queue + the mainloop just reads the queue in an blocking way and executes the needed codepath with the data. + clean up the code for the events so that just the correct codepath is used: + - screen + - input + - new device +-----------DONE---------------- +- initial working setup.py +- leave review on typing +- add dependency check (check-dependencys.py) +- Add nice dummy drivers as template or for debugging +- reimplement detection code for X11 +- initial translate structure (manuelcortez Thanks!) + http://www.supernifty.org/blog/2011/09/16/python-localization-made-easy/ +- add a configurable place where you can place own commands or overwrite existing commands without need to change default code +- implement autodetection of plugged and unplugged input devices (python-pyudev) for evdev driver + http://stackoverflow.com/questions/22678686/python-script-to-detect-hot-plug-event + http://askubuntu.com/questions/508236/how-can-i-run-code-whenever-a-usb-device-is-unplugged-without-requiring-root + https://www.mattfischer.com/blog/?p=182 +- implement speechdriver generic (Easy for contribution) +- try to autodetect encoding (Easy for contribution) (Prototype "charmapTTY" in play zone) + https://stackoverflow.com/questions/6396659/how-do-you-get-the-encoding-of-the-terminal-from-within-a-python-script + +Braille Support: + initial BrlTTY driver + detect device size via driver + output to braille device + make flushMode configurable + make flushTimeout configurable + flush message after X seconds and show current line (review over text) + tweak current commands and output + command flush_braille + command for scroll left + command for scroll right + create offset for scrolling + respect scrolling + make cursor following configurable (brailleCursorTrackingMode) + - cell + - page + follow cursor while typing + brailleFocusMode: + - review = priority to review + +Settings: +- [X] configuration should be overwritable with parameter and alternative paths (Easy for contribution) +Tutorial Mode: +- [X] navigate through a list of bound commands. speak binding and description. diff --git a/TODO v2.0 b/TODO v2.0 index 546eb2e6..daa7b542 100644 --- a/TODO v2.0 +++ b/TODO v2.0 @@ -5,36 +5,6 @@ General: - implement onScreenUpdate commands read highlighted text mode -- 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 - -- try to make it more asynchronus with multpible threads -- be more event based (vcsa sets POLLPRI) - http://scotdoyle.com/python-epoll-howto.html - Needed events: - screen update (vcsa sets POLLPRI) - plug input device (udev event) - screen changed (logind event, collides with screen update) - keyboard input (select, wait forever) - braille input (brlapi_readKey) - braille flush (timer, sleep) - Each event is watched in an own thread. This improves performance and reduce the load. - The event loop is to be done as "queue" since those are thread safe. - The threads are reading incomming data and add the events and data to the queue - the mainloop just reads the queue in an blocking way and executes the needed codepath with the data. - clean up the code for the events so that just the correct codepath is used: - - screen - - input - - new device - - implement commands attributes_curr_char (Easy for contribution) https://github.com/jwilk/vcsapeek/blob/master/linuxvt.py @@ -75,7 +45,7 @@ Driver: - ATK input driver (don't grab on graphical interface) https://git.linux-a11y.org/AIT/pyatspi2/src/master/examples/keypress.py -- Dectalk SpeechDriver +- Dectalk SpeechDriver (Easy for contribution, device needed - i dont own one) https://github.com/tvraman/emacspeak/blob/master/servers/obsolete/python/dectalk.py Settings: @@ -83,7 +53,7 @@ Settings: - menue for settings configuration (Easy for contribution) -Application Profiles +Application Profiles (low priority): - reimplement process detection without subprocessing // this is started by chrys - fenrir is not able to detect the current application inside of screen. ps -e -H -o pid,pgrp,ppid,tty,cmd @@ -97,43 +67,8 @@ Application Profiles - per application shortcuts -----------DONE---------------- -- initial working setup.py -- leave review on typing -- add dependency check (check-dependencys.py) -- Add nice dummy drivers as template or for debugging -- reimplement detection code for X11 -- initial translate structure (manuelcortez Thanks!) - http://www.supernifty.org/blog/2011/09/16/python-localization-made-easy/ -- add a configurable place where you can place own commands or overwrite existing commands without need to change default code -- implement autodetection of plugged and unplugged input devices (python-pyudev) for evdev driver - http://stackoverflow.com/questions/22678686/python-script-to-detect-hot-plug-event - http://askubuntu.com/questions/508236/how-can-i-run-code-whenever-a-usb-device-is-unplugged-without-requiring-root - https://www.mattfischer.com/blog/?p=182 -- implement speechdriver generic (Easy for contribution) -- try to autodetect encoding (Easy for contribution) (Prototype "charmapTTY" in play zone) - https://stackoverflow.com/questions/6396659/how-do-you-get-the-encoding-of-the-terminal-from-within-a-python-script - +General: Braille Support: - initial BrlTTY driver - detect device size via driver - output to braille device - make flushMode configurable - make flushTimeout configurable - flush message after X seconds and show current line (review over text) - tweak current commands and output - command flush_braille - command for scroll left - command for scroll right - create offset for scrolling - respect scrolling - make cursor following configurable (brailleCursorTrackingMode) - - cell - - page - follow cursor while typing - brailleFocusMode: - - review = priority to review - +Driver: Settings: -- [X] configuration should be overwritable with parameter and alternative paths (Easy for contribution) -Tutorial Mode: -- [X] navigate through a list of bound commands. speak binding and description. +Application Profiles: