diff --git a/TODO b/TODOv1 similarity index 81% rename from TODO rename to TODOv1 index 6dd38b3a..71a40368 100644 --- a/TODO +++ b/TODOv1 @@ -5,58 +5,12 @@ Known Bugs: - for some users fenrir eats the orca key - in special cases next word skipps a word, "word<12 spaces>word2<12 spaces>word3 (storm_dragon) - Fenrir key sometimes wents crazy? (maybe this is if fenrir key is released before other keys) -- For example, in screen, it just tells me bell in window, but doesn't tell me which one. (southernprince) - spellcheck triggers twice if there are two spaces after an word and you arrow over them + +Glitches +- For example, in screen, it just tells me bell in window, but doesn't tell me which one. (southernprince) - alpine seems to have problems (just small glitches) (southernprince) -- 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) - - -- implement onScreenUpdate commands - read highlighted text mode - -- implement commands - attributes_curr_char - generic list command (convert clipboard management) - next item - pref item - curr item - first item - last item - -- implement braille - output to braille device - virtual buffer area for scroll left/right if the line is to long for device - commands for scroll left/right - print cursor in review - print cursor in textmode - flush message after X seconds and show current line (review over text) - make flush configurable - leve review mode on typing (show current textline) - capture input from braile - make routing keys assignable in keyboard - tweak current commands and output -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 - -- implement autodetection of plugged and removed input devices (python-pyudev) -http://askubuntu.com/questions/508236/how-can-i-run-code-whenever-a-usb-device-is-unplugged-without-requiring-root -- add perApplicationTrigger trigger - per application commands - per application onScreenChange - per application onInput -- per application shortcuts -- configuration should be overwriteable with parameter and alternative paths -- write settings -- menue for settings configuration #storm -- translateable - -- implement speechdriver generic -------------DONE-------------------------------- - move from VCS to VCSA and parese the Attributes http://linux.die.net/man/4/vcsa diff --git a/TODOv2 b/TODOv2 new file mode 100644 index 00000000..f458907d --- /dev/null +++ b/TODOv2 @@ -0,0 +1,56 @@ +ToDo list for Fenrir Version 2.0 + +General: +- implement onScreenUpdate commands + read highlighted text mode +- translateable + +- implement commands + attributes_curr_char + generic list command (convert clipboard management) + next item + pref item + curr item + first item + last item + +Braille Support: + output to braille device + virtual buffer area for scroll left/right if the line is to long for device + commands for scroll left/right + print cursor in review + print cursor in textmode + flush message after X seconds and show current line (review over text) + make flush configurable + leve review mode on typing (show current textline) + capture input from braile + make routing keys assignable in keyboard + tweak current commands and output + 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 + +Driver: +- implement PTY driver +- BrlTTY driver + https://docs.python.org/3.2/library/pty.html +- implement speechdriver generic +- implement autodetection of plugged and removed input devices (python-pyudev) for evdev driver + http://askubuntu.com/questions/508236/how-can-i-run-code-whenever-a-usb-device-is-unplugged-without-requiring-root + +Settings: +- configuration should be overwriteable with parameter and alternative paths +- write settings +- menue for settings configuration #storm + +Application Profiles +- 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 diff --git a/play zone/wrapWord.py b/play zone/wrapWord.py new file mode 100755 index 00000000..edbe96bc --- /dev/null +++ b/play zone/wrapWord.py @@ -0,0 +1,56 @@ +#!/bin/python +# -*- coding: utf-8 -*- + +# Fenrir TTY screen reader +# By Chrys, Storm Dragon, and contributers. + +from core import debug +# X Y Word END BREAK +# -1, -1, '', True False +def getPrevWord(currX,currY, currText): + lineBreak = False + endOfScreen = False + if currText == '': + return -1, -1, '', endOfScreen, lineBreak + x, y, currWord, endOfScreen, lineBreak = getCurrentWord(currX,currY,currText) + if endOfScreen: + return x, y, currWord, endOfScreen, lineBreak + wrappedLines = currText.split('\n') + currLine = wrappedLines[y].replace("\t"," ") + return x, y, currWord, endOfScreen, lineBreak + +def getCurrentWord(currX,currY, currText): + lineBreak = False + endOfScreen = False + if currText == '': + return -1, -1, '', endOfScreen, lineBreak + x = currX + y = currY + currWord = '' + wrappedLines = currText.split('\n') + currLine = wrappedLines[y].replace("\t"," ") + return x, y, currWord, endOfScreen, lineBreak + +def getNextWord(currX,currY, currText): + lineBreak = False + endOfScreen = False + if currText == '': + return -1, -1, '', endOfScreen, lineBreak + x, y, currWord, endOfScreen, lineBreak = getCurrentWord(currX,currY,currText) + if endOfScreen: + return x, y, currWord, endOfScreen, lineBreak + wrappedLines = currText.split('\n') + currLine = wrappedLines[y].replace("\t"," ") + return x, y, currWord, endOfScreen, lineBreak + + +data = [ +'das ist ein test lol\n', +' das ist ein test l \n', +' das ist ein test\n', +' \n', +' asdf asdf a\n', +'test test\n', +' te test\n' +] +