fenrir/TODO v2.0

140 lines
5.4 KiB
Plaintext
Raw Normal View History

2016-12-23 10:36:16 -05:00
ToDo list for Fenrir Version 2.0
Things with not so deep knowledge needed are marekd wiht "(Easy for contribution)". so just start with that :).
2016-12-23 10:36:16 -05:00
General:
- implement onScreenUpdate commands
read highlighted text mode
2017-07-23 14:32:21 -04:00
- 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
2017-07-09 12:27:31 -04:00
- try to make it more asynchronus with multpible threads
2017-01-25 16:41:59 -05:00
- be more event based (vcsa sets POLLPRI)
2017-01-26 05:26:14 -05:00
http://scotdoyle.com/python-epoll-howto.html
Needed events:
2017-07-09 12:27:31 -04:00
screen update (vcsa sets POLLPRI)
plug input device (udev event)
2017-07-09 12:27:31 -04:00
screen changed (logind event, collides with screen update)
keyboard input (select, wait forever)
braille input (brlapi_readKey)
2017-07-09 12:27:31 -04:00
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.
2017-06-23 18:45:10 -04:00
clean up the code for the events so that just the correct codepath is used:
- screen
- input
- new device
2017-07-23 14:32:21 -04:00
2016-12-23 10:36:16 -05:00
- implement commands
attributes_curr_char (Easy for contribution)
2017-03-02 16:57:59 -05:00
https://github.com/jwilk/vcsapeek/blob/master/linuxvt.py
2017-07-23 14:32:21 -04:00
2017-07-21 03:40:20 -04:00
- generic list or see Tutorial mode list (convert clipboard management) (Easy for contribution)
2016-12-23 10:36:16 -05:00
next item
pref item
curr item
first item
last item
Braille Support:
2017-01-30 17:38:16 -05:00
brailleFocusMode:
- manual = no automatic toggle command used
- last = follow last used cursor
2016-12-23 10:36:16 -05:00
print cursor in review
2017-01-30 11:18:46 -05:00
print cursor in textmode
2017-03-24 22:00:59 -04:00
word wrapping (if word does not fit print it at next page)
2017-02-02 04:24:52 -05:00
command toggle used cursor (in manual brailleFocusMode)
2016-12-23 10:36:16 -05:00
capture input from braile
2017-02-19 20:17:23 -05:00
make routing keys assignable by keyboard
2017-01-30 10:59:17 -05:00
make brailleTable configurable
2017-02-02 11:33:28 -05:00
pkg-config --variable=tablesdir liblouis
returns on Arch:/usr/share/liblouis/tables
2016-12-23 10:36:16 -05:00
http://mielke.cc/brltty/doc/Manual-BrlAPI/English/BrlAPI.html
https://git.gnome.org/browse/orca/tree/src/orca/braille.py
2017-01-30 10:59:17 -05:00
https://wiki.gnome.org/Attic/LSR/ScratchPad/Braille/BrlAPI
https://github.com/google/brailleback/blob/master/third_party/brltty/Bindings/Python/brlapi.pyx
2016-12-23 10:36:16 -05:00
Driver:
- implement PTY Screen driver (to use gnome-terminal and other terminal emulators)
2017-01-26 06:12:02 -05:00
https://docs.python.org/3.2/library/pty.html
2017-05-11 11:09:39 -04:00
http://sqizit.bartletts.id.au/2011/02/14/pseudo-terminals-in-python/
https://blog.konpat.me/pythons-pseudo-terminal-pty-examples/
2017-07-23 14:32:21 -04:00
2017-01-30 11:18:46 -05:00
- implement PTY Input driver
2017-07-23 14:32:21 -04:00
2017-02-19 20:17:23 -05:00
- ATK input driver (don't grab on graphical interface)
2017-04-24 07:58:49 -04:00
https://git.linux-a11y.org/AIT/pyatspi2/src/master/examples/keypress.py
2017-07-23 14:32:21 -04:00
2017-04-24 08:11:18 -04:00
- Dectalk SpeechDriver
https://github.com/tvraman/emacspeak/blob/master/servers/obsolete/python/dectalk.py
2016-12-23 10:36:16 -05:00
Settings:
2017-02-27 08:45:34 -05:00
- write settings (Easy for contribution)
2017-07-23 14:32:21 -04:00
2017-02-27 08:45:34 -05:00
- menue for settings configuration (Easy for contribution)
2016-12-23 10:36:16 -05:00
Application Profiles
2017-02-27 08:45:34 -05:00
- reimplement process detection without subprocessing // this is started by chrys
2016-12-23 10:36:16 -05:00
- 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
2017-01-30 10:25:19 -05:00
- per application shortcuts
-----------DONE----------------
2017-05-25 08:32:53 -04:00
- initial working setup.py
2017-07-09 12:27:31 -04:00
- leave review on typing
2017-05-25 08:32:53 -04:00
- add dependency check (check-dependencys.py)
2017-01-30 17:38:16 -05:00
- Add nice dummy drivers as template or for debugging
2017-02-23 08:51:31 -05:00
- reimplement detection code for X11
- initial translate structure (manuelcortez Thanks!)
http://www.supernifty.org/blog/2011/09/16/python-localization-made-easy/
2017-02-23 09:33:47 -05:00
- add a configurable place where you can place own commands or overwrite existing commands without need to change default code
2017-02-28 10:55:47 -05:00
- implement autodetection of plugged and unplugged input devices (python-pyudev) for evdev driver
2017-03-02 16:57:59 -05:00
http://stackoverflow.com/questions/22678686/python-script-to-detect-hot-plug-event
2017-02-28 10:55:47 -05:00
http://askubuntu.com/questions/508236/how-can-i-run-code-whenever-a-usb-device-is-unplugged-without-requiring-root
2017-03-02 16:57:59 -05:00
https://www.mattfischer.com/blog/?p=182
2017-03-02 16:43:24 -05:00
- implement speechdriver generic (Easy for contribution)
2017-07-17 19:06:55 -04:00
- 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
2017-01-30 17:38:16 -05:00
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
2017-02-02 18:38:38 -05:00
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
2017-02-02 04:21:50 -05:00
brailleFocusMode:
- review = priority to review
2017-05-08 11:44:18 -04:00
Settings:
2017-07-21 03:38:10 -04:00
- [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.