diff --git a/config/keyboard/desktop.conf b/config/keyboard/desktop.conf index 2b5297ae..aca358b7 100644 --- a/config/keyboard/desktop.conf +++ b/config/keyboard/desktop.conf @@ -25,8 +25,9 @@ #=toggle_output #=toggle_autoRead 1-FENRIR,1-KEY_Q=quit_fenrir -`-FENRIR,1-KEY_T=time +1-FENRIR,1-KEY_T=time 1-FENRIR,1-KEY_D=date +#=spell_check #=foreward_keypress #=inc_speech_volume #=dec_speech_volume diff --git a/config/keyboard/laptop.conf b/config/keyboard/laptop.conf index a414d5fe..26a57dc1 100644 --- a/config/keyboard/laptop.conf +++ b/config/keyboard/laptop.conf @@ -26,6 +26,8 @@ #=toggle_autoRead #=quit_fenrir #=time +#=date +#=spell_check #=foreward_keypress #=inc_speech_volume #=dec_speech_volume diff --git a/config/keyboard/test.conf b/config/keyboard/test.conf index b9af0f76..52e9eb7a 100644 --- a/config/keyboard/test.conf +++ b/config/keyboard/test.conf @@ -27,6 +27,7 @@ #=quit_fenrir 1-FENRIR,1-KEY_T=time 1-FENRIR,1-KEY_R=date +#=spell_check 1-FENRIR,1-KEY_A=foreward_keypress #1-FENRIR,1-KEY_F2=inc_speech_volume #1-FENRIR,1-KEY_F3=dec_sound_volume diff --git a/src/fenrir-package/commands/commands/spell_check.py b/src/fenrir-package/commands/commands/spell_check.py new file mode 100644 index 00000000..c2090159 --- /dev/null +++ b/src/fenrir-package/commands/commands/spell_check.py @@ -0,0 +1,61 @@ +#!/bin/python +from utils import word_utils +initialized = False +try: + import enchant + initialized = True +except: + print('nööP') + +class command(): + def __init__(self): + pass + + def run(self, environment): + if not environment['runtime']['settingsManager'].getSettingAsBool(environment, 'general', 'autoSpellCheck'): + return environment + + if not initialized: + environment['runtime']['outputManager'].presentText(environment, 'pychant is not installed', interrupt=True) + return environment + spellChecker = enchant.Dict(environment['runtime']['settingsManager'].getSetting(environment, 'general', 'spellCheckLanguage')) + + # just when cursor move worddetection is needed + if environment['screenData']['newCursor']['x'] == environment['screenData']['oldCursor']['x']: + return environment + + # for now no new line + if environment['screenData']['newCursor']['y'] != environment['screenData']['oldCursor']['y']: + return environment + if len(environment['screenData']['newDelta']) > 1: + return environment + + # TTY Change is no new word + if environment['screenData']['newTTY'] != environment['screenData']['oldTTY']: + return environment + + # first place could not be the end of a word + if environment['screenData']['newCursor']['x'] == 0: + return environment + + # get the word + newContent = environment['screenData']['newContentText'].split('\n')[environment['screenData']['newCursor']['y']] + x, y, currWord = word_utils.getCurrentWord(environment['screenData']['newCursor']['x'], 0, newContent) + # was this a typed word? + if environment['screenData']['newDelta'] != '': + if not(newContent[environment['screenData']['oldCursor']['x']].strip() == '' and x != environment['screenData']['oldCursor']['x']): + return environment + else: + # or just arrow arround? + if not(newContent[environment['screenData']['newCursor']['x']].strip() == '' and x != environment['screenData']['newCursor']['x']): + return environment + + if currWord != '': + if not spellChecker.check(currWord): + environment['runtime']['outputManager'].presentText(environment, 'misspelled', interrupt=True) + + return environment + def setCallback(self, callback): + pass + def shutdown(self): + pass diff --git a/src/fenrir-package/commands/onScreenChanged/62000-spell_check.py b/src/fenrir-package/commands/onScreenChanged/62000-spell_check.py index c2090159..c81fdb12 100644 --- a/src/fenrir-package/commands/onScreenChanged/62000-spell_check.py +++ b/src/fenrir-package/commands/onScreenChanged/62000-spell_check.py @@ -16,7 +16,6 @@ class command(): return environment if not initialized: - environment['runtime']['outputManager'].presentText(environment, 'pychant is not installed', interrupt=True) return environment spellChecker = enchant.Dict(environment['runtime']['settingsManager'].getSetting(environment, 'general', 'spellCheckLanguage'))