dictation-toolbox / dragonfly-scripts

Dragonfly scripts for Dragon NaturallySpeaking
87 stars 30 forks source link

Dynamic aenea #22

Closed nirvdrum closed 10 years ago

nirvdrum commented 10 years ago

This one is pretty big, so it deserves some review. But it seems to make working with Aenea a lot better for me. Basically with these changes grammars will work with both Windows and Linux at the same time. If the dictation capturing window is in the foreground then the commands will be routed to Linux, otherwise they will be treated as local Windows commands. This change does not require restarting NatLink.

The Aenea configuration value is still used to globally enable or disable Aenea, but the decision of where commands should be routed is handled dynamically.

This work isn't 100% complete, but I think it's good enough to merge and build on top of. For instance, I didn't handle the Mouse action, but none of the grammars in this repository seem to use it so I didn't prioritize it. The only lingering issue I'm aware of is when there is a difference in keystrokes between the two environments. I think this can be handled fairly simply and I plan on doing that.

nirvdrum commented 10 years ago

I just realized that I made aenea a hard dependency. I don't necessarily think that's a bad thing (just that it's on PYTHONPATH, not that it's required to be used). But if that's a dealbreaker, I'll have to unravel some of this. The DynamicContext stuff is rather handy and I'd hate to give it up. The alternative is probably to use DynamicContext if aenea is configured, but skip it if it isn't.

poppe1219 commented 10 years ago

I'm hoping I will have time to look at this before the weekend is over. Personally, I don't mind that Aenea is a required dependency. But it will make the repository less useful for those not interested in using Linux. It is certainly not a dealbreaker for me, as my focus is to be able to control Linux. But perhaps we can look at a way to make it optional later on.