From 6b4000ff10bbf23c6493d918a2e84d1cf5298cb6 Mon Sep 17 00:00:00 2001 From: chrys87 Date: Mon, 24 Jul 2017 09:49:57 +0200 Subject: [PATCH 01/11] Update TODO v1.5 --- TODO v1.5 | 1 + 1 file changed, 1 insertion(+) diff --git a/TODO v1.5 b/TODO v1.5 index 732b819c..93424033 100644 --- a/TODO v1.5 +++ b/TODO v1.5 @@ -19,6 +19,7 @@ Fix Bugs: - let drivers choos between threads and process (split eventManager and processManager) - HilightTracking is broken for autoencoding +- Wlan is disabled on Lenovo (LED is not synced?, needs debug bgid) -----------DONE---------------- - Doku: Write a user wiki From df2d86af8a9414458ff3b6a823f17cfcdc7a21a7 Mon Sep 17 00:00:00 2001 From: chrys87 Date: Mon, 24 Jul 2017 10:09:04 +0200 Subject: [PATCH 02/11] Update TODO v1.5 --- TODO v1.5 | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/TODO v1.5 b/TODO v1.5 index 93424033..d55987ce 100644 --- a/TODO v1.5 +++ b/TODO v1.5 @@ -1,18 +1,6 @@ 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 - Fix Bugs: - device detection is broken - arrow up/down announcement is broken From 09079e92c789333f9eec90d24fe6911adb995195 Mon Sep 17 00:00:00 2001 From: chrys87 Date: Mon, 24 Jul 2017 10:10:32 +0200 Subject: [PATCH 03/11] Update TODO v2.0 --- TODO v2.0 | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/TODO v2.0 b/TODO v2.0 index daa7b542..56789f23 100644 --- a/TODO v2.0 +++ b/TODO v2.0 @@ -2,8 +2,16 @@ 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 :). 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 - implement commands attributes_curr_char (Easy for contribution) From 66139e1828a52d116f4cbb385e3c39750a1b4c8d Mon Sep 17 00:00:00 2001 From: chrys87 Date: Mon, 24 Jul 2017 10:12:33 +0200 Subject: [PATCH 04/11] Update 75000-incoming_promote.py --- src/fenrir/commands/onScreenUpdate/75000-incoming_promote.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/fenrir/commands/onScreenUpdate/75000-incoming_promote.py b/src/fenrir/commands/onScreenUpdate/75000-incoming_promote.py index e7f4586b..63cb2c82 100644 --- a/src/fenrir/commands/onScreenUpdate/75000-incoming_promote.py +++ b/src/fenrir/commands/onScreenUpdate/75000-incoming_promote.py @@ -22,8 +22,6 @@ class command(): return if self.env['runtime']['settingsManager'].getSetting('promote', 'list').strip(" \t\n") == '': return - if len(self.env['screen']['newDelta']) <= 2: - return if int(time.time() - self.env['input']['lastInputTime']) < self.env['runtime']['settingsManager'].getSettingAsInt('promote', 'inactiveTimeoutSec'): return if len(self.env['runtime']['settingsManager'].getSetting('promote', 'list')) == 0: From c41cbee349b6a841bd4f85f0c5f6128e97f45c91 Mon Sep 17 00:00:00 2001 From: chrys87 Date: Mon, 24 Jul 2017 10:15:07 +0200 Subject: [PATCH 05/11] Update and rename Changelog v1.0.txt to Changelog.txt --- Changelog v1.0.txt => Changelog.txt | 4 ++++ 1 file changed, 4 insertions(+) rename Changelog v1.0.txt => Changelog.txt (99%) diff --git a/Changelog v1.0.txt b/Changelog.txt similarity index 99% rename from Changelog v1.0.txt rename to Changelog.txt index 1a4a0f7e..e4c3cb04 100644 --- a/Changelog v1.0.txt +++ b/Changelog.txt @@ -1,3 +1,7 @@ +# Version 1.5 + +# Version: 1.00 + - move from VCS to VCSA and parese the Attributes http://linux.die.net/man/4/vcsa http://man.cx/vcsa(4)/de From 16cfe35995aee4578b03840ab9f6c042b57b9eb9 Mon Sep 17 00:00:00 2001 From: chrys87 Date: Mon, 24 Jul 2017 10:15:41 +0200 Subject: [PATCH 06/11] Update TODO v1.5 --- TODO v1.5 | 72 ------------------------------------------------------- 1 file changed, 72 deletions(-) diff --git a/TODO v1.5 b/TODO v1.5 index d55987ce..27ec0969 100644 --- a/TODO v1.5 +++ b/TODO v1.5 @@ -10,75 +10,3 @@ Fix Bugs: - Wlan is disabled on Lenovo (LED is not synced?, needs debug bgid) -----------DONE---------------- -- Doku: Write a user wiki - https://wiki.linux-a11y.org/doku.php?id=fenrir_user_manual&s[]=fenrir - -- 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 (WIP): - 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 - -- initial 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 - -Settings: -- configuration should be overwritable with parameter and alternative paths (Easy for contribution) -Tutorial Mode: -- navigate through a list of bound commands. speak binding and description. From 874547f36a8cdce66b8a8504df6b584e9eb653d7 Mon Sep 17 00:00:00 2001 From: chrys87 Date: Mon, 24 Jul 2017 10:15:59 +0200 Subject: [PATCH 07/11] Update Changelog.txt --- Changelog.txt | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/Changelog.txt b/Changelog.txt index e4c3cb04..d00db118 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,4 +1,76 @@ # Version 1.5 +- Doku: Write a user wiki + https://wiki.linux-a11y.org/doku.php?id=fenrir_user_manual&s[]=fenrir + +- 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 (WIP): + 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 + +- initial 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 + +Settings: +- configuration should be overwritable with parameter and alternative paths (Easy for contribution) +Tutorial Mode: +- navigate through a list of bound commands. speak binding and description. # Version: 1.00 From ea4884819ee2286dfddefdceae26bf3a9c11fca0 Mon Sep 17 00:00:00 2001 From: chrys87 Date: Mon, 24 Jul 2017 11:45:46 +0200 Subject: [PATCH 08/11] Update Changelog.txt --- Changelog.txt | 69 +++++++++++++++++++-------------------------------- 1 file changed, 25 insertions(+), 44 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index d00db118..403637be 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -13,33 +13,28 @@ - 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) +- implement autodetection of plugged and unplugged input devices + +- implement speechdriver generic - 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 (WIP): - 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 + - 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 @@ -47,30 +42,16 @@ Braille Support (WIP): brailleFocusMode: - review = priority to review -- initial try to make it more asynchronus with multpible threads +- move to an event based system -- 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 +- add initial multithreading/ multiprocessing support -Settings: -- configuration should be overwritable with parameter and alternative paths (Easy for contribution) -Tutorial Mode: -- navigate through a list of bound commands. speak binding and description. +- support cli parameters + - add cli parameter for debugging "-d" + - add cli parameter to overwrite options "-o" + - add cli parameter to specify an settings.conf "-s" + +- list of bound commands in Tutorial Mode. speak name, binding and description. # Version: 1.00 From 69928a850efbcb11e06d935c7ad8b3db68cfb705 Mon Sep 17 00:00:00 2001 From: chrys87 Date: Mon, 24 Jul 2017 11:46:18 +0200 Subject: [PATCH 09/11] Update TODO v1.5 --- TODO v1.5 | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/TODO v1.5 b/TODO v1.5 index 27ec0969..d55987ce 100644 --- a/TODO v1.5 +++ b/TODO v1.5 @@ -10,3 +10,75 @@ Fix Bugs: - Wlan is disabled on Lenovo (LED is not synced?, needs debug bgid) -----------DONE---------------- +- Doku: Write a user wiki + https://wiki.linux-a11y.org/doku.php?id=fenrir_user_manual&s[]=fenrir + +- 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 (WIP): + 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 + +- initial 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 + +Settings: +- configuration should be overwritable with parameter and alternative paths (Easy for contribution) +Tutorial Mode: +- navigate through a list of bound commands. speak binding and description. From 898eb1f95c5f14f1960a37314a032a99f6a00b77 Mon Sep 17 00:00:00 2001 From: chrys87 Date: Mon, 24 Jul 2017 11:51:37 +0200 Subject: [PATCH 10/11] Update TODO v2.0 --- TODO v2.0 | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/TODO v2.0 b/TODO v2.0 index 56789f23..d57c6ae4 100644 --- a/TODO v2.0 +++ b/TODO v2.0 @@ -1,8 +1,11 @@ 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 :). -General: -- Migrate *Data.py to classes and use getter/setter (Easy for contribution) +Cleanups: +- split oldValues := newValues out to helper function (Easy for contribution) + - split it out + - use it in evdev driver +- Migrate *Data.py to classes and use getter/setter (Easy for contribution) commandsData.py eventData.py generalData.py @@ -13,6 +16,7 @@ General: screenData.py settingsData -> defaultSettings.py +General: - implement commands attributes_curr_char (Easy for contribution) https://github.com/jwilk/vcsapeek/blob/master/linuxvt.py @@ -53,7 +57,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 (Easy for contribution, device needed - i dont own one) +- Dectalk SpeechDriver (Easy for contribution, device needed - i dont own one) https://github.com/tvraman/emacspeak/blob/master/servers/obsolete/python/dectalk.py Settings: From 32e11ac9a756ac6d16ba8bd4e4b4cc86d756b8c8 Mon Sep 17 00:00:00 2001 From: chrys87 Date: Mon, 24 Jul 2017 15:35:27 +0200 Subject: [PATCH 11/11] Update evdevDriver.py --- src/fenrir/inputDriver/evdevDriver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fenrir/inputDriver/evdevDriver.py b/src/fenrir/inputDriver/evdevDriver.py index c09cd42e..6e50314c 100644 --- a/src/fenrir/inputDriver/evdevDriver.py +++ b/src/fenrir/inputDriver/evdevDriver.py @@ -147,7 +147,7 @@ class driver(): return uDevice.write_event(event) uDevice.syn() - time.sleep(0.0001) + time.sleep(0.00001) def updateInputDevices(self, force = False, init = False): if init: