2016-12-23 10:36:16 -05:00
|
|
|
ToDo list for Fenrir Version 2.0
|
2017-08-22 06:02:55 -04:00
|
|
|
Things needing little knowledge are marked with "(Easy for contribution)". so just start with those :).
|
2017-08-21 10:28:47 -04:00
|
|
|
[] = ToDo
|
|
|
|
[W] = WIP
|
|
|
|
[X] = Done
|
2017-02-23 08:57:48 -05:00
|
|
|
|
2018-03-19 18:01:15 -04:00
|
|
|
|
2017-07-24 05:51:37 -04:00
|
|
|
Cleanups:
|
2018-03-13 03:58:14 -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
|
2018-03-13 04:09:08 -04:00
|
|
|
General (Easy for contribution)
|
2018-03-13 03:58:14 -04:00
|
|
|
[] wrapper script for running Fenrir to check if pypy3 exists, use python3 as fallback.
|
|
|
|
[w] make fenrir runnable without root permissions
|
|
|
|
[] make fenrir runable without settingsfile. fallback to defaults
|
2018-03-28 17:45:16 -04:00
|
|
|
[] Detect progressbars and just present percent
|
|
|
|
|=============== |100%
|
|
|
|
[=================> ] 100%
|
|
|
|
######################## 100%
|
2018-03-13 03:58:14 -04:00
|
|
|
Imporove attribute handling
|
2017-10-26 10:02:26 -04:00
|
|
|
[] improve attributes_curr_char (Easy for contribution)
|
2017-10-24 03:57:23 -04:00
|
|
|
[] add an attribute sound (Easy for contribution)
|
2018-03-13 04:09:08 -04:00
|
|
|
[] beep on cursor/ review by char (capital wins) (Easy for contribution)
|
|
|
|
[] beep on review by word (once for multiple, capital wins) (Easy for contribution)
|
|
|
|
[] configurable (by char, by word, none) (Easy for contribution)
|
2017-10-24 03:57:23 -04:00
|
|
|
https://github.com/jwilk/vcsapeek/blob/master/linuxvt.py
|
2018-03-13 03:58:14 -04:00
|
|
|
|
|
|
|
Improved Say all
|
2017-10-24 03:57:23 -04:00
|
|
|
[] 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
|
2017-10-26 10:02:26 -04:00
|
|
|
[] place say all at clipboard buffer
|
2018-03-13 03:58:14 -04:00
|
|
|
|
|
|
|
Table review mode
|
2017-10-26 10:02:26 -04:00
|
|
|
[] toggle table mode/ select headline
|
|
|
|
[] next line
|
|
|
|
[] prev line
|
|
|
|
[] current line
|
2017-10-25 19:08:34 -04:00
|
|
|
[] next cell
|
|
|
|
[] prev cell
|
|
|
|
[] current cell
|
|
|
|
[] select field separator
|
|
|
|
|
2017-08-21 10:32:42 -04:00
|
|
|
Braille Support:
|
2017-08-21 10:28:47 -04:00
|
|
|
[] 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)
|
2017-11-08 10:50:06 -05:00
|
|
|
https://docs.python.org/2/library/textwrap.html#textwrap.TextWrapper
|
|
|
|
drop_whitespace = False
|
|
|
|
replace_whitespace = False
|
|
|
|
w.fill(i).split('\n')
|
2017-08-21 10:28:47 -04:00
|
|
|
[] 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
|
2017-03-24 21:54:42 -04:00
|
|
|
returns on Arch:/usr/share/liblouis/tables
|
2017-08-21 10:28:47 -04:00
|
|
|
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
|
2016-12-23 10:36:16 -05:00
|
|
|
|
2018-03-13 03:58:14 -04:00
|
|
|
Driver (screen, input):
|
2017-10-01 13:41:43 -04:00
|
|
|
[W] PTY Screen driver (to use gnome-terminal and other terminal emulators)
|
2018-03-24 12:49:15 -04:00
|
|
|
[X] emulation
|
|
|
|
[X] basic reading
|
2018-03-24 14:30:44 -04:00
|
|
|
[X] detect colum/ lines
|
2018-03-24 13:39:11 -04:00
|
|
|
[X] resize on colum / line change
|
2018-03-25 17:07:57 -04:00
|
|
|
[X] make shell command configurable (or detect it)
|
2018-03-25 09:54:12 -04:00
|
|
|
[X] stop emulation properly
|
2018-03-25 18:36:43 -04:00
|
|
|
[W] attributes
|
2018-03-26 05:45:30 -04:00
|
|
|
[X] make pasteing text work again
|
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/
|
2018-03-27 11:42:15 -04:00
|
|
|
|
2018-03-13 03:58:14 -04:00
|
|
|
[] ATK input driver (don't grab on graphical interface)
|
|
|
|
https://git.linux-a11y.org/AIT/pyatspi2/src/master/examples/keypress.py
|
|
|
|
|
|
|
|
Driver (speech):
|
2017-08-21 10:28:47 -04:00
|
|
|
[] talkey driver
|
2017-10-22 16:28:09 -04:00
|
|
|
[W] emacspeak driver
|
2017-10-26 04:51:30 -04:00
|
|
|
https://pypi.python.org/pypi/ptyprocess#downloads
|
2017-08-21 10:28:47 -04:00
|
|
|
[] Dectalk SpeechDriver (Easy for contribution, device needed - i dont own one)
|
|
|
|
https://github.com/tvraman/emacspeak/blob/master/servers/obsolete/python/dectalk.py
|
2018-03-26 02:16:58 -04:00
|
|
|
[] MacOS speech Driver
|
2016-12-23 10:36:16 -05:00
|
|
|
Settings:
|
2017-10-24 03:57:23 -04:00
|
|
|
[] write settings (Easy for contribution)
|
|
|
|
[] menue for settings configuration (Easy for contribution)
|
2016-12-23 10:36:16 -05:00
|
|
|
|
2017-07-23 14:37:48 -04:00
|
|
|
Application Profiles (low priority):
|
2017-10-24 03:57:23 -04:00
|
|
|
- reimplement process detection without subprocessing
|
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-10-24 03:57:23 -04:00
|
|
|
Cleanups:
|
2017-11-10 20:40:25 -05:00
|
|
|
[X] re.sub(' +,' ',text) -> text.lstrip()? check this?
|
2017-10-24 03:57:23 -04:00
|
|
|
- inheritation for drivers
|
2017-11-05 09:54:01 -05:00
|
|
|
[X] Speech (All)
|
|
|
|
[X] Braille (All)
|
|
|
|
[X] Sound (All)
|
|
|
|
[X] Input (All)
|
|
|
|
[X] Screen (All)
|
|
|
|
- generic list or see Tutorial mode list (convert clipboard management) (Easy for contribution) - core.memoryManager
|
|
|
|
[X] next item
|
|
|
|
[X] prev item
|
|
|
|
[X] curr item
|
|
|
|
[X] first item
|
|
|
|
[X] last item
|
2018-03-13 17:55:04 -04:00
|
|
|
General:
|
2018-05-11 17:21:45 -04:00
|
|
|
[X] make it runable using pypy3
|
|
|
|
[X] interrupt speech while entering an ignored screen
|
|
|
|
[X] read ignorescreens from an file to be able to halt fenrir from outside
|
2017-10-25 18:40:15 -04:00
|
|
|
- commands
|
2017-11-06 17:49:33 -05:00
|
|
|
[X] place last spoken to clipboard (Easy for contribution)
|
|
|
|
- Improvend Headline Seperator and Multible Char Support
|
|
|
|
[X]read "13 #" insteed of ###################
|
2018-03-24 16:50:15 -04:00
|
|
|
- autospeak indentation changes (useful for python programming)
|
2017-10-24 03:57:23 -04:00
|
|
|
Braille Support:
|
|
|
|
Driver:
|
2018-05-11 17:21:45 -04:00
|
|
|
[X] evdev InputDriver
|
|
|
|
[X] grab/ ungrab devices on ignored screens
|
2018-03-27 11:42:15 -04:00
|
|
|
[X] PTY Input driver
|
|
|
|
[X] new event for byte shortcuts (escape sequences)
|
|
|
|
[X] create driver
|
|
|
|
[X] handle byte shortcuts
|
|
|
|
[X] detect shortcuts
|
|
|
|
[X] Load escape sequence shortcuts
|
|
|
|
[X] controll modes (vim like mode to not collide with application shortcuts)
|
|
|
|
[X] create keyboard layout
|
|
|
|
[X]set flag that it is used in emulation
|
|
|
|
[X] write/ consume them (controll it at all)
|
2018-03-13 17:55:04 -04:00
|
|
|
[X] make generic speech driver default
|
|
|
|
[X] pyttsx3 speech driver
|
2018-03-11 13:37:37 -04:00
|
|
|
- get information already in watchdogs insteed of mainloop (use eventloop to transport)
|
2018-03-13 17:55:04 -04:00
|
|
|
[X] InputDriver
|
2017-05-08 11:44:18 -04:00
|
|
|
Settings:
|
2017-07-23 14:37:48 -04:00
|
|
|
Application Profiles:
|
2018-03-13 04:09:08 -04:00
|
|
|
Translation:
|
|
|
|
- German (thanks to schulle4u and Jenny) https://robbinaer.info/index.php?article101/fenrir
|
|
|
|
Fixes:
|
|
|
|
- no shell in generic speech Driver
|
|
|
|
- imporove validity checks for speech driver
|
|
|
|
- handle thread and process shutdown more gracefully
|
|
|
|
- cleanup
|
|
|
|
- a lot more fixes
|
2018-03-21 19:45:17 -04:00
|
|
|
[X] (not conflict with other applications) find . -iname "*.py" -exec sed 's/from \(core.*\) import/from fenrir-screenreader.\1 import/g' {} \;
|
|
|
|
|
2018-03-27 11:42:15 -04:00
|
|
|
|