diff --git a/website unimacro/all styles list (dutch windows system).png b/website unimacro/all styles list (dutch windows system).png deleted file mode 100644 index 424a8df..0000000 Binary files a/website unimacro/all styles list (dutch windows system).png and /dev/null differ diff --git a/website unimacro/demo youtube.txt b/website unimacro/demo youtube.txt deleted file mode 100644 index 876d787..0000000 --- a/website unimacro/demo youtube.txt +++ /dev/null @@ -1,7 +0,0 @@ -This was a demonstration of the Unimacro grammar chrome_browsing, - -Using the Click by Voice extension written by Mark Lillibridge. - -Also see http://qh.antenna.nl/unimacro/grammars/specificgrammars/chromebrowsing/index.html - -Quintijn Hoogenboom, July 21, 2017 \ No newline at end of file diff --git a/website unimacro/english word styles grammar.png b/website unimacro/english word styles grammar.png deleted file mode 100644 index 1550049..0000000 Binary files a/website unimacro/english word styles grammar.png and /dev/null differ diff --git a/website unimacro/html/.htaccess b/website unimacro/html/.htaccess deleted file mode 100644 index 6f710e0..0000000 --- a/website unimacro/html/.htaccess +++ /dev/null @@ -1,29 +0,0 @@ -RewriteEngine On -##RewriteCond %{HTTPS} off -##RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] -RewriteCond %{SERVER_PORT} 80 -RewriteRule ^(.*)$ https://qh.antenna.nl/unimacro [R,L] -Redirect 301 /unimacro/installation/changelog.html https://qh.antenna.nl/unimacro/installation/index.html - -Redirect 301 /unimacro/installation/configuration.html https://qh.antenna.nl/unimacro/installation/index.html - -Redirect 301 /unimacro/installation/configureadministratorrights.html https://qh.antenna.nl/unimacro/installation/index.html - -Redirect 301 /unimacro/installation/howtostart.html https://qh.antenna.nl/unimacro/installation/index.html - -Redirect 301 /unimacro/installation/inifilestrategy.html https://qh.antenna.nl/unimacro/installation/index.html - -Redirect 301 /unimacro/installation/installationstableversionpython2.html https://qh.antenna.nl/unimacro/installation/index.html - -RewriteCond %{REQUEST_URI} ^/unimacro/installation/logofchanges(/.*)?$ -RewriteRule ^(.*) /unimacro/installation/index.html [l,R=301] -Redirect 301 /unimacro/installation/problemswithinstallation.html https://qh.antenna.nl/unimacro/installation/index.html - -Redirect 301 /unimacro/installation/problemswithnatlink.html https://qh.antenna.nl/unimacro/installation/index.html - -RewriteCond %{REQUEST_URI} ^/unimacro/installation/settinghome(/.*)?$ -RewriteRule ^(.*) /unimacro/installation/index.html [l,R=301] -Redirect 301 /unimacro/installation/speechmodel.html https://qh.antenna.nl/unimacro/installation/index.html - -RewriteCond %{REQUEST_URI} ^/unimacro/installation/technicaldetails(/.*)?$ -RewriteRule ^(.*) /unimacro/installation/index.html [l,R=301] \ No newline at end of file diff --git a/website unimacro/html/aboutunimacro/donation/donationfail.html b/website unimacro/html/aboutunimacro/donation/donationfail.html deleted file mode 100644 index 19b84d1..0000000 --- a/website unimacro/html/aboutunimacro/donation/donationfail.html +++ /dev/null @@ -1,79 +0,0 @@ - - -unimacro, About, Donation, donationfail - - - - - - - - - - -
- - - - -
Donation
History
- -

Fail

-

Making a donation seems to have failed at PayPal.

-

If you intended to make a donation, please try again, or contact - - for other options to support the work done on NatLink/Unimacro/Vocola.

- -

Quintijn Hoogenboom

- - - \ No newline at end of file diff --git a/website unimacro/html/aboutunimacro/donation/donationsuccess.html b/website unimacro/html/aboutunimacro/donation/donationsuccess.html deleted file mode 100644 index 2884679..0000000 --- a/website unimacro/html/aboutunimacro/donation/donationsuccess.html +++ /dev/null @@ -1,72 +0,0 @@ - - -unimacro, About, Donation, donationsuccess - - - - - - - - - - -
- - - - -
Donation
History
- -

Thank you for making a donation.

-

This is very much appreciated.

-

Quintijn Hoogenboom

- - - \ No newline at end of file diff --git a/website unimacro/html/aboutunimacro/donation/index.html b/website unimacro/html/aboutunimacro/donation/index.html deleted file mode 100644 index 95e3477..0000000 --- a/website unimacro/html/aboutunimacro/donation/index.html +++ /dev/null @@ -1,95 +0,0 @@ - - -unimacro, About, Donation - - - - - - - - - - -
- - - -
Donation
History
- -

Make a donation

-

Natlink has been kept "alive" for about 20 years by now. Several other packages are built on top of Natlink, like Unimacro, Voicecode (now obsolete) and Dragonfly. And on top of Dragonfly, many people use Caster and Mathfly.

- -

With the release of Dragon 15, now already several years ago, a few essential changes had to be made in the C++ interface, natlink.pyd, that connects Dragon with the python programs.

- -

Starting in 2020, the support for python 2 has stopped, and "we" are transforming the code to python 3, which is now well under way.

- -

Also, more collaboration is now taking place within the Dictation Toolbox, and Natlink and Unimacro are now two of the repositories in this Toolbox.

- -

If you want to make a donation work all this work, you can do so via one of the buttons below. I (Quintijn Hoogenboom) will share the gifts with the core developers of Natlink, Unimacro and Vocola.

- - - -

Euro's, Dutch interface:

Dollars, English interface:

- - - - -
- - - - -
- -

 

-

Thank you in advance...

- - - \ No newline at end of file diff --git a/website unimacro/html/aboutunimacro/history/index.html b/website unimacro/html/aboutunimacro/history/index.html deleted file mode 100644 index 0831b4c..0000000 --- a/website unimacro/html/aboutunimacro/history/index.html +++ /dev/null @@ -1,95 +0,0 @@ - - -unimacro, About, History - - - - - - - - - - -
- - - -
Donation
History
- -

History of Natlink, Unimacro and Vocola

-

Natlink

-

Natlink was written in 1999/2000 by Joel Gould, at that time working at Dragon Systems.

- -

He presented two important presentations about Natlink.

-

The first one is -an Introduction to NatLink (pdf, 236kb), and it gives an impression of the functionality of Natlink, and also an introduction of Python.

- -

This talk is also available as powerpoint or OpenOffice Presentation.

- -

Unimacro

-

Was developed in the early 2000's by Quintijn Hoogenboom, with support from Bart Jan van Os and Ben Staniford.

- -

Around 2010 Frank Olaf Sem-Jacobsen contributed several things, including a _latex grammar.

- -

Vocola

-

(will be added)

-

Voicecode

-

The Voicecode project implemented a framework for programming by voice in different programming languages. In the preparation phase Joel Gould presented his talk for these -VoiceCoders, how to implement dictation into Natlink (pdf, 180kb). For an explanation of the working of dictation grammars it is still an important source of information.

- -

This talk is also available as powerpoint or OpenOffice Presentation.

- -

The Voicecode project is regrettably obsolete. But files are still available at SourceForge.

- -

Dragonfly

-

(will be added).

- - - \ No newline at end of file diff --git a/website unimacro/html/aboutunimacro/history/natlinktalk.odp b/website unimacro/html/aboutunimacro/history/natlinktalk.odp deleted file mode 100644 index 5561948..0000000 Binary files a/website unimacro/html/aboutunimacro/history/natlinktalk.odp and /dev/null differ diff --git a/website unimacro/html/aboutunimacro/history/natlinktalk.pdf b/website unimacro/html/aboutunimacro/history/natlinktalk.pdf deleted file mode 100644 index 67b9260..0000000 Binary files a/website unimacro/html/aboutunimacro/history/natlinktalk.pdf and /dev/null differ diff --git a/website unimacro/html/aboutunimacro/history/natlinktalk.ppt b/website unimacro/html/aboutunimacro/history/natlinktalk.ppt deleted file mode 100644 index ed8f47c..0000000 Binary files a/website unimacro/html/aboutunimacro/history/natlinktalk.ppt and /dev/null differ diff --git a/website unimacro/html/aboutunimacro/history/voicecoders.odp b/website unimacro/html/aboutunimacro/history/voicecoders.odp deleted file mode 100644 index 533e3ba..0000000 Binary files a/website unimacro/html/aboutunimacro/history/voicecoders.odp and /dev/null differ diff --git a/website unimacro/html/aboutunimacro/history/voicecoders.pdf b/website unimacro/html/aboutunimacro/history/voicecoders.pdf deleted file mode 100644 index fa60379..0000000 Binary files a/website unimacro/html/aboutunimacro/history/voicecoders.pdf and /dev/null differ diff --git a/website unimacro/html/aboutunimacro/history/voicecoders.ppt b/website unimacro/html/aboutunimacro/history/voicecoders.ppt deleted file mode 100644 index 6a89fe9..0000000 Binary files a/website unimacro/html/aboutunimacro/history/voicecoders.ppt and /dev/null differ diff --git a/website unimacro/html/aboutunimacro/index.html b/website unimacro/html/aboutunimacro/index.html deleted file mode 100644 index 73691f9..0000000 --- a/website unimacro/html/aboutunimacro/index.html +++ /dev/null @@ -1,124 +0,0 @@ - - -unimacro, About - - - - - - - - - - -
- - - - -
Donation
History
- -

About Natlink, Unimacro and Vocola

-

Natlink

-

Natlink has been kept "alive" for about 20 years by now. Several other packages are built on top of Natlink, like Unimacro, Voicecode (now obsolete) and Dragonfly. And on top of Dragonfly, many people use Caster and Mathfly.

- -

With the release of Dragon 15, now already several years ago, a few essential changes had to be made in the C++ interface, natlink.pyd, that connects Dragon with the python programs.

- -

Starting in 2020, the support for python 2 has stopped, and "we" are transforming the code to python 3, which is now well under way.

- -

Also, more collaboration is now taking place within the Dictation Toolbox, and Natlink and Unimacro are now two of the repositories in this Toolbox.

- -

Unimacro

-

Unimacro was developed by Quintijn Hoogenboom and Bart Jan van Os in the early 2000's. The target was mostly global grammars, with specific "actions" in specific programs. Also introspections, translations into other languages, mainly Dutch, and a trace facility are built in.

- -

Vocola

-

Vocola, a Voice Command Language, was developed by Rick Mohr around 2009, and Mark Lillibridge from then on supports the Dragon version on Windows. (Vocola also works with Windows Speech Recognition.) Vocola is an easy tool to make your own voice commands. Support for all languages that are known by Dragon. More elaborate extensions are possible. See vocola.net.

- -

Developers:

-

Many people work on this software, most on Dragonfly/Caster, but also on developments that do not need Dragon and Natlink (any more). See the chat channels on gitter, and the repositories on github.

- - -

Some of the names:

  • - - (Natlink, Unimacro)
  • Mark Lillibridge, Vocola 2
  • Jan Scheffczyk, Natlink installer and Natlink compile natlink.pyd
  • Mike Robers, Natlink compile natlink.pyd
  • Doug Ransom, Unimacro
- -

History and Holland

-

Read more about the history of these projects, including several presentations.

- -

In or near Holland, you could consult Quintijn for advice, implementation or instruction of Unimacro. -Please consult the website of QH.

- -

For special wishes on Unimacro grammars you can also contact Quintijn. If they require more work and/or serve commercial purposes, money will be asked for the work done.

- -

Contributors wanted

-

More help with the development of Unimacro, in the form of feedback, testing things or improving documentation is welcome. Please mail to Quintijn if you want to contibute!

- -

Donations

-

If you like this software and want to support the development of this (and value a bit of the efforts put in it sofar), please consider making a Donation.

- -

Copyright

-

Note the following copyright license:

-

“Unimacro” is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License, see:
-http://www.gnu.org/licenses/gpl.txt
-
-“Unimacro” is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; See the GNU General Public License details.
-
-“Unimacro” makes use of another SourceForge project “NatLink”,
-which has the following copyright notice:
-
-     Python Macro Language for Dragon NaturallySpeaking
-     (c) Copyright 1999 by Joel Gould
-     Portions (c) Copyright 1999 by Dragon Systems, Inc.

- - - \ No newline at end of file diff --git a/website unimacro/html/allinone.html b/website unimacro/html/allinone.html deleted file mode 100644 index a787e07..0000000 --- a/website unimacro/html/allinone.html +++ /dev/null @@ -1,63 +0,0 @@ - - -unimacro, allinone - - - - - - - - - - -
- - - \ No newline at end of file diff --git a/website unimacro/html/favicon.ico b/website unimacro/html/favicon.ico deleted file mode 100644 index 5710f99..0000000 Binary files a/website unimacro/html/favicon.ico and /dev/null differ diff --git a/website unimacro/html/features/actions/actionclassesforapplications.html b/website unimacro/html/features/actions/actionclassesforapplications.html deleted file mode 100644 index 77480fc..0000000 --- a/website unimacro/html/features/actions/actionclassesforapplications.html +++ /dev/null @@ -1,138 +0,0 @@ - - -unimacro, features, actions, action classes for applications - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
 Shorthand commands
 Meta actions
 BRINGUP details
 Unicode characters
 Actions configuration file
 Action classes for applications
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

Action classes for specific applications

-

For specific tasks, that cannot be performed with simple actions (keystrokes), meta-actions or Unimacro Shorthand Commands, it now is possible to define an application specific actions class. -With this action class actions can be done, like jumping to a line in a file, but also information from the application can be retrieved, like the line number the cursor is on.

- -

Example: win32pad

-

The easiest example is win32pad, the notepad lookalike with line numbers. In the file win32pad-actions.py, in the actionclasses subdirectory of Unimacro, the class Win32padActions is defined.

- -

The needed actions go through windows message functions (see page about global dictation, but also the module messagefunctions.py in the Unimacro directory. -With these messages function, as called in the class MessageActions (found in actionbases.py), information about a window can be retrieved.

- -

In the example the function getCurrentLineNumber is used to give the line number the cursor is on. This is used in the grammar _lines.py for doing line numbers modulo 100.

- -

Example: ultra edit

-

The program uedit32, UltraEdit, which is not free software, does the same trick. Some more effort was needed here to find the foreground tab in this multitab IDE.

- -

Example: komodo

-

With my favourite IDE, Komodo, also not free software, I did not succeed to implement a class that does the same trick. As Komodo can execute python programs, a dialogue via TCP-IP could be setup to retrieve the necessary information. This would be the same strategy as voicecode uses with Emacs.

- -

Example: excel

-

Connection with Excel is made via a so-called COM object. One of the functions is again getCurrentLineNumber, so the grammar _lines.py can also here use the line numbers modulo hundred option.

- -

Moreover via this class more information is retrieved from the Excel instance, like sheet names. The program specific grammar excel.py also use this this module to get and set information.

- -

Usage: _lines.py

-

In the grammar _lines use of these functions is made as soon as a valid program specific actions module is found, as in the examples above. Then the grammar lines can use to current line number in order to perform a line number switch modulo 100, has also is established with Emacs through Vocola commands.

- -

When the option line numbers modulo hundred is not set, this grammar this no attempts to get an instance of this program specific actions modules.

- -

Usage: Excel

-

As described above, the grammar Excel can use this actions class excel-actions.py for doing several specific commands.

- -

Implementation

-

care has been taken that the load for Unimacro is as little as possible. Therefore in the module actions.py in specific cases the program specific actions modules are instantiated, and the results are kept in a dictionary with the window handles as keys. This means that when an application is visited more often, the instance can be retrieved through this dictionary.

- -

For details about the calling, please study the file _lines.py.

- -

For details about the implementation of this program specific actions class this look into the actionclasses directory of Unimacro.

- - - \ No newline at end of file diff --git a/website unimacro/html/features/actions/actionsconfigurationfile.html b/website unimacro/html/features/actions/actionsconfigurationfile.html deleted file mode 100644 index 302f158..0000000 --- a/website unimacro/html/features/actions/actionsconfigurationfile.html +++ /dev/null @@ -1,150 +0,0 @@ - - -unimacro, features, actions, actions configuration file - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
 Shorthand commands
 Meta actions
 BRINGUP details
 Unicode characters
 Actions configuration file
 Action classes for applications
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

Actions.ini, the actions configuration file

-

This file holds configurable parameters that can be used in different other grammars. They are speech profile (user language) independent, that the parameters can vary with different Windows systems, especially with other language systems (like Dutch).

- -

Meta actions

-

Most sections of the actions.ini file are devoted to the so-called meta actions.

- -

For all sorts of meta actions there is a default section ([default]), but each meta action can be overruled for a program by making specific secions like [excel] or [firefox].

- -

See also: examples of meta actions.

- -

If the action is empty, it will be skipped. For example a fairly obscure meta action afterlines is normally empty:

- -

[default]
-afterlines =

-

For emacs there is a very special treatment (which does something with toggling line numbers):

- -

[emacs]
-afterlines = {alt+x}setnu-mode{enter}; {alt+x}setnu-mode{enter}

- -

The other way round (set in the [default] section, but empty in some program section) is also possible.

- -

Changing child and top behaviour

-

For some grammars and commands you need to know if a window is a top window (normally has a button on the taskbar) or a child window (like a open or file save as dialog window).

- -

In some cases the standard return of the function isTopWindow doesn't match what you want:

-
  • The Dragon bar itself should be treated as top window, but is reported as child window, this can be confusing especially in the _folders grammar;
  • In Komodo popup windows like Find and Yes/No windows (with title Komodo) are reported as top windows, but should behave as a child window. This should be configured for the killWindow function or the -(KW Unimacro shorthand command).
- -

In the section [general] of the actions.ini file these two types of behavior can be specified, see example:

- -

[general]
-child behaves like top = natspeak: dragon-balk, dragonbar
-top behaves like child = komodo: find, komodo

- -

Note that unlike other window title comparisons, here the whole title must match one of the words specified by a comma (and all titles are converted to lowercase).

- -

(For NatSpeak, the Dragon bar, we have a language dependency, because the window title changes with another language speech profile.)

- -

Bringup sections

-

For the different bringup commands, mainly used in the grammar _taks, several sections are used for specifying how a program should be called. Please see -the separate section on this.

- -

Example Messages from NatLink window

-

In order to close the messages window, you can simply say now task messages close (ie the messages window is brought in front and closed)

- -

In order to refresh the messages window you can insert in the file actions.ini the following section:

- -

[natspeak messages]
-taskrefresh = <<windowclose>>; PRINT new messages window

- - - \ No newline at end of file diff --git a/website unimacro/html/features/actions/bringupdetails.html b/website unimacro/html/features/actions/bringupdetails.html deleted file mode 100644 index 64e4172..0000000 --- a/website unimacro/html/features/actions/bringupdetails.html +++ /dev/null @@ -1,175 +0,0 @@ - - -unimacro, features, actions, BRINGUP details - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
 Shorthand commands
 Meta actions
 BRINGUP details
 Unicode characters
 Actions configuration file
 Action classes for applications
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

The BRINGUP Unimacro shorthand command

-

Many BringUp's this way simply go through the AppBringUp execScript command of NaturallySpeaking. -So bringing up a new task like calc works this way.

- -

BUT there is more: brought up tasks are remembered, so repeated switching just brings the previous task in focus.

- -

For some applications that were started without the BRINGUP Unimacro shorthand command a new instance will be started. This new instance will subsequently be switched to repeatedly when called.

- -

Tasks grammar

-

The BRINGUP Unimacro shorthand command is extensively used in the tasks grammar. Tasks you want to be able to call should be defined in the task.ini configuration file (opened by calling edit tasks). A sample:

- -

[application]
-pythonwin = pythonwin
-idle = idle
-calc = calc
-calculator = calc
-command = cmd
-edit = edit
-emacs = emacs
-email = outlook
-excel = excel
-firefox = firefox
-internet = iexplore
-voice code = voicecode
-voice coder = voicecode
-word = winword
-messages = messages
-dragonpad = dragonpad

- -

On the left-hand side are the spoken forms, sometimes for better recognizability.

-
  • Note on this level also edit = uedit32 could be defined, but this tuning can also be done as described below. When doing it this way, the BRINGUP edit action can also be called from other places.
  • Note also the windows explorer is not called here, because bringing up folders can better be done with the grammar folders.
- -

More tuning

-

Some of the applications (on the right hand side) need more tuning. This can be done in 2 levels:

- - -

1. Configuring through actions.ini

-

By calling edit actions you open this configuration file. A sample:

- -

[bringup emacs]
-path = D:/emacs-21.3/bin/runemacs.exe
-
-[bringup edit]
-name = uedit32
-
-[bringup dragonpad]
-name = natspeak
-
-[bringup email]
-name = outlook
-
-[bringup internet]
-name = iexplore
-
-[bringup idle]
-path = C:\Python23\pythonw.exe
-args = C:\Python23\Lib\idlelib\idle.pyw
-
-[bringup ibmrad]
-name = javaw
-title = Java - Rational
-args = -product com.ibm.rational.rad.product.v75.ide
-path = C:\Program Files\IBM\SDP\eclipse.exe

-
  • The last example added by Jerome for Eclipse (apparently "Java" environment). The title does not act (yet). Should be worked at.
  • Some programs (email, internet) can be configured by giving it the proper executable name (outlook, iexplore).
  • Also for edit some suitable text editor can be defined (eg name = uedit32).
  • Emacs needs the complete path, as it is not installed in one of the windows standard folders.
  • The python IDE idle is a subprogram of pythonw (requiring the complete path here), having the argument in the variable args.
- -

2. Configure in python: actions.py:

-

This is done presently for voicecode and for messages.

-

voicecode

-

A variable voicecodeApp = 'emacs' is defined, and a special function def voicecodeBringUp().

- -

These two ensure first emacs is brought up and after that the VoiceCode things are started (mediator, voicecode-mode), and the VoiceCode user is switched to.

- -

messages

-

This one has a special function def messageBringUp(), which brings the Messages from NatLink window to the front.

- - - \ No newline at end of file diff --git a/website unimacro/html/features/actions/index.html b/website unimacro/html/features/actions/index.html deleted file mode 100644 index fd1362e..0000000 --- a/website unimacro/html/features/actions/index.html +++ /dev/null @@ -1,123 +0,0 @@ - - -unimacro, features, actions - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
 Shorthand commands
 Meta actions
 BRINGUP details
 Unicode characters
 Actions configuration file
 Action classes for applications
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

The action mechanism

-

Also see section on Vocola and Unimacro when using Unimacro Shorthand Commands and/or meta actions in Vocola

- -

Actions and Keystrokes

-

These can be compared with keystroke dvc commands and script dvc commands. They can be exploited in user defined grammars. Also Vocola can make use of these features, see next section.

- -

Actions

-

The actions as called in a user grammar or in a ini file (see below) can be:

-
  • Keystrokes: a keystroke sequence eg. {alt+f4} for close window
  • a shorthand command in capitals, like HW (for HeardWord), SSK (for SendSystemKeys). -See the full list of them.
  • an ExecScript command, being one of the official NatSpeak commands, like "ClearDesktop". Capitalisation of these words should be exactly as in the NatSpeak manual.
  • a meta action, like <<file save as>>
  • any combination of above possibilities, separated by ";" (semi colon) or a new line.
- -

If parts of an action are separated with a ";" or a newline, a short pause is done. So there is a subtle difference between the keystroke sequences abc and a; b; c.

- -

Keystrokes

-

This seems to be identical to NatLink.playString(). But there is more: through the ini file keystroke behaviour can be defined. Keys that need "hard" keystrokes (SendSystemKeys) can be defined, or it can be defined that ALL keystrokes in a specific application must be "hard". Also can be defined they optional pause between keystrokes. In current window applications this seems to be not necessary any more.

- -

Using actions in a user defined grammar

-

The actions can be called from any user defined grammar. If you extensively use actions and/or a keystrokes it is easiest to import from the action module like

- -

from actions import doAction as action
-from actions import doKeystroke as keystroke

- -

If you want to execute a action simply call action("..."). If you only want to do some keystroke combination calling keystroke("...") has the same result as the call to action (but is slightly faster).

- - - \ No newline at end of file diff --git a/website unimacro/html/features/actions/metaactions.html b/website unimacro/html/features/actions/metaactions.html deleted file mode 100644 index 979ca43..0000000 --- a/website unimacro/html/features/actions/metaactions.html +++ /dev/null @@ -1,164 +0,0 @@ - - -unimacro, features, actions, meta actions - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
 Shorthand commands
 Meta actions
 BRINGUP details
 Unicode characters
 Actions configuration file
 Action classes for applications
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

Meta actions

-

(Parts of) actions in can be defined as meta action. The actions module recognises such a string, and tries to resolve the meta action through the specifications in the ini file actions.ini (see below). Meta actions can be nested. As soon as actions are different across different programs/Windows, a meta action is appropriate: commands can be kept global, the actions can be different for different applications.

- -

Most meta actions are now written without spacing, so -<<filesaveas>> instead of -<<file save as>>.

- -

This mechanism is made because several commands (like "file save as") can have different keystrokes (or other actions) in different windows. -It can be defined as a global command, either Unimacro or as Vocola command. The default action will do for most applications, and some applications require different actions, for example another keystroke sequence.

- -

Actions with a count

-

Some actions, exclusively called from grammars, can have a optional count. If the last letter of the meta action is "n",

- -

ini files

-

The meta action mechanism is controlled by the user by the file actions.ini, and can be called with commands show actions and edit actions (commands from the grammar _control.

- -

"Show actions" gives information about the window from which it was called, which ini files sections are active, and which actions are taken from which section.

- -

"Edit actions" gives you the complete ini file. On the left side of the = is the meta action, on the right side the actual action to be performed. See below for program and window specific actions.

- -

Edit your own actions in the [default] section or in the appropriate section of your program. If you want to add a new action for a program that is not in the file yet, make a new section. If you do not know the name of the program, look at the top of the text that is shown with the command show actions, or give the command give window info (from the grammar _general).

- -

program and window specific meta actions

-

Specific actions can even be defined for specific window titles inside the program, for example in [outlook html] (if your window title contains "html"). If your window title does not contain "html" only the section [outlook] is taken.

- -

Examples

-

In the description the use of meta actions in Vocola, you'll find examples of file save as and of save|close window|document.

- -

A short example goes about highlighting (searching) for dictated text. It is in the grammar _general.

- -

The keystrokes to start the search and to finish the search can be different in different applications. They are controlled by the meta actions *<<startsearch>> and <<searchgo>>*.

- -

Often you can then rely on default actions for startsearch and searchgo, which are (probably, check your own actions.ini file):

- -

[default]
-startsearch = {ctrl+f}
-searchgo = {enter}

- -

For several applications you have to change one or both of these meta actions in order to get things work:

- -

[emacs]
-startsearch = {ctrl+s}
-
-[excel]
-searchgo = {enter}{esc}
-
-[notepad]
-searchgo = {enter}; {esc}
-
-[winword]
-searchgo = {enter}{esc}
-
-[wordpad]
-searchgo = {enter}{esc}
-
-[outlook]
-startsearch = {f4}
-searchgo = {enter}{esc}

- -

Section == application name

-

One detail: how do you know which application you are working in, the application name must be filled in between the []. Well, the command give window info (a command of the grammar _general again), gives you the required information.

- -

A few examples are given in the Unimacro and Vocola section.

- - - \ No newline at end of file diff --git a/website unimacro/html/features/actions/shorthandcommands.html b/website unimacro/html/features/actions/shorthandcommands.html deleted file mode 100644 index e53307d..0000000 --- a/website unimacro/html/features/actions/shorthandcommands.html +++ /dev/null @@ -1,393 +0,0 @@ - - -unimacro, features, actions, shorthand commands - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
 Shorthand commands
 Meta actions
 BRINGUP details
 Unicode characters
 Actions configuration file
 Action classes for applications
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

Unimacro Shorthand Commands

-

All these commands are in capitals, and they can perform ordinary things, which can be done in advanced script commands of NaturallySpeaking as well, but also more specialised things.

- -

See "section on Vocola and Unimacro when you want to use Unimacro Shorthand Commands in Vocola.

- -

Read the notes on Vocola and Unimacro if you want to use these functions in a Vocola User File.

- -

Note: Also consult the file Unimacro.vch. This file contains more detailed information about quite a few of the functions below.

- -

AutoHotkey support:

-

When you have installed AutoHotkey, you can call ahk scripts with this Unimacro Shorthand Command.

- - - -

Unimacro

Vocola

result

AHK script

AHK(script)

Do a autohotkey script file (name.ahk) or script text (just the text of the script)

- -

 

-

Bringup:

-

See also tasks grammar

- -

Many applications are handled nicely with the AppBringUp command of NaturallySpeaking.

- -

But in some cases extra work or tuning has to be done.

-

Previous BringUps are remembered, so repeated bringups can be handled more quickly.

- -

Configuration through the file actions.ini (called by edit actions).

- - - - - - - -

Unimacro

Vocola

result

BRINGUP app

BRINGUP(app)

Brings app in front (see also tasks grammar)

BRINGUP idle

BRINGUP(idle)

The IDE idle from Python

BRINGUP voicecoder

BRINGUP(voicecoder)

starts command prompt, mediator, emacs and voicecode. Switches to the correct user if needed.

- -

When called repeatedly only the necessary actions are done.

- -

 

-

Pressing the Windows modifier key.

- - - - - - -

command/examples

Vocola

result

WINKEY e

WINKEY(e)

Opens an Explorer window

WINKEY b

WINKEY(b)

Moves focus to the icon tray

WINKEY

WINKEY0()

Opens the Windows start menu

- -

 

-

Entering (really pasting) Unicode characters into your screen:

-

First puts the given character on the clipboard and then tries to -paste it into the current application via {ctrl+v}. Attempts to -not disturb the clipboard by saving it beforehand and restoring it -afterwards.

- -

(see list of known unicode characters)

- - - - - - - -

command

result

U Delta

U(Delta)

paste a Greek letter Delta (Δ)

U 916

U(916)

same (decimal 916 is the Unicode number for the above letter)

U 040A

U(040A)

same, but specified in hexadecimal (0x040a == 916)

- -

 

-

Typing ASCII characters by their decimal character number:

- - - - -

command

result -B

A 66

A(66)

types "B"

A 10

A(10)

types a newline character ({ctrl+j})

- -

 

-

Here is the list of the simple things:

- - - - - - - - - - - - - - - - -

command

Vocola

explanation

HW

HW()

HeardWord or RecognitionMimic

SSK

SSK()

Shortcut name for SendSystemKeys

S

S()

Shortcut name for SendKeys.

-

Do this with a {shift} in front, in order to try workaround a bug in Dragon (idea from Frank Olaf Sem-Jacobsen)

W

W ()

Wait some time (default 0.1 seconds)

W time

W1( time )

Wait some specified time (in seconds)

SW

SW()

Wait a shorter time

LW

LW()

Wait a longer time

VW

VW()

Does a visible wait, so the user can see things happening

- -

 

-

But also:

- - - - - - - - - - - - - - -

command

Vocola

explanation

KW

KW()

kill window: answers 'no' to the question if a document must be saved

KW {ctrl+f4}

KW1({ctrl+f4})

kill window with other key, for example killing a document window inside Excel (close document command)

RW

RW()

remember window, can be used afterwards by

WTC

WTC()

wait for title change (in this way you do not have to specify the waiting time

WWT window title

WWT("window title")

wait for window title (with a title specified) (note the quotes for Vocola!)

RTW

RTW()

return to window (which was remembered by RW)

SEARCH

not applicable

start search for a text, which parameters direction and optional search text, also -see the commands that use this search command

- -

 

-

(Note: for KW see also specification of top behaves like child

- -

Some actions for a mouse: (a bit more documentation and below)

- - - - - - - - - - - - - - - - - - -

command

Vocola

explanation

MP ...

MP(...)

go to an absolute mouse position and click (parameters:

  • screenorwindow(0,1,2,3,4,5, see below) (3 and 4 added, November 2017)
  • x
  • y
  • clicking (see below)

RMP ...

RMP(...)

relative mouse position, values x and y between -1 and 1. -(parameters:

-
  • screenorwindow(0,1,3,4,5), see below) (3 and 4 added, November 2017)
  • x
  • y
  • clicking (see below)

PRMP

PRMP()

print relative mouse positions (see below)

PMP

PMP()

print absolute mouse positions' (see below)

PRMP 1 or PMP 1

PALLMP()

print all relative and absolut mouse positions (see below)

RM

RM()

remember mouse, for cancelling mouse actions

MDOWN

MDOWN()

push down the mouse, after that you can freely drag by hand without pushing the button

CANCELMOUSE

CANCELMOUSE()

cancel a mouse down button and return to remembered mouse position (with RM)

ENDMOUSE

ENDMOUSE()

release the mouse button if it was pressed down before (by a MDOWN for example)

- -

Screenorwindow values of the MP and RMP commands (first parameter in the call)

- -

 

- - - - - - - - - - - - -

screenorwindow

explanation

0

complete screen

1

active window

2

relative to the current position (only for MP)

3

relative to the current monitor (added November 2017)

4

relative to the current monitor work area (excluding eg windows task bar of Dragon bar (added November 2017)

5

relative to the client area of or window (eg the body of an e-mail)

- -

 

-

To click or not to click:

-

By default after a mouse command a single click is performed, but Vocola ALWAYS expects 4 parameters. The fourth parameter (clicking) can be:

- - - - - - - - - - - - - -

clicking

comment

noclick

only move to a position, keep the mouse pressed if it was before

[{left|right|middle}][{click|double|down|up|release}]

do with one of the buttons one of the actions

left

the default clicking for "left" is "leftclick"

double

the default button for a click action is "left", so "leftdouble" in this example

down or leftdown

push left button down

release or up

after a push down, release the button (see also MDOWN() and ENDMOUSE() and CANCELMOUSE())

- -

 

-

Examples without clicking:

- - - - -

command

Vocola

comment

MP 1, 10, 10, 0

MP(1, 10, 10, noclick)

positions the mouse near the top left corner of the active window (Note: 0 or noclick is equivalent)

RMP 5, 0.5, 0.5, 0

RMP(5, 0.5, 0.5, noclick)

positions the mouse in the centre of the "client area"

- -

 

-

Examples with clicking:

- - - - - - -

command

Vocola

comment

MP 2, 0, 0, left

MP(2, 0, 0, click)

no move, only a click (left and click are equivalent)

MP 0,10, 10, right

MP(0,10, 10, right)

right clicking in top left corner

RMP 0, 0.01, -0.01, left, 2

RMP(0, 0.01, -0.01, double)

bottom left corner, double click (Note: leftdouble is also correct)

- -

 

-

The commands MP and RMP are wrappers around the function doMouse in natlinkutilsqh.

- -

Tasks and Icons

-

(See grammar tasks for use of these and install instructions)

- - - - - - - - - - - - - -

command

Vocola

action/explanation

TASK n

not applicable

Go to the specified task on the taskbar (see grammar tasks)

-

(n is the task number)

TASKOD

TASKOD()

Send the task to the other display (monitor) (applicable when you have 2 monitors)

- -

Leaves task in maximized or restored state. The restore position is calculated in proportion with the monitor dimensions.

TASKMAX

TASKMAX()

Maximize the task

TASKMIN

TASKMIN()

Minimize the task

TASKRESTORE

TASKRESTORE()

Put task in Restore position. If restore area falls outside the current monitor, it is brought inside the monitor area.

TOCLOCK n

not applicable

Goes to the taskbar clock position

  • n = 0 or not given: no click
  • n = left: left click (or not given)
  • n = right: right click
  • by left clicking (TOCLOCK left) you get focus on the system tray.
  • by right clicking on the clock in the system tray you get the taskbar menu (TOCLOCK right)
  • TOCLOCK (without parameters) just positions the mouse above the clock in the system tray
- -

 

-

Getting a mouse position

-

A list of the different MP and RMP actions for an actual mouse -position can be obtained by the following global commands (from the commands grammar in an English speech profile provided you didn't change the commands). The list is printed in the python messages window.

- - - - - - - -

Voice command

Shorthand command

in Vocola

print absolute mouse position

PMP

PMP()

print relative mouse position

PRMP

PRMP()

print all mouse positions

PMP 1

PALLMP()

- -

 

-

Clipboard

- - - - - - - - - - -

command

Vocola

action/explanation

CLIPSAVE

CLIPSAVE()

save the clipboard for later restore

CLIPRESTORE

CLIPRESTORE()

restores the previous saved clipboard

CLIPISNOTEMPTY

see below

this command returns true if the clipboard is not empty, so the actions can continue.

- -

If the clipboard IS empty False is returned and the command will break off. As a side effect CLIPRESTORE is called.

SCLIP text

SCLIP(text)

sends the text by putting it on the clipboard and then press ctrl+v. This can possibly circumvent problems with different language keyboards, like the German keyboard layout.

- -

The previous content of the clipboard is saved before this action and restored after.

so these commands should go together:

-

CLIPSAVE; do something; optional CLIPISNOTEMPTY; continue if clip is not empty; CLIPRESTORE

- -

in Vocola: -Unimacro("CLIPSAVE; do something; optional CLIPISNOTEMPTY; continue if clip is not empty; CLIPRESTORE");

- -

In each case the saved clipboard is restored.

- -

 

-

Date and Time

- - - - - - - - - - - - -

command

Vocola

action/explanation

DATE

DATE()

Type (print) or Read (see parameter what) the current date

- -

Default format is the %m%d, and by this default extra zeroes are stripped (eg 01/07 becomes 1/7 (being January 7)

DATE format

DATE1(format)

Specify the format of your date eg

  • %m/%d (default for print, but leaves zero's (like 01/07)
  • %B %d (long month day) (default for speak see below, eg January 7)
  • %m-%d-%Y (month-day-long year eg (01-22-2010)
  • you can specify 0 for default, also for the next case

DATE format, what

DATE2(format, what)

By setting what to speak, the date is spoken on your speakers/headset.

-
  • You can take the default format by entering 0
  • You can optionally specify what as print or as 0, taking the default (print)
  • See the file Unimacro.vch for Vocola examples, see SPEAK below for speaking other text.

TIME

TIME()

Type or Read (see parameter what) the current time

TIME format

TIME1(format)

specify the format of your time eg

  • %H:%M meaning "hour:minute" (default)
  • you can specify 0 for default, also for the next case

TIME format, what

TIME2(format, what)

By setting what to speak, the time is spoken on your speakers/headset.

-
  • You can leave the format to 0, taking the default format
  • You can opionally specify what as print or as 0
  • See the file Unimacro.vch for Vocola examples
- -

 

-

Miscellaneous commands

- - - - - - - - - - - - -

command

Vocola

action/explanation

SPEAK text

SPEAK(text)

the computer speaks text (with TTSPlayString) on your speaker or headset

PRINT text

PRINT(text)

print text to the Messages of Python Macros windowyour speaker or headset

MSG text

MSG(text)

gives a message on the screen, with OK to answer.

MESSAGE text

MESSAGE(text)

YESNO text

Unimacro("YESNO do you want to proceed; actions only if yes was answered");

Asks a question. If No is answered it will return false and the rest of the actions will not be executed.

- -

Note: The microphone is switched ON if it was "off" or "sleeping". It should NOT be switched off while answering (either with the mouse or by voice). Otherwise a UserWarning exception is raised and the performing macro is stopped.

T and F

T () and F ()

return True and False respectively, for testing mainly

-

Note: All these shorthand commands can be used inside a grammar and (see the examples and Unimacro.vch) in Vocola commands.

- -

 

- - - \ No newline at end of file diff --git a/website unimacro/html/features/actions/unicodecharacters.html b/website unimacro/html/features/actions/unicodecharacters.html deleted file mode 100644 index 366f9ed..0000000 --- a/website unimacro/html/features/actions/unicodecharacters.html +++ /dev/null @@ -1,194 +0,0 @@ - - -unimacro, features, actions, unicode characters - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
 Shorthand commands
 Meta actions
 BRINGUP details
 Unicode characters
 Actions configuration file
 Action classes for applications
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

Unicode characters

-

With the Unimacro shorthand command U you can paste most unicode characters to your screen, like Alpha, eacute etc. In this way with Dragon NaturallySpeaking Unicode characters can be printed in virtually any program.

- -

In Vocola you can choose between quotes ("U delta") or parenthesis: U(delta).

- -

See "section on Vocola and Unimacro when you want to use Unimacro Shorthand Commands in Vocola.

- -

Simply put in aVocola commands file: "U delta" or U(delta).

- -

Or put in some action in some grammar: action('U delta').

- -

As a test put the following in your local (for example Word) or global commands file:

- -

test command =
-”{enter}Delta (as 0394): ” U(0394)
-”{enter}Delta (as 394):” U(394)
-”{enter}Delta (as Delta):” U(Delta)
-”{enter}alpha (as alpha):” U(alpha)
-”{enter}alpha (as 03B4):” U(03B1)
-”{enter}Pi (as 03A0):” U(03A0)
-”{enter}Pi (as 3a0):” U(3a0)
-”{enter}Pi (as Pi):” U(Pi)
-”{enter}wrong spades (??, other font?):” U(2660)
-”{enter}Cyrillic capital letter NJE:”  U(040A)
-”{enter}eacute:;” U(eacute)
-”{enter}unicode ETH (as U ETH):;” U(ETH)
-”{enter}ascii ETH (as A 208):;” A(208)
-”{enter} ETH (as U d0):;” U(d0)
-”{enter} ETH (as U 00D0):;” U(00D0)
-”{enter}”;

- -

Note the bottom 5 examples stop at eacute. This is a little mistake which will be corrected in the next version of Unimacro.

- -

Graham Cole contributed the following list. It (or part of it) can be included in a Vocola commands file (say edit global commands or edit commands for some application)

- -

Greek alpha = U(alpha);
-Greek beta = U(beta);
-Greek big beta = U(Beta);
-Greek delta = U(delta);
-Greek big Delta = U(Delta);
-Greek epsilon = U(epsilon);
-Greek gamma = U(gamma);
-Greek big gamma = U(Gamma);
-Greek lambda = U(lambda);
-Greek micro = U(micro);
-Greek omega = U(omega);
-Greek big omega = U(Omega);
-Greek pi = U(pi);
-Greek big pi = U(Pi);
-Greek psi =U(psi);
-Greek rho = U(rho);
-Greek sigma = U(sigma);
-Greek big sigma = U(Sigma);
-Greek tau = U(tau);
-Greek theta = U(theta);
-Greek big theta = U(Theta);
-Greek zeta = U(zeta);
-Euro sign = U(euro);
-Euro abbreviation = EUR;
-Equivalent sign = U(equiv);
-fraction one half = U(frac12);
-fraction one third = U(2153);
-fraction one fourth = U(frac14);
-fraction one five = U(2155);
-fraction one six = U(2159);
-fraction five six = U(215A);
-fraction one eight = U(215B);
-fraction three eight = U(215C);
-fraction five eight = U(215D);
-fraction seven eight = U(215E);
-fraction two third = U(2154);
-fraction two fifth = U(2156);
-fraction three quarter = U(frac34);
-fraction three fifth = U(2157);
-fraction four fifth = U(2158);
-Right Arrow Sign = U(rarr);
-Double Right Arrow = U(rArr);
-Left Arrow Sign = U(larr);
-Double Left Arrow = U(lArr);
-Down Arrow Sign = U(darr);
-Double Down Arrow = U(dArr);
-Up Arrow Sign = U(uarr);
-Double Up Arrow = U(uArr);
-Paragraph Mark = U(para);

- -

Combining with other things

-

Next example shows how you can surround the Right Arrow Sign by spaces:

- -

Right Arrow Sign = {space} U(rarr) {space};

-

HtmlEntityRefs

-

Codes that are also known as "htmlentityrefs" for html are presented here:

- -

getEntityDefs()

- - - \ No newline at end of file diff --git a/website unimacro/html/features/autohotkey/configuration.html b/website unimacro/html/features/autohotkey/configuration.html deleted file mode 100644 index 19ed517..0000000 --- a/website unimacro/html/features/autohotkey/configuration.html +++ /dev/null @@ -1,98 +0,0 @@ - - -unimacro, features, AutoHotkey, Configuration - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
 Details
 Configuration
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

Different paths

  • By default the executable AutoHotkey.exe will be located in the 32-bit Program Files directory.
  • By default the user ahk script files will be located in the AutoHotkey subfolder of your Documents (PERSONAL) folder.
- -

When these paths are not correct, you can overrule them via the -link(/installation/technicaldetails/natlinkconfigfunctions.html, natlinkconfigfunctions), to be started with the Start menu item Configure NatLink via command line interface.

-
  • The option h <ahk-exe-dir> is used for defining the directory where AutoHotkey.exe is located;
  • The option k <ahk-user-dir> is used for defining the directory where your User ahk-scripts are located.
  • When you want to return to the default settings, these entries are cleared with H and K
- - - \ No newline at end of file diff --git a/website unimacro/html/features/autohotkey/details.html b/website unimacro/html/features/autohotkey/details.html deleted file mode 100644 index 9b761a9..0000000 --- a/website unimacro/html/features/autohotkey/details.html +++ /dev/null @@ -1,144 +0,0 @@ - - -unimacro, features, AutoHotkey, details - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
 Details
 Configuration
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

Programming details

-

Example: use in _tasks grammar

-

An example of the script showmessageswindow.ahk is used in the tasks grammar of Unimacro. With the command task messages inside this grammar the Messages from NatLink is switched to.

- -

Note: you need to have messages in your application section of the _tasks.ini file, see Bringup details:

- -

[application]
-messages=messages

 

-

In the actions.py module you find the code:

-

import autohotkeyactions as ahka
-def messagesBringUp():
-    ””“switch to the messages from python macros window”””
-    if ahka.ahk_is_active():
-        do_AHK(“showmessageswindow.ahk”)
-        return 1
-    # do it “the old way”:
-    (...)

- -

Which means that if AutoHotkey is active, the same script as in the preceding Vocola examples is called. If AutoHotkey is not active, the previous way to perform this task is tried, with win32gui functions.

- -

Remember window and Return to window

-

The following example first remembers the current window handle (RW()). It then switches with a ahk script to the Messages from NatLink window. After a visible wait VW(), the return to window RTW() is done.

- -

testswitchback = RW() AHK(showmessageswindow.ahk) VW() RTW();

- -

With RW() the handle of the foreground window is stored. The RTW() call uses this handle. Internally the following function is called (in natlinkutilsqh.py):

- -

import autohotkeyactions as ahka

-

def SetForegroundWindow(h):
-    ””“gets the window in front, given by window handle h
-    try AutoHotkey, if it is not on your computer, otherwise try it with win32gui functions
-    ”””
-    if ahka.ahk_is_active():
-        result = ahka.do_ahk_script(“WinActivate, ahk_id  %s”% h)
-        #result = ahka.do_ahk_script(“getintoforeground.ahk”, hndle=h)
-        #result = ahka.do_ahk_script(“WinActivate, ahk_id  %hndle%”, hndle=h)
-        if result == 1:
-            return 1
-        if result:
-            print ‘SetForegroundWindow %s with AutoHotkey failed:\n====%s====’% (h, result)
-            print result
-
-    # if here, autohotkey is not found, and the SetForegroundWindow is done the “old” way,
-    # which often/sometimes fails
-    (...)

- -

getintoforeground.ahk looks like:

-

;for Unimacro, changes %hndle% into the current foreground hndle.
-WinActivate, ahk_id  %hndle%

-
  • In the first result = line, a one liner is created, with the window handle filled in in the ahk script line.
  • In the second and third (here commented) lines the above script is called, with the hndle as named parameter. Before Unimacro calls autohotkey.exe, the script text is changed: %hndle% into the actual value (contained in h). The changed script, put into the temp file tempscript.ahk is executed by autohotkey.exe.
  • In all three examples exactly the same actions are done eventually.
  • The return parameters: this has to be sorted out further. For the moment a return value of 1 (OK) is taken all the time.
  • GetAhkExe() and GetAhkScriptFolder(): helper functions to find the autohotkey.exe and the user script folder, and store them for future use in the moule global variables ahkexe and ahkscriptfolder.
  • ahk_is_active(): return the executable (so True) or "" (so False) if autohotkey.exe cannot be found. This function should be called before other attempts to execute a ahk script are made.
  • do_ahk_script(script, hndle=None): This function does the actual calling of autohotkey. If ahkexe is not found, it raises a ValueError. In the Unimacro Shorthand Command AHK this function is called, so do not use this from Vocola if AutoHotkey is not installed on your computer.
    • the script can either be a autohotkey script file (with extension .ahk) or a script line. In the latter case the script line is written to tempscript.ahk before calling autohotkey.exe
    • the optional parameter hndle is substited into %hndle% in the script or script file, if this string is present. By default, for example when a script is called via the Unimacro Shorthand Command AHK, the handle of the active window is used.
    -
  • copySampleAhkScripts(): at first call of GetAhkScriptFolder, for example in the first call of do_ahk_script, the .ahk scripts of the sample_ahk directory of Unimacro are copied into the user ahk scripts folder, whenever they are newer. If a different version of the script is found the user ahk scripts folder, the old version is copied into scriptname.ahkold (unless that file already exists)
  • See configuration when you want non-standard paths for ahkexe and ahkscriptfolder.
- - - \ No newline at end of file diff --git a/website unimacro/html/features/autohotkey/index.html b/website unimacro/html/features/autohotkey/index.html deleted file mode 100644 index a2adafa..0000000 --- a/website unimacro/html/features/autohotkey/index.html +++ /dev/null @@ -1,118 +0,0 @@ - - -unimacro, features, AutoHotkey - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
 Details
 Configuration
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

AutoHotkey

-

The program AutoHotkey can perform many actions on your computer, in some cases smarter and more reliable than can be done with (the current knowledge) of Unimacro.

- -

AutoHotkey actions can be called from Unimacro grammars, but also with the -Unimacro Shorthand Command AHK, which can also be called from Vocola.

- -

Installation and configuration

  • Install AutoHotkey.
  • (Re)start Dragon, with NatLink, Vocola and Unimacro or the option "Vocola takes Unimacro actions" enabled, in the NatLink config program.
  • Try the Vocola examples below
- -

At first call of any of the Unimacro AutoHotkey functions, Unimacro tries to locate the autohotkey.exe and the directory of script files (with extension .ahk):

-
  • Unimacro expects autohotkey.exe in the "old style" program files directory, most often C:\Program files, and then in subdirectory autohotkey. Read the configuration if you want them somewhere else.
  • Unimacro expects or creates a user ahk scripts folder AutoHotkey in the users documents directory. Read the details if you want them somewhere else.
  • Some sample scripts are copied from the sample_ahk directory of Unimacro into this user ahk scripts directory, whenever these are newer. So when you mess up a script which is in the sample_ahk directory, delete it and restart Dragon.
- -

Script file or string

-

As script, you can either enter a filename (a AutoHotkey script, ending with .ahk), or the contents of the script. This is especially handy for one-liners.

-
  • If a script or the text in the one-liner has that literary text %hndle%, the handle of the foreground window will be inserted in this place. This handle can be changed if the script is called from Unimacro, not via the AHK Unimacro Shorthand Command, see details. If this substitution happens in a script file, the script text is used and script file is not changed, because:
  • If a script text is used, it is first written to tempscript.ahk, and then this script is executed with AutoHotkey. All script files are in the AutoHotkey directory of your user documents folder.
- -

Examples from Vocola

-

## Global vocola commands using AHK:
-test paste = AHK(“send ^v”);
-wheel (up=up|down=down) = AHK(“send {wheel$1}”);
-wheel (up=up|down=down) 2..10  = AHK(“send {wheel$1 $2}”);
-show messages = AHK(showmessageswindow.ahk);
-testswitchback = RW() VW() AHK(showmessageswindow.ahk) VW() RTW();

-
  • The first three send Keystrokes (including mouse actions), like the Dragon/VB SendKey command or the natlink.playString function. AutoHotkey has even more support for this, for example for handling the mouse wheel.
  • Switching to another window with the python/win32gui function SetForegroundWindow is often unrelible. Luckily the AutoHotkey programmers do know how to do this task very reliable.
  • The example testswitchback uses AutoHotkey functions also from within Unimacro. See details.
- -

Comments

-

This is (December 2013) a new feature in Unimacro. Please comment on things and contribute scripts you use.

- - - \ No newline at end of file diff --git a/website unimacro/html/features/cooperationwithvoicecoder/index.html b/website unimacro/html/features/cooperationwithvoicecoder/index.html deleted file mode 100644 index e555c9b..0000000 --- a/website unimacro/html/features/cooperationwithvoicecoder/index.html +++ /dev/null @@ -1,97 +0,0 @@ - - -unimacro, features, cooperation with voicecoder - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

Voicecoder

-

I'm trying to do some interaction with voicecoder.

  • See demo movie on this interaction Unimacro with voicecoder
  • calling emacs from the native IDE of for example python (eg Pythonwin) for some lines of code. Edit with voicecoder and return, pasting back the results.
  • doing some actions inside emacs with Unimacro commands, which are easier than some voicecoder commands. Leaving voicecoder for the real dictation part.
- -

On the activation process of voicecoder, and the interaction of Pythonwin with emacs, I made a little demo movie, see link above. Regrettably the part inside voicecoder is a very bad, because the recording program (Camtasia) does not work well when voicecoder is on.

- -

Configuring the _lines grammar

- -

When using the simpleaction command emacs, this one should call back to a HeardWord command from the grammar edit.

- -

The command triggers the meta action <<heardwordemacs>>. This one has to be adapted in your file actions.ini (by calling edit actions). The action should be HW edit that python code (implemented for pythonwin, pythonw (IDLE, PythonCard)), or similar for other programming languages.

- - - \ No newline at end of file diff --git a/website unimacro/html/features/globaldictation/endoflineconsiderations.html b/website unimacro/html/features/globaldictation/endoflineconsiderations.html deleted file mode 100644 index 808216d..0000000 --- a/website unimacro/html/features/globaldictation/endoflineconsiderations.html +++ /dev/null @@ -1,114 +0,0 @@ - - -unimacro, features, global dictation, end of line considerations - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
 End of line considerations
Monitorfunctions
- -

End of line linefeed (\n) and or carriage return (\r)

-

The carriage return (\r, ascii value 13) and linefeed (\n, ascii value 10) characters must be carefully treated. How a window responds can be checked the test module unittestMessagefunctions.py, which is in the unimacro_test subdirectory of Unimacro.

- -

Basically from a window with the getEditText function a list of lines is retrieved, reflecting all the line breaks. At the end of a paragraph most often a \r character is shown. Also an empty file often shows one \r or one \r\n character. For this reason in the module windowsparameters.py the variables linesep and aftertext are set to reflect the different possibilities.

- - - - - -

Variable

Values

linesep

\r for RichEdit controls (sofar)

aftertext

\r\n for aligen

-

\r for wordpad...

- -

 

-

Getting the buffer in dictObj

-

In the VoiceDictation class the list of lines are simply joined together in a long string.

- -

Internal regular expressions

-

When doing operations with regular expressions in Python the line separators should always be \n. So the buffer that is read from the window or from the dictation object should be changed before doing a search operation.

- -

Writing back to the window

-

It seems that \r characters should be used to separate the lines, for the different, sofar examined, RichEdit controls.

- -

The function insertText (of VoiceDictation) therefore simply deletes all \n characters. So when text is inserted from a commands grammar, use \r for newlines.

- - - \ No newline at end of file diff --git a/website unimacro/html/features/globaldictation/index.html b/website unimacro/html/features/globaldictation/index.html deleted file mode 100644 index 2f0ffcc..0000000 --- a/website unimacro/html/features/globaldictation/index.html +++ /dev/null @@ -1,104 +0,0 @@ - - -unimacro, features, global dictation - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
 End of line considerations
Monitorfunctions
- -

Global dictation

-

As a result of a job for the Kaiser Permanente Hospital in Honolulu, the far edges of NatLink were explored. This was done by Quintijn Hoogenboom with close cooperation of Jason Koller from this hospital.

- -

The purpose is to make it possible to dictate text also when the target program/window not in focus. In principle this is done in hidden mode in the medical edition as well, but more functionality and feedback was wanted here.

- -

One of the deepest things of NatLink is capturing the dictObj, the dictation object that is used by NatSpeak. We managed to do this in most Windows, but when either:

-
  • a Select-and-Say window, like Outlook is in focus or
  • some other text editor like UltraEdit, PythonWin or Komodo (although not being Select-and-Say) is in focus
- -

the dictation object cannot be captured by NatLink.

-

The other part of the trick is getting control of the text and the target window. For this so-called message functions of window were explored. These message functions are among the deepest functions that are available in Windows. This is eg the SendMessage function in the win32gui module. With these functions the text of the dictation object can be kept synchronized with the text of the target window.

- -

One of the side effects is that also macros can be built which operates directly on the text in the text buffer. So finding and possibly deleting or changing text and the text buffer and setting the selection can be done from normal NatLink grammars. Even when the dictation object is not active, it can be updated, changed and synchronized with the target window buffer.

- -

The work is still under construction, and the essential things will be made available in the next Unimacro release.

- - - \ No newline at end of file diff --git a/website unimacro/html/features/grammarclasses/browsablegrammar.html b/website unimacro/html/features/grammarclasses/browsablegrammar.html deleted file mode 100644 index c984f1a..0000000 --- a/website unimacro/html/features/grammarclasses/browsablegrammar.html +++ /dev/null @@ -1,107 +0,0 @@ - - -unimacro, features, grammar classes, Browsable Grammar - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
 grammarX
 Browsable Grammar
 IniGrammar
 DocstringGrammar
 Natlinkutilsbj
 Natlinkutilsqh
Global dictation
Monitorfunctions
- -

BrowsableGrammar

-

This grammar base is developed by Bart Jan van Os. It makes it possible to browse through all the grammars (that subclass this grammar base) in a special pythonwin window. Pythonwin is also one of the IDE's for python in a Windows environment.

- -

Basically all lists that are set with the setList (emptyList, appendList) calls are also remembered by each grammar for these displaying purposes. With the GrammarBase, as provided by Joel Gould, lists are pumped into the SAPI system, but not available any more for the NatLink/python user.

- -

The calling of the grammar browser is done through the grammar _control. See there for more instructions.

- - - \ No newline at end of file diff --git a/website unimacro/html/features/grammarclasses/docstringgrammar/exampletasksgrammar.html b/website unimacro/html/features/grammarclasses/docstringgrammar/exampletasksgrammar.html deleted file mode 100644 index ec2289d..0000000 --- a/website unimacro/html/features/grammarclasses/docstringgrammar/exampletasksgrammar.html +++ /dev/null @@ -1,195 +0,0 @@ - - -grammar classes, DocstringGrammar, example tasks grammar - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
 grammarX
 Browsable Grammar
 IniGrammar
 DocstringGrammar
  Fullresults
  Example tasks grammar
  Example word styles
  Programmer
 Natlinkutilsbj
 Natlinkutilsqh
Global dictation
Monitorfunctions
- -

example _tasks.py

-

The complete grammar (called with show tasks):

- -


---- grammar:
-
-#commands for switching tasks:
-<taskswitch> exported = (task)({taskcount}|{application}|Back);
-<taskaction> exported = (<taskswitch> | (task))({taskaction});
-
-#commands for positioning (moving) and resizing tasks:
-<taskposition> exported = (<taskswitch>|(task)) position <directionplus> [<percent>];
-<taskmove> exported = (<taskswitch> | (task)) move
-                           (<directionplus>|<angle>)
-                               [<pixels>|<centimeters>|<millimeters>|<inches>|<percent>];
-<taskresize> exported = (<taskswitch> | (task)) (stretch|shrink)
-                             (<directionplus>|<angle>)
-                                [<pixels>|<centimeters>|<millimeters>|<inches>|<percent>];
-
-    #directional specifications:
-    <angle> = {degrees} degrees;
-    <directionplus> = {directionplus};
-
-    # size specifications:
-    <pixels> = {pixelcount} [pixels];
-    <centimeters> = {sizecount} centimeters;
-    <millimeters> = {sizecount} millimeters;
-    <inches> = {sizecount} inches;
-    <percent> = {percentcount} percent;
-
-#commands for recording taskbar and clock positions:
-<gettaskposition> exported = (‘get task position’) ({taskcount}|clock);
-
-# here are the older commands:
-# icon (system tray) commands:
-<iconswitch> exported = (icon) ({iconcount} |{character}|(<direction> [{iconcount}])) [{iconaction}];
-<thisicon> exported = (icon) {iconaction};
-<direction> = {direction};
-
-# windows inside an application:
-<windowswitch> exported  = (Window) ({windowcount}|Back|Previous|Next);
-
-# miscelaneous:
-<fileswitch> exported  = (‘switch file to’) {switchapp};
-<removecursor> exported = ‘remove cursor’;
-<convertfile> exported = convert file to (windows|dos|unix);

- -

A lot of the functions are DocstringGrammar style rule or subrule functions:

- -

    def rule_taskswitch(self, words):
-        ”””#commands for switching tasks:
-        (task)({taskcount}|{application}|Back)
-        ”””
-        ...

- -

or

-

    def subrule_directionplus(self, words):
-        ’{directionplus}’
-        # just defining the directionplus list

- -

or

-

    def subrule_pixels(self, words):
-        ”””
-        # size specifications:
-        {pixelcount} [pixels]
-        ”””
-        # giving an optional word and also comment in the specification

- -

But part of the rules are defined as:

-

    gramSpec = ”””
-
-# here are the older commands:
-# icon (system tray) commands:
-<iconswitch> exported = (icon) ({iconcount} |{character}|(<direction> [{iconcount}])) [{iconaction}];
-<thisicon> exported = (icon) {iconaction};
-<direction> = {direction};
-
-# windows inside an application:
-<windowswitch> exported  = (Window) ({windowcount}|Back|Previous|Next);
-...
-    ”””

- -

with functions like:

-

    def gotResults_thisicon(self, words, fullResults):
-        ””“do actions on active icon”””
-        ...

- - - \ No newline at end of file diff --git a/website unimacro/html/features/grammarclasses/docstringgrammar/examplewordstyles.html b/website unimacro/html/features/grammarclasses/docstringgrammar/examplewordstyles.html deleted file mode 100644 index ad1161e..0000000 --- a/website unimacro/html/features/grammarclasses/docstringgrammar/examplewordstyles.html +++ /dev/null @@ -1,144 +0,0 @@ - - -grammar classes, DocstringGrammar, example word styles - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
 grammarX
 Browsable Grammar
 IniGrammar
 DocstringGrammar
  Fullresults
  Example tasks grammar
  Example word styles
  Programmer
 Natlinkutilsbj
 Natlinkutilsqh
Global dictation
Monitorfunctions
- -

example winword_styles_unimacro

-

This little grammar is rewritten into Docstring grammar style.

-

Instead of

-

    gramSpec = ”””
-        <showStyles> exported = show styles;
-        <updateStyles> exported = update styles;
-        <setStyle> exported = set style {style};
-    ”””

- -

The rules now appear as:

-

    def rule_updateStyles(self, words):
-        “update styles”
-        # possibility to “manually” update the styles list
-        # not needed in normal use
-        self.updateStyles()
-
-    def rule_showStyles(self, words):
-        “show styles”
-        # print a list of all valid styles in the messages window
-        if self.styles:
-            print ‘styles in use: %s’% self.styles.keys()
-        else:
-            print ‘no styles in use...’
-
-    def rule_setStyle(self, words):
-        “set style {style}”
-        #apply a style to the cursor or selection
-        style = words[-1]
-        if style in self.styles:
-            print ‘setting style %s’% style
-            sel = self.application.Selection
-            sel.Style = style
-        else:
-            print ‘style not in stylelist: %s’% style

-
  • Again, with the commands show word styles (Dutch: "toon weurd opmaakprofielen"), or with the command show all grammars (Dutch: "toon alle grammatica's") you can inspect the contents of the grammar.
  • This grammar is located in the DisabledGrammars folder if you installed from the combined NatLink/Unimacro/Vocola installer.
- - - \ No newline at end of file diff --git a/website unimacro/html/features/grammarclasses/docstringgrammar/fullresults.html b/website unimacro/html/features/grammarclasses/docstringgrammar/fullresults.html deleted file mode 100644 index e9fdc8a..0000000 --- a/website unimacro/html/features/grammarclasses/docstringgrammar/fullresults.html +++ /dev/null @@ -1,124 +0,0 @@ - - -unimacro, features, grammar classes, DocstringGrammar, fullresults - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
 grammarX
 Browsable Grammar
 IniGrammar
 DocstringGrammar
  Fullresults
  Example tasks grammar
  Example word styles
  Programmer
 Natlinkutilsbj
 Natlinkutilsqh
Global dictation
Monitorfunctions
- -

fullResults

-

The fullResults can be collected from the gotResultsInit function.

- -

    def gotResultsInit(self, words, fullResults):
-        self.fullResults = fullResults

- -

The complete calling order of a recognition is:

  • gotResultsObject(self, recogType, resObj)
  • gotResultsInit(self, words, fullResults)
- -

Then the rules functions, either

  • rule_name(self, words)
  • subrule_name(self, words)
  • importedrule_dgndictation(self, words)
- -

or

  • gotResults_name(self, words, fullResults)
- -

and after all these functions:

  • gotResults(self, words, fullResults)
- -

All functions are optional. If you leave them out, no action is taken.

- - - \ No newline at end of file diff --git a/website unimacro/html/features/grammarclasses/docstringgrammar/index.html b/website unimacro/html/features/grammarclasses/docstringgrammar/index.html deleted file mode 100644 index 8ae7fd1..0000000 --- a/website unimacro/html/features/grammarclasses/docstringgrammar/index.html +++ /dev/null @@ -1,140 +0,0 @@ - - -unimacro, features, grammar classes, DocstringGrammar - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
 grammarX
 Browsable Grammar
 IniGrammar
 DocstringGrammar
  Fullresults
  Example tasks grammar
  Example word styles
  Programmer
 Natlinkutilsbj
 Natlinkutilsqh
Global dictation
Monitorfunctions
- -

DocstringGrammar

-

With this subclass of IniGrammar, rules can be defined in the docstrings of the rule functions. Things to notice:

-
  • gotResults_name changes into rule_name for exported rule.
  • For subrules the function name is subrule_name.
  • For imported rules (dgndictation, dgnwords and dgnletters) use importedrule_dgndictation etc. No docstring needed here.
  • The rule definition is given in the docstring of the function. No semicolon needed at end.
  • The complete grammar can be inspected with the command show name (where name is the name of the grammar)
  • Translations and synonyms work as with IniGrammars.
  • The old gramSpec definition can remain for parts of the grammar, as are in that case the gotResults functions.
  • fullResults is not anymore in the call of each function (only words). But see how to obtain the fullResults.
- -

First example (the grammar _first_sample_docstring.py):

-

    def rule_start(self, words):
-        “first sample docstring”
-        keystroke(‘Heard macro “start” (words “first sample docstring”){enter}’)

- -

The complete grammar shows (in this example after calling show first sample docstring)

- -

--- grammar:
-
-<start> exported = first sample docstring;

- -

self.prevRule, self.prevWords, self.nextRule and self.nextWords

- -

These instance variables are maintained at callback time, to facilitate looking forward and looking back one step in a recognition.

- - - - - - - - - -

variable

comments

self.prevRule

The name of the previous rule recognised, or None if it is the first of the rules

self.prevWords

The list of words in the previous rule, or empty list (if first of the rules)

self.nextRule

The name of the next rule recognised, or None if it is the last rule of the recognition

self.nextWords

The list of words in the next rule, or empty list (if last rule of the recognition)

- -

 

-

See also more instructions for programmers, which are similar to the IniGrammar subclass.

- - - \ No newline at end of file diff --git a/website unimacro/html/features/grammarclasses/docstringgrammar/programmer.html b/website unimacro/html/features/grammarclasses/docstringgrammar/programmer.html deleted file mode 100644 index 85c90eb..0000000 --- a/website unimacro/html/features/grammarclasses/docstringgrammar/programmer.html +++ /dev/null @@ -1,114 +0,0 @@ - - -unimacro, features, grammar classes, DocstringGrammar, programmer - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
 grammarX
 Browsable Grammar
 IniGrammar
 DocstringGrammar
  Fullresults
  Example tasks grammar
  Example word styles
  Programmer
 Natlinkutilsbj
 Natlinkutilsqh
Global dictation
Monitorfunctions
- -

Instructions for the programmers that want to to make grammars based on the DocstringGrammar class

- -

gramSpec variable

-

This variable will be a string, constructed from the docstrings and from the gramSpec variable at the top of the class definition. In any case, in the _init_ phase, the gramSpec is converted into a string.

-
  • When you want to include/exclude grammar rules at start of the grammar, do this the way that is described for the IniGrammar specification, before you call the DocstringGrammar.__init__ function.
  • When translated further, in the IniGrammar superclass, the other considerations about the variable gramSpec should be noticed.
- - - \ No newline at end of file diff --git a/website unimacro/html/features/grammarclasses/grammarx.html b/website unimacro/html/features/grammarclasses/grammarx.html deleted file mode 100644 index a3666af..0000000 --- a/website unimacro/html/features/grammarclasses/grammarx.html +++ /dev/null @@ -1,134 +0,0 @@ - - -unimacro, features, grammar classes, grammarX - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
 grammarX
 Browsable Grammar
 IniGrammar
 DocstringGrammar
 Natlinkutilsbj
 Natlinkutilsqh
Global dictation
Monitorfunctions
- -

The first grammar subclass: grammarX

-

This is, for Unimacro, the base class after Joel's GrammarBase.

  • It registers and unregisters each grammar. It also registers exclusive grammars.
  • The on/off state of a grammar can be controlled.
  • Messages can be displayed in the recognition window.
- -

DisplayMessage and exclusive grammars

-

This mechanism makes it possible to send diagnostic messages into the recognition box. If messages are too long, or contain specific characters, the message is sent to a NatSpeak MsgBoxConfirm dialog window instead.

- -

If a grammar is exclusive (more grammars are also possible now) and a recognition is rejected (like <???> in non-exclusive mode) also a diagnostic message <grammarname: ???> is displayed. If something should be displayed from a gotBegin function (where you do not have recognitionMimic), the message is pended, and displayed later.

- -

In order to let this work the grammar _control automatically follows the exclusive state of another grammar. In the file _control.py there is also a messageDictGrammar, a dictation grammar that is only switched on at the moment of displaying a message.

- -

The connection with grammarX goes through the global functions in natlinkutilsbj: RegisterMessageObject, UnRegisterMessageObject, RegisterControlObject, UnRegisterControlObject.

- -

See also in the grammar _control

- -

Instance variables

-

The following instance variables are set:

- - - - - - - - - - - - -

variable

explanation

self.language

'enx', 'nld', ... in order to make language dependent things possible.

self.onOrOff

the wanted state of a grammar0 == off state, 1 == on state. On (1) at start (refined in IniGrammar)

- -

("exclusive" can also be a value, experimental, QH)

self.onOrOffState

the actual state of a grammar

self.version

the NatSpeak version: for example 7 if found in nssystem.ini. Older versions, if not found in this file assume to be 5.

self.exclusive

the exclusive state (1) or not (0)

self.inGotBegin

(obsolete?) Signals if you are in gotBegin or not.

- -

 

- - - \ No newline at end of file diff --git a/website unimacro/html/features/grammarclasses/index.html b/website unimacro/html/features/grammarclasses/index.html deleted file mode 100644 index 934f91b..0000000 --- a/website unimacro/html/features/grammarclasses/index.html +++ /dev/null @@ -1,116 +0,0 @@ - - -unimacro, features, grammar classes - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
 grammarX
 Browsable Grammar
 IniGrammar
 DocstringGrammar
 Natlinkutilsbj
 Natlinkutilsqh
Global dictation
Monitorfunctions
- -

General information on the grammar bases: classes and subclasses.

- -

Note: this is a more advanced topic, for people who want to delve into the NatLink/Unimacro system!

- -

Each NatLink grammar is a (python) instance of a (python) class that is a subclass of one of the "grammar bases".

- -

Joel Gould provides his "GrammarBase", as superclass for all grammars in the NatLink macro subsystem.

- -

In Unimacro, we provide four other subclasses, that provide increasing functionality. These three classes are described in the next sections.

-
  • GrammarX provides some additional "basic" functionality.
  • BrowsableGrammar adds the possibility to browse through all the grammars, comparable with the command browser of NatSpeak version 7.
  • IniGrammar adds functionality to use ini files for additional user interaction.
  • DocstringGrammar adds possibility to define rules together with the callback functions, improving readability of the grammar files
- -

Most of the actual grammars in Unimacro are subclasses of the IniGrammar class.

- -

Where can you find them?

  • the above-mentioned classes of Unimacro (GrammarX, BrowsableGrammar and IniGrammar, DocstringGrammar) are in the file "natlinkutilsbj.py"
  • most of the utility functions are in "natlinkutilsqh.py"
  • the base class GrammarBase is in link(/installation/technicaldetails/natlinkutils.html, natlinkutils.py), in the core directory of NatLink
- -

Summary, the files described in this section are:

  • natlinkutilsbj.py holds the Unimacro classes
  • natlinkutilsqh.py holds a lot of utility functions
- - - \ No newline at end of file diff --git a/website unimacro/html/features/grammarclasses/inigrammar/functionsforsearching.html b/website unimacro/html/features/grammarclasses/inigrammar/functionsforsearching.html deleted file mode 100644 index 8991535..0000000 --- a/website unimacro/html/features/grammarclasses/inigrammar/functionsforsearching.html +++ /dev/null @@ -1,133 +0,0 @@ - - -grammar classes, IniGrammar, functions for searching - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
 grammarX
 Browsable Grammar
 IniGrammar
  Use
  Programmer
  Functions for searching
 DocstringGrammar
 Natlinkutilsbj
 Natlinkutilsqh
Global dictation
Monitorfunctions
- -

The functions that are used for the searching mechanism

-

searchForText(direction, text (optional)):

  • direction can be 'up' or 'down'
  • text is optional, for a repeated searches the previous search text is taken, or just the appropriate action, depending on the action <<search always continue>>, which can be T. Default F.
- -

A chain of actions is performed, and through all these actions the progInfo is passed on so the originating window remains valid even if the search is (temporarily) inside in dialogue window.

- -

Also some excel functions are done directly, without keystrokes, but inside the programming interface.

- -

The big distinction is searches with text and searches without text (continuations)

- -

setLastSearchDirection and getLastSearchDirection:

- -

These are two helper functions, which can get and set the search direction. They are used from both calling grammars, when you want to back search, but the program does not support this. An action <<documenthome>> is done and the search is continued down.

- -

stopSearch:

-

This function is performed when you stop searching. It moves the cursor left in order to unselect the found text.

- -

searchFailed:

-

This function can, for some windows, see if the search was failing. For example in DragonPad, notepad and Internet Explorer it checks if the search ends up in a dialogue window (a Child window). It returns -2 in that case.

- -

The action <<search failed>> is performed and the continuity mode is switched off. This section by default rings ALERT, but can also do the escape key for example.

- -

searchGoBack:

-

Going back to where the search started. Currently working only for excel. Is performed when you give the command search go back, or a when you cancel a continuous search.

- -

Some variables are kept in this file as global variables (in the file natlinkutilsbj.py)

-
  • lastSearchText
  • lastSearchDirection
  • app (word and excel can be opened)
  • appProgram = winword or excel (or '')
  • comingFrom = the cel in excel where you started (for returning with search go back)
- - - \ No newline at end of file diff --git a/website unimacro/html/features/grammarclasses/inigrammar/index.html b/website unimacro/html/features/grammarclasses/inigrammar/index.html deleted file mode 100644 index e309941..0000000 --- a/website unimacro/html/features/grammarclasses/inigrammar/index.html +++ /dev/null @@ -1,119 +0,0 @@ - - -unimacro, features, grammar classes, IniGrammar - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
 grammarX
 Browsable Grammar
 IniGrammar
  Use
  Programmer
  Functions for searching
 DocstringGrammar
 Natlinkutilsbj
 Natlinkutilsqh
Global dictation
Monitorfunctions
- -

For user interaction: the IniGrammar class

-

This is Quintijn Hoogenboom's extension to provide easy interaction between a user inifile and the grammar.

- -

Controlled through commands in the grammar _control, the contents of a ini file can be inspected and edited.

-
  • Inspecting is done through a temporary .txt file that is displayed in Notepad, or another program that is attached with files of this extension,
  • Changing is done by calling the appropriate .ini file. After editing and saving the file, the changes are updated in the appropriate grammar instance.
  • If the grammar name or the grammar words are changed, the corresponding grammar is reloaded, one utterance later.
- -

Other features of the IniGrammar class:

  • grammar parts for getting a number. Exploited in _number, _lines and in the browsing grammars (firefox_browsing).
  • functions for searching, which can be called from discrete and continuous grammars (_general and _repeat)
  • (new in 2010) numbers lists are converted in spoken forms lists, see numbers page.
- -

To update or not

-

A special variable 'self.checkForChanges' controls whether the changes to inifiles should be checked for or not. It is switched on when calling such an inifile by one of the edit commands of the grammar _control. This prevents unnecessary checking for changed ini files. On the other hand, opening a ini file manually (instead of with one of those special commands) means there will be no tracking of changes.

- -

The actions.ini file is also updated after a call to edit actions. Howeveer the numbers.ini file is NOT updated in the grammars automatically, you need a restart of NatSpeak.

- - - \ No newline at end of file diff --git a/website unimacro/html/features/grammarclasses/inigrammar/programmer.html b/website unimacro/html/features/grammarclasses/inigrammar/programmer.html deleted file mode 100644 index 1acbabb..0000000 --- a/website unimacro/html/features/grammarclasses/inigrammar/programmer.html +++ /dev/null @@ -1,165 +0,0 @@ - - -unimacro, features, grammar classes, IniGrammar, programmer - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
 grammarX
 Browsable Grammar
 IniGrammar
  Use
  Programmer
  Functions for searching
 DocstringGrammar
 Natlinkutilsbj
 Natlinkutilsqh
Global dictation
Monitorfunctions
- -

Instructions for the programmers that want to to make grammars based on the IniGrammar class.

- -

When initialising an instance of an IniGrammar, the following actions are performed:

-
  • the method startInifile performs starts the inifile (copies and opens a sample or default if needed)
  • set the variable checkForChanges to 0; this variable is only put to 1 when the editGrammar function is called.
  • get the inifile, creating this if necessary.
  • get the (pronouncable) name
  • get the initial on or off state
  • set the variable prevModInfo to None
  • translate the grammar words with the data from the configuration (.ini) file.
  • fill the instance variables through the function 'fillInstanceVariables'.
- -

If all went well the variable 'Error' is set to '0'.

-

Name

-

The name of the grammar (most often set in the grammar definition or in the inifile) can be used to call for info about the grammar or to call the edit mode for the grammar. The name is also displayed in the show all grammars window.

- -

Filling lists

-

Grammar lists are automatically filled through the function fillGrammarLists at start or at changes of inifile (provided self.checkForChanges is on). This function can be overloaded.

- -

When you want grammar lists filled not through the inifile, but directly in your grammar, you should define here the variable.

-
  • iniIgnoreGrammarLists, being the list name, or a list of list names.
  • Another possibility to do this, is overloading the method fillGrammarLists or the method fillList.
- -

Difference fillInstanceVariables and fillGrammarLists

-

The method fillInstanceVariables is run at initialization time of the grammar instance, before the grammar is loaded into NatSpeak. In order to redo this method, it is best to reloaded grammar, by:

- -

   fullPath = natlinkmain.loadedFiles[self.__module__]
-   natqh.setCheckForGrammarChanges(1)
-   os.utime(fullPath, None)

- -

At the next utterance the grammar will be reloaded.

-

The method fillGrammarLists is run at initialize time, after the grammar is loaded into NatSpeak. This method can be rerun, for example when lists have been changed.

- -

New inifiles

-

When initialising the grammar, an inifile is opened, or created when not yet existent. Some special methods can be overloaded to provide default data for a new inifile. The following variables are set:

-
  • self.ini: the inivars instance that gets the data from the inifile is
  • self.inifile: the full path of the ini file: macrosystem folder \ language+__module__.ini
  • self.inifileDate: date/time of last modification of inifile
  • self.onOrOff: overload from GrammarX, is set to 0 if specified in section general, key "initial on or off = 0"
  • self.Error: initially set to 0. Is set to 1 if in the starting phase (mainly in the switchOn method) an error is encountered. All rules are deactivated, self.Error is only cleared when a new switchOn try is done.
  • self.prevModInfo: set to None, used when things I changed inside the gotBegin method.
  • self.checkForChanges: initially set to 0, meaning in gotBegin no checking for changes of inifile is done. When asked for the method self.editInifile, this variable is set to 1, meaning at each call in gotBegin the checkForChanges function is performed.
  • The function fillInstanceVariables (default empty, to be overloaded by a user class) is called, in order to set/control variables that remained outside the grammar lists.
- -

Switching on (or off)

-

In the function initialize (of the grammar itself, no default in the grammar classes), after loading the grammar the function self.switchOnOrOff() should be called in order to complete the switching on/off process. All rules are activated by default. If an error occurs, all rules are deactivated, but the grammar remains On. Is another behaviour is wanted, the function switchOn should be overloaded in the grammar.

- -

4. In the function gotBegin in the minimal case (as sketched above), you should call: -if self.checkForChanges: -checkForChanges()

- -

Above variable is normally set to 0. It is changed to 1 in the editInifile method. After editing the inifile, at each utterance this check is performed. It is only reset when the grammar is reloaded.

- -

If you want to activate or deactivate rules in gotBegin, or maintain grammar lists here, you should do more work. Basically use the variable self.prevModInfo, to be ready as quick as possible if the module info didn't change. Also check for the variable self.Error.

- -

By the way if the grammar is switched off, gotBegin is not entered, it is skipped already in the GrammarX callback method. -After that in the 'gotBegin' function is to

- -

gramSpec variable

-

Because of the possible translations/synonyms that are possible to insert in IniGrammar grammars, some manipulation is done with the gramSpec variable, which holds the grammar definition.

-
  • gramSpec is the compulsory name for the grammar specification, and the load statement (most often in the initialize function) should have self.gramSpec as parameter:
- -

    def initialize(self):
-        self.load(self.gramSpec)
-        # if switching on fillGrammarLists, also with lists like {n1-9} or {number1to99}, will be called:
-        self.switchOnOrOff()

-
  • The class variable gramSpec can be a string or a list. But if the grammar is translated (or there are synonyms) a copy of the class variable gramSpec is put into self.originalGramSpec, and converted into a string.
  • If the translation/synonym process has changes, the resulting grammar specification is put as a string in self.gramSpec (so becomes an instance variable).
  • As a consequence changes to be original grammar specification can not be done after the __init__ function. If you want to add or remove grammar rules, typically because of settings in the general section of the inifile of the grammar, you should add your own _init_ function, as is done in the _tasks.py grammar of Unimacro.
    • First the inifile is started (startIniFile()), resulting in the fillInstanceVariables() function to be called.
    • Then the wanted action on the gramSpec is done.
    • Only then the IniGrammar.__init__ is called.
    -
  • The grammar is NOT automatically loaded again after you change options in the general section of a grammar inifile. Call switch on grammar_name or restart Dragon.
- -

Useful functions at recognition time

-

hasCommon

- -

Check if word or words of the recognition match words of the grammar

- - - \ No newline at end of file diff --git a/website unimacro/html/features/grammarclasses/inigrammar/use.html b/website unimacro/html/features/grammarclasses/inigrammar/use.html deleted file mode 100644 index a4c9957..0000000 --- a/website unimacro/html/features/grammarclasses/inigrammar/use.html +++ /dev/null @@ -1,108 +0,0 @@ - - -unimacro, features, grammar classes, IniGrammar, use - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
 grammarX
 Browsable Grammar
 IniGrammar
  Use
  Programmer
  Functions for searching
 DocstringGrammar
 Natlinkutilsbj
 Natlinkutilsqh
Global dictation
Monitorfunctions
- -

Information on the implications for the user.

- - - \ No newline at end of file diff --git a/website unimacro/html/features/grammarclasses/natlinkutilsbj.html b/website unimacro/html/features/grammarclasses/natlinkutilsbj.html deleted file mode 100644 index 7213c65..0000000 --- a/website unimacro/html/features/grammarclasses/natlinkutilsbj.html +++ /dev/null @@ -1,110 +0,0 @@ - - -unimacro, features, grammar classes, natlinkutilsbj - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
 grammarX
 Browsable Grammar
 IniGrammar
 DocstringGrammar
 Natlinkutilsbj
 Natlinkutilsqh
Global dictation
Monitorfunctions
- -

natlinkutilsbj

-

In this file the class definitions of about three classes reside.

-
  • new function August 2011: GetGrammarObject(name):
- -

Returns the grammar instance (of some Unimacro grammar - already loaded -), where name is the name as pronounced, and defined as name in the section grammar name of the grammar.

- -

Through this mechanism one grammar can call another, preferably earlier loaded, module.

- -

See example in _lines with enable search commands

- - - \ No newline at end of file diff --git a/website unimacro/html/features/grammarclasses/natlinkutilsqh/getfunctions.html b/website unimacro/html/features/grammarclasses/natlinkutilsqh/getfunctions.html deleted file mode 100644 index faba91a..0000000 --- a/website unimacro/html/features/grammarclasses/natlinkutilsqh/getfunctions.html +++ /dev/null @@ -1,131 +0,0 @@ - - -unimacro, features, grammar classes, natlinkutilsqh, Get functions - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
 grammarX
 Browsable Grammar
 IniGrammar
 DocstringGrammar
 Natlinkutilsbj
 Natlinkutilsqh
  Get functions
  Module info
  Word properties
  Miscellaneous
Global dictation
Monitorfunctions
- -

Get functions

-

Get data mainly from natlinkmain and NatLink. -Also see link("/installation/technicaldetails/natlinkmain.html", "the page about natlinkmain"). -It is best NOT to import natlinkmain from a Unimacro grammar, but get the wanted information through these functions:

- - - - - - - - - - - - - - - -

function

returns

getLanguage

returns the three letter code of the language of the speech profile. 'enx' for English, 'nld' for Dutch etc

getDNSversion

return, as integer, the version number of NatSpeak. Older versions in "nssystem.ini", newer versions (from 7 up) look in the registry.

getUser

get, as a string, the name of the current speech profile

getWindowsVersion

at this moment are known: 'XP', '2000', 'NT4', 'NT351', '98'

getModuleFilename

the complete path of the calling grammar/manual, has stored in natlinkmain

getUnimacroFolder

the folder natlinkutilsqh.py is in, should be the NatLink (natpython) user directory.

getBaseName(name)

returns to base name (without directory and without extension) of name

- -

 

- - - \ No newline at end of file diff --git a/website unimacro/html/features/grammarclasses/natlinkutilsqh/index.html b/website unimacro/html/features/grammarclasses/natlinkutilsqh/index.html deleted file mode 100644 index 4f3dd0d..0000000 --- a/website unimacro/html/features/grammarclasses/natlinkutilsqh/index.html +++ /dev/null @@ -1,115 +0,0 @@ - - -unimacro, features, grammar classes, natlinkutilsqh - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
 grammarX
 Browsable Grammar
 IniGrammar
 DocstringGrammar
 Natlinkutilsbj
 Natlinkutilsqh
  Get functions
  Module info
  Word properties
  Miscellaneous
Global dictation
Monitorfunctions
- -

natlinkutilsqh

-

A lot of utility functions reside in this file some of which are reviewed in the following pages

- -

For example

- -

Also see in Miscelaneous the elaborated SetForegroundWindow function!

- - - \ No newline at end of file diff --git a/website unimacro/html/features/grammarclasses/natlinkutilsqh/miscellaneous.html b/website unimacro/html/features/grammarclasses/natlinkutilsqh/miscellaneous.html deleted file mode 100644 index 2600630..0000000 --- a/website unimacro/html/features/grammarclasses/natlinkutilsqh/miscellaneous.html +++ /dev/null @@ -1,114 +0,0 @@ - - -unimacro, features, grammar classes, natlinkutilsqh, Miscellaneous - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
 grammarX
 Browsable Grammar
 IniGrammar
 DocstringGrammar
 Natlinkutilsbj
 Natlinkutilsqh
  Get functions
  Module info
  Word properties
  Miscellaneous
Global dictation
Monitorfunctions
- -

Miscelaneous functions

-

SetForegroundWindow

-

This important function for switching tasks has been elaborated (febr 2011). The Windows call to win32gui.SetForegroundWindow often fails, because the active foreground window doesn't give up its focus.

- -

This seems to have been tackled by an extra trick (if needed): get the Dragon bar in focus by sending the shortcut key {numkey*} and subsequent an {esc} key. It seems that after this has been done, the switching to the wanted window goes smooth. When this trick is used you see the NatSpeak menu flash up shortly.

- - - \ No newline at end of file diff --git a/website unimacro/html/features/grammarclasses/natlinkutilsqh/moduleinfo.html b/website unimacro/html/features/grammarclasses/natlinkutilsqh/moduleinfo.html deleted file mode 100644 index 55fcb9d..0000000 --- a/website unimacro/html/features/grammarclasses/natlinkutilsqh/moduleinfo.html +++ /dev/null @@ -1,150 +0,0 @@ - - -unimacro, features, grammar classes, natlinkutilsqh, Module info - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
 grammarX
 Browsable Grammar
 IniGrammar
 DocstringGrammar
 Natlinkutilsbj
 Natlinkutilsqh
  Get functions
  Module info
  Word properties
  Miscellaneous
Global dictation
Monitorfunctions
- -

Module info

-

Functions concerning moduleInfo (this is a tuple of three which is always passed in the gotBegin callbacks). They can be used to check if someone know that this certain characteristics. Note that in most functions modInfo can be passed, if available. If not it is collected from NatLink.getCurrentModule.

- -

You can get the module info and the progInfo with the command give window info or give window information (grammar general)

- - - - - - - - - - - -

function

action/returns

matchModule(modName, wantedTitle=None, modInfo=None, titleExact=0, caseExact=0)

Returns module name (program name!) on match and None on mismatch.

- -

This is a variant on matchWindow (from Joel), but now you can also check only the module (leave out the other variables) -and not the (sub) window of this module.

- -

Module names are always converted to lowercase.

-

You can specify a window title or a list/tuple of window titles.

-

If you specify a window, it can be checked with exact title or exact case. -If nothing is specified lower case strings are compared, and only part -of the window title has to be given in order to get a match

matchTitle(wantedTitle, modInfo=None, titleExact=0, caseExact=0)

returns the module (program) name if the wanted title matches the actual title.

getProgName(modInfo=None)

gives the module name of the module. ("pythonwin", "excel" etc)

getProgInfo(modInfo=None)

returns program info as tuple (prog, title, toporchild)

-

all in lowercase, toporchild = 'top' or 'child'

-

if no valid program (modInfo0) ('', '', 'empty') is returned

matchWindow(criteria, modInfo=None, progInfo=None)

note this one is different from the matchWindow in natlinkutils

- -

looks for a matching window based on the dictionary of criteria

-

criteria can either be a key with None as value, or a key -with a part of window title as value (string), or a key with -a list of parts of window titles as value.

- -

special these are:

  • 'all' (everything matches, value is ignored, so normally None)
  • 'none' (nothing matches)
  • 'empty' (matches when no valid progInfo is found)
- -

progInfo is a tuple: (prog, title, toporchild),

  • prog being the lower case name of the program
  • title being the lower case converted title
  • toporchild being 'top' if top window, 'child' if child window, 'empty' if no valid module
- -

progInfo may be omitted as well as modInfo. -For best performance progInfo should be given, -otherwise giving modInfo is also faster than omitting it.

- -

 

- - - \ No newline at end of file diff --git a/website unimacro/html/features/grammarclasses/natlinkutilsqh/wordproperties.html b/website unimacro/html/features/grammarclasses/natlinkutilsqh/wordproperties.html deleted file mode 100644 index 0357cdd..0000000 --- a/website unimacro/html/features/grammarclasses/natlinkutilsqh/wordproperties.html +++ /dev/null @@ -1,164 +0,0 @@ - - -unimacro, features, grammar classes, natlinkutilsqh, Word properties - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
 grammarX
 Browsable Grammar
 IniGrammar
 DocstringGrammar
 Natlinkutilsbj
 Natlinkutilsqh
  Get functions
  Module info
  Word properties
  Miscellaneous
Global dictation
Monitorfunctions
- -

Word properties

-

In the original natlinkutils there was a list of word properties (like no_spacing_before or cap_next).

- -

With newer versions of NatSpeak some things seem to have changed. In natlinkutils.py that word properties are defined, but natlinkutilsqh.py these properties are redefined, together with some utility functions. Also a few flags have been added in order to fix/observe some changes in version 8 and version 9. As far as some trial and error has shown.

- -

So trial and error gives a few results:

-

When you add a new word by hand, the properties will be: ['InternalUseOnly5', 'WordWasAddedByTheUser'] (hex number 0x20 00 00 01)

- -

When you add a new word, and give it the properties "has no preceding or following space", you will get:['InternalUseOnly2', 'InternalUseOnly5', 'NoSpaceFollowingThisWord', 'NoSpacePreceedingThisWord', 'WordWasAddedByTheUser'] (or hex: 0x20 20 01 05).

- -

The complete list of word properties:

-

wordFormatting = {
-    ‘WordWasAddedByTheUser’: 0x00000001,
-    ‘InternalUseOnly1’: 0x00000002,
-    ‘InternalUseOnly2’: 0x00000004,
-    ‘WordCanNotBeDeleted’: 0x00000008,
-    ‘NormallyCapitalizeTheNextWord’: 0x00000010,
-    ‘AlwaysCapitalizeTheNextWord’: 0x00000020,
-    ‘UppercaseTheNextWord’: 0x00000040,
-    ‘LowercaseTheNextWord’: 0x00000080,
-    ‘NoSpaceFollowingThisWord’: 0x00000100,
-    ‘TwoSpacesFollowingThisWord’: 0x00000200,
-    ‘NoSpacesBetweenWordsWithThisFlagSet’: 0x00000400,
-    ‘TurnCapitalizationModeOn’: 0x00000800,
-    ‘TurnUppercaseModeOn’: 0x00001000,
-    ‘TurnLowercaseModeOn’: 0x00002000,
-    ‘TurnOffSpacingBetweenWords’: 0x00004000,
-    ‘RestoreNormalSpacing’: 0x00008000,
-    ‘InternalUseOnly3’: 0x00010000,
-    ‘SuppressAfterAWordWhichEndsInAPeriod’: 0x00020000,
-    ‘DoNotApplyFormattingToThisWord’: 0x00040000,
-    ‘DoNotResetTheSpacingState’: 0x00080000,
-    ‘DoNotResetTheCapitalizationState’: 0x00100000,
-    ‘NoSpacePreceedingThisWord’: 0x00200000,
-    ‘RestoreNormalCapitalization’: 0x00400000,
-    ‘FollowThisWordWithOneNewLineCharacters’: 0x00800000,
-    ‘FollowThisWordWithTwoNewLineCharacters’: 0x01000000,
-    ‘DoNotCapitalizeThisWordInATitle’: 0x02000000,
-    ‘InternalUseOnly’: 0x04000000,
-    ‘AddAnExtraSpaceFollowingThisWord’: 0x08000000,
-    ‘InternalUseOnly4’: 0x10000000,
-    ‘InternalUseOnly5’: 0x20000000,
-    ‘WordWasAddedByTheVocabularyBuilder’: 0x40000000,
-    }

- - - - - - - -

functions to support this

NatLink.getWordInfo(word)

NatLink returns the word properties of a word(as hex number)

-

None if word is non existent.

ListOfProperties(props)

returns a list of readable properties (like the examples above).

makeWordProperties(listOfProps)

returns the props number from the list again

- -

 

- - - \ No newline at end of file diff --git a/website unimacro/html/features/index.html b/website unimacro/html/features/index.html deleted file mode 100644 index e5e6ceb..0000000 --- a/website unimacro/html/features/index.html +++ /dev/null @@ -1,91 +0,0 @@ - - -unimacro, features - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

What can be done with Unimacro grammars

-

With Unimacro grammars lots of things can be done without extensive programming yourself. Many things can/have to be tuned through configuration files, here called inifiles.

- -

Some of the other features:

- - - \ No newline at end of file diff --git a/website unimacro/html/features/inifiles.html b/website unimacro/html/features/inifiles.html deleted file mode 100644 index c876977..0000000 --- a/website unimacro/html/features/inifiles.html +++ /dev/null @@ -1,126 +0,0 @@ - - -unimacro, features, inifiles - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

ini files

-

A lot of configuration is done through configuration files, here called ini files.

- -

A ini file can be edited in many programs e.g. notepad, textpad, win32pad (like notepad, but with line numbers), emacs etc. In many situations there is a Unimacro command with which the appropriate ini file is opened automatically (in program associated with the extension .ini).

- -

Inifiles have sections (between square brackets), and each section has key value combinations, separated by "=". Whitespace around values is ignored (stripped).

- -

A sample:

-

[section]
-key = action
-second key = another action
-
-[section two]
-key = action of section two

- -

Actions

-

These are defined in a file actions.ini. A lot of grammars and commands use so-called meta actions, which can have different behaviours in different windows.

- -

See pages on actions. The actions.ini file can be opened by the command (from the grammar control) edit actions. All the active actions for a program/windowtitle can be shown by the command show actions.

- -

Numbers and other Spoken Forms

-

Starting with release 4.0 spoken forms for numbers are put in xxx_spokenforms.ini. xxx being the language code of your speech profile. See Numbers and Spoken Forms.

- -

Samples are (hopefully) to be found in the sample_ini directory of Unimacro. Call edit spoken forms for opening this file. Also see Numbers and Spoken Forms for more programming instructions and examples.

-
  • Alternative values may be separated by a ,, ; or a |.
- -

At the moment only some sections are really used, especially for numbers spoken forms:

-
  • [numbers]: keys are numbers, values are the spoken forms. At least the numbers 0 to 99 should be filled, and also 100, 1000. If in doubt, see the English example. Note in some functions only the first alternative will be taken if the lists are getting too long.
  • [prefixes]: synonyms for hundred and thousand. Also a possible synonym for dot in file or url extensions.
- -

Other spoken forms lists

  • [alphabet]: keys are the letters, values the spoken forms. At startup possible alternatives will be taken, they have to be valid dictation words, for better recognition. Tf in doubt the alternatives with or without capitalization will be checked. If no valid alternatives are found for a spoken form, the spoken form will nevertheless be accepted. Used in eg the grammar _keystrokes.py.
  • [abbrevs]: possibility to define abbreviations, which will be used when making spoken forms for file names or folder names (_folders grammar). Keys are the abbreviations, values are the spoken forms. If capitalized letters are taken, the . is added or removed depending on the NatSpeak/Dragon version. (up to NatSpeak 10, the . is compulsory, starting with Dragon 11 they are forbidden.)
  • [extensions]: file extensions, without the . (dot).
  • [punctuationreverse]: This section is (July 2015) used for getting a list of non character symbols in spoken forms, which are here on the left side of the =. So the other way around as all the other lists. Used in the grammar _keystrokes.py.
- -

Configuration of grammars

-

All grammars that derive from the class IniGrammar can use the ini file mechanism. Parameters can be set and inspected.

- -

For example: edit folders gives the inifile for the grammar _folders. The values can be edited and are automatically read into the grammar. With show folders information on the lists that are active in the grammar (plus the grammar definition) are showing on your screen (through a temporary .txt file)

- -

Sample ini files

-

In a folder sample_ini default ini files for different tasks (actions.ini, configuration files of grammars) are kept and copied for a user if needed. See also link("/installation/inifilestrategy.html", "notes in the installation pages").

- - - \ No newline at end of file diff --git a/website unimacro/html/features/monitorfunctions/index.html b/website unimacro/html/features/monitorfunctions/index.html deleted file mode 100644 index 7ce3016..0000000 --- a/website unimacro/html/features/monitorfunctions/index.html +++ /dev/null @@ -1,135 +0,0 @@ - - -unimacro, features, Monitorfunctions - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

Monitor functions

-

The module "monitorfunctions.py" (tested with "unittestMonitorfunctions.py") is written for manipulation of windows on the monitors/displays. These functions are used in the grammar tasks.

- -

Other display

-

With the function move_to_monitor a window is moved to another monitor

- -

move_to_monitor(winHndle, newMonitor, oldMonitor, resize):
-    ””“move window to another monitor
-    preserving position of restore_area as much as possible.
-
-    - get winHndle for example with winHndle = win32gui.GetForegroundWindow()
-    - get current monitor (oldMonitor) with get_nearest_monitor_window(winHndle)
-    - get other monitor (in case of 2 monitors) with get_other_monitors(mon), and take
-      the first of the list that is retured.
-    resize: 0 if window is (assumed to be) fixed in size, can be found with:
-    - window_can_be_resized(winHndle):
-        return 1 if a window can be resized (like Komodo etc). Not eg calc.
-    ”””

- -

Moving inside one monitor:

-

maximize_window(winHndle): just maximize
-
-minimize_window(winHndle): just minimize
-
-restore_window(winHndle, ...): placing in various spots and widths/heights
-    see at definition for parameters
-
-move_window(winHndle, ...)
-
-stretch_window(winHndle, ...)
-
-shrink_window(winHndle, ...)

- -

Position of the taskbar

-

get_taskbar_position(): gives the placing of the taskbar (‘left’, ‘bottom’, ‘right’, ‘top’).

- -

This can be used for NatSpeak/Unimacro keystroke macros which can depend on this position (for example stacked taskbar windows in Window 7 Aero Peek view).

- -

Getting mouse positions of monitor

-

(new, December 2017)

-

get_current_monitor_rect ( pos )  and
-
-get_current_monitor_rect_work( pos)

- -

Pass the current mouse position as a tuple (xpos,ypos)

-

Returns the rect tuple of the monitor, with _work only the work area, so excluding task bar or Dragon bar.

- -

Notes:

  • unittesting is done with the file unittestMonitorfunctions.py (in the unimacro_test subdirectory of Unimacro).
  • demos can be done by uncommenting the different test_... functions at the bottom of the script monitorfunctions.py, and run the script.
  • See for more details in the code...
- - - \ No newline at end of file diff --git a/website unimacro/html/features/numbers/index.html b/website unimacro/html/features/numbers/index.html deleted file mode 100644 index 83f52a2..0000000 --- a/website unimacro/html/features/numbers/index.html +++ /dev/null @@ -1,221 +0,0 @@ - - -unimacro, features, Numbers and Spoken Forms - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
 Other spokenform sections
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

Numbers and spoken forms

-

With the module spokenforms.py grammar lists of numbers can be converted to a list of spoken forms. These lists are used in the grammars. The configuring of the spoken forms lists is done with ini files, see this page for a description of the most important sections.

- -

The central class in this module is the class SpokenForms, which is instantiated automatically in all IniGrammar and DocstringGrammar grammars. The instance variable is then self.spokenforms.

- -

Definition time

-

When a grammar is initialized, lists of numbers, see below, are automatically converted into spoken forms.

- -

This is done either

  • automatically, functionality in natlinkutilsbj.py, see function fillGrammarLists or
  • in the initialize function of the grammar class. Call like:
- -

    self.taskCounts = range(1, self.maxTaskNumber+1)
-    self.setNumbersList(‘taskcount’, self.taskCounts)

- -

where 'taskcount' is the name of the list in the grammar definition, and self.taskCounts the list of numbers that should be recognized.

-
  • note: in this second case you need to define lists that are not caught automatically in the automatic procedure, like:
- -

    iniIgnoreGrammarLists = [‘windowcount’, ‘iconcount’, ‘taskcount’]

- -

Recognition time

-

At recognition time the spoken forms can be converted back into numbers.

- -

    countBack = self.getNumberFromSpoken(countOrApp, self.taskCounts) # returns a string or None

-
  • Here countOrApp is the word that was recognized, for example '3'.
  • The second parameter is optional. If you leave it away, among all known spoken forms will be searched.
- -

Function and Class of the module spokenforms.py

-

Class

  • SpokenForms. As pointed out above this class is automatically called in all IniGrammar and DocstringGrammar grammars.
- -

Functions

-

function getNumberList(specification)

-

If the specification meets one of the global variables in the spokenforms module this list is returned, currently this is only:

- - - -

variable

contents:

number1to99stripped

[1, 2, ..., 19 , 20, 30, 40, ..., 90]

- -

 

-

Other specifications must start with n or number and separate two numbers by a - or by to.

- -

Lists with larger values return only multiples of 10. Do not go beyond 100 with this trick (yet)

- -

Examples:

- - - - - - - - -

specification

returns:

n1-9

[1, 2, 3, ..., 9]

number1-99

[1, 2, 3, ..., 99]

number10to90

[10, 20, 30, ..., 90]

n0to90

[0, 1, 2, 3, ..., 90]

- -

 

-

class SpokenForms:

-

This class is tested as good as possible in unimacro_test/unittestSpokenForms.py. See there also for examples.

- -

Each instances takes a language as variable, like enx for English and nld for Dutch, called xxx below.

- -

A .ini file called xxx_spokenforms.ini is expected (if not present, taken from one of the possible sample directory's).

- -

Internally at first call (first instance) the dictionary's n2s and s2n are filled. Hopefully all instances have the same language, otherwise the system goes dada.

- -

getMixedList(List)

-

Input is a list of numbers (also strings representing number may be given) -Output is a list of the spoken forms. If the spoken form is not found in n2s (from numbers.ini) the string representation of the number is taken (also the case when an empty numbers.ini file is used).

- -

getNumberFromSpoken(word, originalList=None, asStr=None)

-

In a recognition the words of the recognition can be converted back into the origating number ('two' into 2).

- -

When you pass the originalList, the result is checked with this list as well. Not needed in most cases.

- -

When you pass asStr=1, a string ('2') is returned, otherwise a int (like 2) is returned.

- -

getNumbersFromSpoken(words, originalList=None, asStr=None)

-

If the words is a list, a list of number recognitions is returned. -Example: input is the recognition ['example', 'one', 'and', 'thirteen'], then this function will return [1, 13]

- -

Use in a grammar nearly automatic (example IniGrammar grammar):

- -

(See also grammars _tasks.py, _lines.py)

-

Definition

-

Define the number lists as {n1-20} etc., example:

-

<wordspec> = word | {n2-20} words;

-

At recognition time

-

In the callback function retrieve the number (or numbers) with above functions, which however can be called through wrappers in the IniGrammar class:

- -

    def gotResults_wordspec(self,words,fullResults):
-        print “wordspec, got: ”, words
-        countList = self.getNumbersFromSpoken(words)
-        if countList:
-            count = countList[0]
-        else:
-            count = 1  # no count words found in recognition
-        print ‘count: %s’% count

- -

alternatively you can code:

-

    def gotResults_wordspec(self,words,fullResults):
-        print “wordspec, got: ”, words
-        count = self.getNumberFromSpoken(words[0]) or 1
-        print ‘count: %s’% count

- -

Use in a grammar, more specific :

-

(See also grammars _tasks.py, this example is coded as a DocstringGrammar rule)

- -

    def rule_taskswitch(self, words):
-        ”””#commands for switching tasks:
-        (task)({taskcount}|{application}|Back)
-        ”””
-        #switch to a task by number, application or Back
-        count = words[1]
-        countBack = self.getNumberFromSpoken(count, self.taskCounts) # returns a string or None
-
-        if countBack:
-            pass # a number is found
-        else:
-            pass # proceed with count, which can be one of the applications defined else or “Back”

- -

At the top of the grammar the following line is inserted, which means the definition and activation of the mentioned lists is done in the grammar module itself:

- -

    iniIgnoreGrammarLists = [‘windowcount’, ‘iconcount’, ‘taskcount’]

- -

In the initialize function you define the lists yourself (in the function setNumbersList the connection with the numbers module is established)

- -

    def initialize(self):
-        self.load(self.gramSpec)
-        self.switchOnOrOff()
-        self.maxTaskNumber = 20
-        self.taskCounts = range(1, self.maxTaskNumber+1)
-        self.setNumbersList(‘taskcount’, self.taskCounts)

- -

Large numbers

-

These are handled in special grammar rules, see _number.py

- - - \ No newline at end of file diff --git a/website unimacro/html/features/numbers/otherspokenformsections.html b/website unimacro/html/features/numbers/otherspokenformsections.html deleted file mode 100644 index d01295b..0000000 --- a/website unimacro/html/features/numbers/otherspokenformsections.html +++ /dev/null @@ -1,115 +0,0 @@ - - -Numbers and Spoken Forms, other spokenform sections - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
 Other spokenform sections
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

Order spokenforms Sections

-

For characters, abbreviations, file name extenstions and punctuation there are also provisions in the spokenforms module. They are stored in the next set of instance variables.

- -

    char2spoken = {} # characters of radio alphabet possibly extended, got from [alphabet] section
-    spoken2char = {}
-    abbrev2spoken = {} # lists of spoken forms, got from [abbrevs] sections
-    spoken2abbrev = {}
-    ext2spoken = {}    # file extensions (without the dot) (got from [extensions] section)
-    spoken2ext = {}
-    punct2spoken = {}  # punctuation, from section [punctuationreverse] (other way round!)
-    spoken2punct = {}

- -

Characters

-

As can be seen in the grammar _keystrokes, the radio alphabet is used via the [alphabet] section of the xxx_spokenforms.ini file.

- -

The grammar list {character} is filled with a call to the function self.setCharactersList('character').

- -

At recognition time, the value (character) is retrieved with the function self.getCharacterFromSpoken(). See _keystrokes.py.

- -

Punctuation

-

Also in the grammar _keystrokes the punctuation is used. The functions are self.setPunctuationList('punctuation') -and self.getPunctuationFromSpoken().

- -

These four functions are defined in the IniGrammar class in natlinkutilsbj.py.

- - - \ No newline at end of file diff --git a/website unimacro/html/features/tracing.html b/website unimacro/html/features/tracing.html deleted file mode 100644 index d39314f..0000000 --- a/website unimacro/html/features/tracing.html +++ /dev/null @@ -1,97 +0,0 @@ - - -unimacro, features, tracing - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

The tracing mechanism

-

Tracing can be exploited for debugging things. Presently I use it most if actions are not working well.

- -

Use the command:

-

    Trace Actions (On | Off | 1 to 9)

- -

Each number gives more information and longer pauses between each action/part of the action (including keystrokes).

- -

If things continue to go too slow, do not forget to switch off the trace again.

- - - \ No newline at end of file diff --git a/website unimacro/html/features/translations/callbacklogic.html b/website unimacro/html/features/translations/callbacklogic.html deleted file mode 100644 index 5d60472..0000000 --- a/website unimacro/html/features/translations/callbacklogic.html +++ /dev/null @@ -1,126 +0,0 @@ - - -unimacro, features, translations, callback logic - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
 How to start
 Callback logic
 Keystrokes
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

Programming logic in callback functions

-

When some grammar rule has been found, sometimes the words in the rule must be checked for several cases. For example the following utterances from the grammar solitaire (pasjans in Dutch), corresponding with the module sol.py:

- -

english: card 6 to stack 1
-dutch:   kaart 6 naar stapel 1

- -

Both utterances come back into a callback function (gotResults_cardnumto) with inside lines like:

- -

if self.hasCommon(words, ‘card’):
-    ....

- -

because 'card' is the original word in the grammar file. With other language versions these words can be changed, but they are still recognised by above function

- -

The method hasCommon checks for a word or a list of words, against a word or a list of words.

- -

The first variable can often be simply words, being the list of words that are returned in the callback function.

- -

If you want only checked the first word you could also do:

-

if self.hasCommon(words[0], ‘card’):
-    ....

- -

The second variable can also be a string (word) or a list of strings (words), so above examples can also be written as:

- -

if self.hasCommon(words, [‘card’]):
-    ....

- -

or

-

if self.hasCommon(words[0], [‘card’, ‘something else’]):
-    ....

- -

The word or words are not only checked literally against the second input variable(s) (card), but also against possible translations or synonyms, because this function also searches in variable self.gramWords, which contains all translation words or synonyms. So with above programming logic translations or synonyms are caught automatically. The keys in the inifile and so in the variable self.gramWords all converted to lower case internally.

- - - \ No newline at end of file diff --git a/website unimacro/html/features/translations/howtostart.html b/website unimacro/html/features/translations/howtostart.html deleted file mode 100644 index 2b8f1f3..0000000 --- a/website unimacro/html/features/translations/howtostart.html +++ /dev/null @@ -1,113 +0,0 @@ - - -unimacro, features, translations, how to start - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
 How to start
 Callback logic
 Keystrokes
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

How to start translations

-

Note: for Italian the right language code is not present yet. The language will be called xxx. This is no reason for not going on.

- -

Note: for Dutch the grammars are translated already. You can correct or alter things by calling the commands toon alle grammaticaas, toon naam_van grammatica of bewerk naam_van_grammatica.

- -

Assume the language you translate to is called xxx.

- -

First move away from your Unimacro folder all the grammars that you do not need except for _control.py (files that start with "_") . Start NaturallySpeaking.

-
  • If you are lucky the configuration file (xxx_inifiles/_control.ini) opens automatically. Otherwise open this file manually.
  • Change the name, in the section [grammar name], name = ....
  • Change the different grammar words in the section [grammar words]. (After the = sign of each word.)
  • Save the file, and do one or two miscellaneous utterances.
- -

Now try to say your translation of the command Show all grammars. The special All grammars Windows should show up. You can also try Show control or Edit control, of course in your translation.

- -

Check if the grammar rules look correct.

  • In the All grammars view the grammar is not shown literally, (but all the grammar words and word lists are given).
  • In the view you get with Show grammar_name you get the grammar exactly as it goes into the NatLink system.
  • If you say Edit grammar_name you (again) get the configuration file (ini file) in which you can alter the translations.
  • If there are duplicate words, try to invent a synonym for one of these (sometimes a dummy one).
  • Sometimes synonyms break the grammar, sometimes not.
  • Each time you need one or two utterances before the new grammar is reloaded. If not, exit and restart NaturallySpeaking. Examine the Messages window.
  • Occasionally this reloading seems to take a long time. It is not clear why.
- -

Other grammars

-

If this step was okay, you can control the showing and editing of your grammars. Now try one by one to place back the other grammar files. After they are in the Unimacro folder, you have to toggle the microphone. Each grammar should show up with its ini file. You can edit the grammar name and the grammar words. After two utterances you can then ask for showing or editing the grammar and hopefully use the grammar.

- -

Good luck, let me know of your experiences.

- - - \ No newline at end of file diff --git a/website unimacro/html/features/translations/index.html b/website unimacro/html/features/translations/index.html deleted file mode 100644 index 933f507..0000000 --- a/website unimacro/html/features/translations/index.html +++ /dev/null @@ -1,150 +0,0 @@ - - -unimacro, features, translations - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
 How to start
 Callback logic
 Keystrokes
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

Translating grammars into other languages

-

See the demo movie, in this example the tasks grammar is translated into Dutch. (Note this translation has already been done, it is only meant as an example.)

- -

The Unimacro grammar words can easily be translated into other speech recognition languages like Dutch, German, French, Italian, etc.

- -

But in the same way also grammar keywords can be customised to your taste (synonyms).

- -

The basics are as follows:

-

In the inifiles of the grammar (to be opened (in English) with edit grammarname, and inspected with show grammarname, (both being commands of the grammar control):

-
  • The section [grammar name] defines the spoken form of the grammar name.
  • The section [grammar words] holds the words of the grammar. After each word you can give your own synonym or translation. In many cases even more words can be given, separated by ;. If your synonyms have spaces inside, these are automatically quoted in the grammar specification.
- -

Example from grammar repeat:

-

Consider the rules:

-

<acceleration> = [much] (faster | slower);
-<speed> = [very] (fast|slow) | normal | steady;

- -

The words much, faster, slower, very, fast, slow, normal, steady can all be changed into your translations or synonyms. If you want to include the word standard speed additional to normal, and a lot instead of much you can include in the grammar words section:

- -

[grammar words]
-...
-much = a lot
-normal = normal; standard speed
-...

- -

The rules then result in:

-

<acceleration> = [‘a lot’] (faster | slower);
-<speed> = [very] (fast|slow) | normal|‘standard speed’ | steady;

- -

Warning:

-

In some cases making more synonyms can result in invalid rules, although most grammars are designed to prevent this.

- -

Consider the following rule from the grammar lines (_lines.py):

- -

<lines> = line |
-          {count} lines |
-          (previous|next|this|these) (line | {count} lines);

- -

If you want to make synonyms for the grammar words line and lines, like:

- -

[grammar words]
-...
-line = line; lying
-lines = lines; lyings
-...

- -

The rule results in:

-

<lines> = line|lying |
-          {count} lines|lyings |
-          (previous|next|this|these) (line|lying | {count} lines|lyings);

- -

Which gives unwanted results. However most grammars will be designed to prevent these errors.

- -

Changing the order of words

-

This translation trick is only meant for literal words. So first get confident with the simple trick. Note: the names of rules and lists remain unchanged!

- -

If you want to change your grammar with another word order, you have to copy your grammar specification into the python file for your specific language. It can be done but possibly more work has to be done to interpret correct recognition results in the callback functions. (Example of this in the grammar _repeat.py for the Dutch case).

- - - \ No newline at end of file diff --git a/website unimacro/html/features/translations/keystrokes.html b/website unimacro/html/features/translations/keystrokes.html deleted file mode 100644 index c52f59e..0000000 --- a/website unimacro/html/features/translations/keystrokes.html +++ /dev/null @@ -1,101 +0,0 @@ - - -unimacro, features, translations, keystrokes - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
 How to start
 Callback logic
 Keystrokes
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

Keystrokes grammar

-

In the grammar keystrokes special attention is given to context menu. In order to translate these words, a dummy rule has been made which contains the words context menu. This rule is never recognised, but you can translate it.

- -

The translation (eg snel menu in Dutch) must be identical to the entry in the section [norepkey] which defines this action. Use the command edit keystrokes (Dutch toon toetsen) for editing this.

- -

When all goes well you can call your translation of here context menu .... For ... you can dictate your own keystrokes, this grammar is designed for continuous keystrokes.

- - - \ No newline at end of file diff --git a/website unimacro/html/features/unimacroandvocola/elevatorview.html b/website unimacro/html/features/unimacroandvocola/elevatorview.html deleted file mode 100644 index af65264..0000000 --- a/website unimacro/html/features/unimacroandvocola/elevatorview.html +++ /dev/null @@ -1,141 +0,0 @@ - - -unimacro, features, Unimacro and Vocola, elevator view - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
 Elevator view
 Unimacro Shorthand Commands
 Meta actions
 include file Unimacro_vch
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

Elevator view of Vocola 2 and Unimacro

-

In order to position these two "packages" inside the NatLink package, "elevator views" are presented here, as proposed by Mark Lillibridge.

- - - -

Unimacro

Vocola 2

Some important voice macros (e.g., switching between tasks(windows) by number or name, typing multiple keystrokes at once) and acting based on which windows appear during a macro require sophisticated and lengthy programming and/or grammars. Currently, power users reinvent the wheel or don't get around to developing all of the useful macros of this kind, and nonpower users go without. Even when power users make available powerful macros, they're often incompatible with each other or insufficiently customizable by nonprogrammers.

- -

Unimacro is dedicated to changing this. Unimacro is an attempt to bring together many power users to build a set of reusable power macros that can also be customised by nonprogrammers using configuration files. Unimacro is thus about software reuse of power macros.

- -

The unit of modularity in Unimacro is the grammar, which specifies a grammar for a mini voice language and the meanings of each of the commands, which may involve more complicate implementations. Making these sort of mini languages, most of them being global (valid in each application), also encourages defining consistent and easy to remember sets of commands. Functions doing more complicated things can be reused in grammar files and often in user-defined commands.

- -

Grammars are already available for:

  • typing multiple keystrokes
  • selecting/copying/moving by line numbers
  • switching between tasks
  • continuously repeating an action until stopped
  • switching to files/folders/websites
  • correcting commands
- -

The basic Unimacro infrastructure supports customizing the words used by grammars via configuration files, allowing nonpower users to translate grammars to different languages. As soon as a translation is written it can be incorporated in the next release so other non-English users can profit.

- -

In keeping its emphasis on code reuse, Unimacro also emphasizes creating meta-actions like <<savefile>> that produce the same effect in different applications even though different keystrokes are required; this allows writing a macro only once that can work across different applications. Also different Windows (language) versions can be adapted to more quickly.

Vocola 2 is a system like NatLink and DNS's advanced scripting language that allows you to create voice commands; unlike those systems, it emphasizes ease of learning and ease of use rather than the ability to create complicated and powerful commands. It does this primarily through introducing a simple new macro writing language optimized for doing the most common macro tasks in a concise manner. Compare the oneliner:

- -

as (thumbnails=h | tiles=s | icons=n | list=l | details=d) = {alt+v} $1;

- -

Vs. the DNS version (the three pieces below are entered and kept separately):

- -

as <as_kind>
-
-
-Sub Main
-   SendDragonKeys ”{alt+v}” + Left$(ListVar1, InStr(ListVar1+”\”,”\”)-1)
-End Main
-
-
-<as_kind>:
-h\thumbnails
-s\tiles
-n\icons
-l\list
-d\details

- -

Note the lack of boilerplate and "black magic" in the Vocola 2 version.

- -

Vocola 2 also makes it easier to organize, browse, and edit commands. -Unlike DNS which insists on alphabetizing your commands and only lets you see the definition of one command at a time, Vocola 2 lets you arrange commands (including their definitions) anyway you want using your favorite text editor. For example, you can group all your Emacs buffer change commands together. You can use this to factor out the common comments/code using user-defined functions, something which is hard to do in DNS. I find myself writing many more macros with Vocola 2 than DNS because the process is so much faster and easier.

- -

Although Vocola 2 is substantially less powerful than the other systems -- for example, it's only control structure is to repeat a series of actions an integer number of times -- it suffices for 95% of the macros you want to write. You need to write the remaining macros in one of the other systems, all of which Vocola 2 happily coexists with. In practice, the nonpower user is unable to do this and either does without or uses code they don't understand provided by someone else.

- -

 

- - - \ No newline at end of file diff --git a/website unimacro/html/features/unimacroandvocola/includefileunimacrovch.html b/website unimacro/html/features/unimacroandvocola/includefileunimacrovch.html deleted file mode 100644 index ebc6db9..0000000 --- a/website unimacro/html/features/unimacroandvocola/includefileunimacrovch.html +++ /dev/null @@ -1,117 +0,0 @@ - - -unimacro, features, Unimacro and Vocola, include file Unimacro_vch - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
 Elevator view
 Unimacro Shorthand Commands
 Meta actions
 include file Unimacro_vch
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

Unimacro.vch

-

This include file must be in the Vocola User Directory, in order to facilitate the use of many Unimacro Shorthand Commands in Vocola. Also consult this file for working examples, together with explanation of use of Unimacro Shorthand Commands in Vocola and -A listing of the Unimacro Shorthand Commands

- -

Starting with Release 4.0 the include file Unimacro.vch is copied into the Vocola UserDirectory automatically from the sample in the Unimacro\vocola_compatibility directory. This is also happens whenever the sample file is changed (for example in a new release of NatLink/Vocola/Unimacro), so do not edit the include file for normal use.

- -

If things do not work as expected, see the following instructions:

- -

Include line in the command files

-

Moreover in each Vocola file there should be a line:

-

include Unimacro.vch;

-

or, for language versions other than English and with the option Vocola takes multi languages switched on:

- -

include ..\Unimacro.vch;

-

Refreshing the include file

-

In most cases:

  • updates of the include file Unimacro.vch are copied into your Vocola UserDirectory when the sample file is changed (so newer).
  • the correct include line is put in your Vocola Command Files automatically.
- -

If not, you can try the dialog which appears after you click on Vocola compatibility in the Configure GUI Program:

- -

illustration reload unimacro.vch

- - - \ No newline at end of file diff --git a/website unimacro/html/features/unimacroandvocola/index.html b/website unimacro/html/features/unimacroandvocola/index.html deleted file mode 100644 index fbac5c2..0000000 --- a/website unimacro/html/features/unimacroandvocola/index.html +++ /dev/null @@ -1,123 +0,0 @@ - - -unimacro, features, Unimacro and Vocola - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
 Elevator view
 Unimacro Shorthand Commands
 Meta actions
 include file Unimacro_vch
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

Vocola 2 and Unimacro

-

The position of these two "packages" inside NatLink may be confusing in the beginning. Please first read about the -Elevator view in order to understand more about these two.

- -

Next, it is good to distinguish between Global grammars and Local grammars.

- - - - - - - - - -

Unimacro

Vocola 2

Unimacro focuses on global grammars, commands being on all the time or most of the time. -Through the <<meta-actions>> mechanism the actions that commands have to perform can be made specific for different Windows/applications.

Vocola 2 focuses on local command files, commands being specific for some application. With the command Edit commands you can view/edit these local commands.

There are exceptions of course. The grammar Firefox browsing for example is application-specific, but part of Unimacro.

But it is also possible to have global commands in Vocola 2: you view/edit them by the command Edit global commands.

Unimacro has quite a few specific functions (Unimacro Shorthand Commands), which can now also be used in Vocola User Files.

Vocola 2 has the possibility to define functions in its Vocola User Files, for more specific functionality. These functions cannot be used in Unimacro grammars.

The <<meta-actions>> mechanism can be used in Vocola User Files.

This can be most useful in Vocola 2 global commands!

- -

 

-

Unimacro

-

So Unimacro can be used for a lot of Global command grammars, like -doing continuous keystrokes, -switching to tasks, -switching to folders, open files and websites, -repeating previous utterances (continuously). The grammars are ready for use, and can be configured through ini files (configuration files) in any normal text editor. Some grammars need maintenance though. This is an open source project...

- -

Vocola 2

-

Vocola 2 can be used for all application-specific (local) commands that you find convenient to define. Moreover you can also define global commands that you didn't find (or didn't want to find) in one of the Unimacro grammars.

- - - \ No newline at end of file diff --git a/website unimacro/html/features/unimacroandvocola/metaactions.html b/website unimacro/html/features/unimacroandvocola/metaactions.html deleted file mode 100644 index e342a63..0000000 --- a/website unimacro/html/features/unimacroandvocola/metaactions.html +++ /dev/null @@ -1,156 +0,0 @@ - - -unimacro, features, Unimacro and Vocola, Meta actions - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
 Elevator view
 Unimacro Shorthand Commands
 Meta actions
 include file Unimacro_vch
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

Unimacro meta actions

-

These meta actions are most useful in global command files. A meta action like <<filesaveas>> can be defined in one (global) command. The action can differ for different programs/Windows. These are resolved at runtime, when a command has been recognised. Configuration of these meta actions are done in a user configurable ini file: actions.ini.

- -

Note this file is in the Unimacro release. Please consult the link(/installation/inifilestrategy.html, page on inifile strategy) if you make changes to the file actions.ini.

- -

Calling meta actions in Vocola User Files:

-

The meta actions should be called like Unimacro(<<filesaveas>>). As they have no spaces inside, quoting is not needed.

- -

Defining/changing the meta actions

-

You can use meta actions that are already there, but you can also invent your own. Just open the file actions.ini ( by calling the Unimacro command -Edit actions.

- -

Type in the [default] section the wantedname = default action.

- -

For specific applications that behave different, you can specify in the section of that application again wantedname = specifiec action.

- -

For more information see page on meta actions in Unimacro.

- -

Which application?

-

You can get the name of the foreground program with the command give window info of the grammar _general.

- -

Example filesaveas (in the file actions.ini):

-

[default]
-filesaveas = {f12}
-
-[emacs]
-filesaveas = {ctrl+x}{ctrl+w}
-
-[pythonwin]
-filesaveas = {alt+f}a

- -

Example save close (window|document):

-

It is possible to use Vocola variables inside a Unimacro meta action. Defined are the meta actions <filesave>, <documentclose> and <windowclose>. A combined command for save close document and save close window is now:

- -

save close (document | window) = Unimacro(<<filesave>>) W() Unimacro(<<$1close>>);

- -

or ( making use of a complete Unimacro actions string):

-

save close (document | window) = Unimacro(”<<filesave>>; W; <<$1close>>”);

- -

The file actions.ini Contains the following lines:

- -

(for most applications the keys to send for these meta actions are default, but there are some exceptions. In this case for emacs, psp (PaintShopPro) and cmd (the DOS command window).

- -

[default]
-documentclose = {ctrl+f4}
-filesave = {ctrl+s}
-windowclose = {alt+f4}
-
-
-[emacs]
-documentclose = {ctrl+x}k; {enter}
-filesave = {ctrl+x}{ctrl+s}
-windowclose = {ctrl+x}{ctrl+c}
-
-[psp]
-filesave = SSK {ctrl+s}
-
-[cmd]
-windowclose = {alt+space}c

- - - \ No newline at end of file diff --git a/website unimacro/html/features/unimacroandvocola/reloadunimacrovch.png b/website unimacro/html/features/unimacroandvocola/reloadunimacrovch.png deleted file mode 100644 index 5e98530..0000000 Binary files a/website unimacro/html/features/unimacroandvocola/reloadunimacrovch.png and /dev/null differ diff --git a/website unimacro/html/features/unimacroandvocola/unimacroshorthandcommands.html b/website unimacro/html/features/unimacroandvocola/unimacroshorthandcommands.html deleted file mode 100644 index 9cb32fe..0000000 --- a/website unimacro/html/features/unimacroandvocola/unimacroshorthandcommands.html +++ /dev/null @@ -1,150 +0,0 @@ - - -unimacro, features, Unimacro and Vocola, Unimacro Shorthand Commands - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
 Elevator view
 Unimacro Shorthand Commands
 Meta actions
 include file Unimacro_vch
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

Unimacro Shorthand Commands

-

All sophisticated Unimacro shorthand commands can be called from Vocola 2, like

-
  • Unimacro("WINKEY e") for starting the explorer
  • Unimacro("U Delta") for printing the Greek DELTA on your screen
  • Unimacro(KW) for killing a window (skipping the yes/no question)
  • Unimacro(MDOWN) for pressing the mouse button and
  • Unimacro(ENDMOUSE) for releasing the mouse button
- -

For most of these commands a helper function is included in the Vocola include file Unimacro.vch. This file should be copied into the Vocola Commands File Directory. Your Vocola User Files then need an include line. These functions are performed by the NatLink configure program (GUI or CLI). (Button Vocola compatibility of CLI functions l and m.)

- -

The result is that above functions can be called directly, like Vocola 2 functions:

-
  • WINKEY(e)
  • U(Delta)
  • KW()
  • MDOWN()
  • ENDMOUSE()
- -

You can browse through all the possibilities in the include file Unimacro.vch. Also consult: -the page on this site

- -

Note the function calls that go through Vocola 2 expect a fixed number of parameters. For example the WINKEY function expects one parameter, a letter (e) or a keystroke ({f1}). If you just want to call the Windows key, you can use either Unimacro(WINKEY) or (in this example) WINKEY0(). The latter being defined in the include file Unimacro.vch.

- -

Example relative mouse positions

-

Next example lets the mouse visit the corners of the screen, active window or the client area of the active window. It remembers the previous mouse position and returns there after the excursion. (Instead of 0 as fourth parameter in the RMP function also noclick can be given.)

- -

include “Unimacro.vch”;
-
-<area> := (world = 0 | window = 1 | client area = 5 );
-
-travel around the <area> =
-RM()
-    RMP($1, 0, 0, 0)         VW()
-    RMP($1, -0.01, 0, 0)     VW()
-    RMP($1, -0.01, -0.01, 0) VW()
-    RMP($1, 0, -0.01, 0)     VW()
-    RMP($1, 0, 0, 0)         VW()
-CANCELMOUSE();

- -

Example moving the mouse around

-

Next example lets the mouse move in pixels, steps or jumps, relative to the current position. These commands only work on the primary screen only (in case you work with mulptiple screens).

- -

include “Unimacro.vch”;
-
-<mouse_units> := (pixels=1 | steps=10 | jumps=50);
-
-mouse left 1..20 <mouse_units> = MP(2, Eval(-$1*$2), 0, 0);
-mouse right 1..20 <mouse_units> = MP(2, Eval($1*$2), 0, 0);
-mouse up 1..20 <mouse_units> = MP(2, 0, Eval(-$1*$2), 0);
-mouse down 1..20 <mouse_units> = MP(2, 0, Eval($1*$2), 0);

- -

A different approach is to make one range, which increases the "gaps", in order to remain maintainable by NatSpeak:

- -

<mouse_range> := (1|2|3|4|5|6|7|8|9|10|
-        11|12|13|14|15|16|17|18|19|20|
-        25|30|35|40|45|50|60|70|80|90|100|
-        125|150|175|200|
-        250|300|350|400|450|500);
-mouse left <mouse_range> = MP(2, Eval(-$1), 0, 0);
-mouse right <mouse_range> = MP(2, $1, 0, 0);
-mouse up <mouse_range> = MP(2, 0, Eval(-$1), 0);
-mouse down <mouse_range> = MP(2, 0, $1, 0);

- - - \ No newline at end of file diff --git a/website unimacro/html/features/unittesting/index.html b/website unimacro/html/features/unittesting/index.html deleted file mode 100644 index f762651..0000000 --- a/website unimacro/html/features/unittesting/index.html +++ /dev/null @@ -1,98 +0,0 @@ - - -unimacro, features, unit testing - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
Actions
Numbers and Spoken Forms
Unimacro and Vocola
Tracing
Inifiles
Translations
Cooperation with voicecoder
AutoHotkey
Unit testing
Grammar classes
Global dictation
Monitorfunctions
- -

unittest Unimacro

-

In the grammar Unimacro test a lot of tests are brought together in order to test things of Unimacro.

- -

These tests that can not run "offline" and with no user interaction, like unit tests normally do.

- -

They can be called when your speech profile is open. Because things are often dependent on context and speech profile some care must be taken when executing these tests. Please read more information on the detail pages, see link shown above.

- -

unittest NatLink

-

See link(/installation/technicaldetails/testingnatlink.html, unittest NatLink), for instructions of testing the basics of NatLink itself.

- -

unittest special modules

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/control/index.html b/website unimacro/html/grammars/control/index.html deleted file mode 100644 index 955be2a..0000000 --- a/website unimacro/html/grammars/control/index.html +++ /dev/null @@ -1,120 +0,0 @@ - - -unimacro, grammars, control - - - - - - - - - - -
- - - - - - - - - -
Control
Global grammars
Specific grammars
Unimacro test
Games
- -

Controlling (the other) Unimacro grammars and actions

-

This is the controlling grammar, with which you can show or edit things. Say show control for the details of this grammar, say edit control for changing things, including translation or synonyms.

- -

For other language versions these commands can differ. When translating Unimacro to a new language, start with this grammar.

- -

The grammar:

- - - - - - - - - - - - - - - - -

command

comment

show all grammars

open the display grammar window with all grammars

show active grammars

give a list of active grammars. Also show non active (but loaded) grammars and grammars outside the Unimacro reach. See below for more details.

show|edit {grammarname}

show the actual information (including the grammar) of grammarname, or edit the inifile for grammarname

show|edit actions

give the actual actions of the window you are in, or edit the actions inifile.

trace actions on|off|{count}

switches on or off the trace mode of the actions, a larger number slows down the process, and gives more information.

edit grammar {grammarname}

Opens the python file in the appropriate window (eg Pythonwin).

-

The switch for automatic reloading is set when you edit some grammar file. So, when you save your changes, the grammar will be reloaded.

switch on|off {grammarname}

switch on or off some grammar. The switching on or off is also set in the .ini configuration file of the respective grammar, so is persistent across NatSpeak sessions.

switch on|off all grammars

all Unimacro grammars except the grammar control can be switched off in this way. Persistent across NatSpeak sessions.

- -

 

-

show active grammars

-

This command gives, in a yesno dialog box all the active and non-active grammars. For application specific grammars, you will notice they are disabled when the application is not in focus.

- -

Also grammars that are outside Unimacro are shown, probably Vocola grammars.

- -

showactivegrammars

- -

You can switch on or off grammars by the command shown above.

-

The YesNo dialog box further asks you if you want to see the details of the active grammars. This is analogous to the window you get when you call show all grammars, but of course only showing active rules.

- -

When you want more information about one specific grammar, it is more appropriate to call show grammarname.

- -

Message

-

<message> is a mysterious-looking grammar rule. It was used for displaying messages from the Unimacro system into the NatSpeak recognition box. Leave it alone. It is obsolete now.

- -

Actions

-

Actions are used in many grammars. -They can be shown or edited through the commands in the table above.

- -

If you want to trace your actions you can call the command trace actions on or eg trace actions 3. In the messages box information is shown about the action and parts of the action that is/are performed. Also as the number increases, the actions are slowed down, so you can see what happens. For example trace actions 5 will go quite slow. Do not forget to call trace actions off when you are done.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/control/showactivegrammars.png b/website unimacro/html/grammars/control/showactivegrammars.png deleted file mode 100644 index 726fbf6..0000000 Binary files a/website unimacro/html/grammars/control/showactivegrammars.png and /dev/null differ diff --git a/website unimacro/html/grammars/games/freecell.html b/website unimacro/html/grammars/games/freecell.html deleted file mode 100644 index ec4c80f..0000000 --- a/website unimacro/html/grammars/games/freecell.html +++ /dev/null @@ -1,122 +0,0 @@ - - -unimacro, grammars, games, freecell - - - - - - - - - - -
- - - - - - - - - - - - - - - - -
Control
Global grammars
Specific grammars
Unimacro test
Games
 Patience
 Solitaire
 Freecell
- -

Speel freecell met uw stem!

-

Dit is mogelijk met deze grammatica "freecell.py" binnen het Unimacro/NatLink pakket dat gekoppeld is aan Dragon NaturallySpeaking.

- -

De basis commando's zijn:

- - - - - - - - - - - - - - -

zeg:

resultaat

kaart 1-8

verplaatst de muis naar een rij kaarten (dus 1, 2, 3, 4, 5, 6, 7 of 8)

naar stapel 1-4

verplaats de onderste kaart van de betreffende rij naar een van de 4 stapels rechtsboven

naar 1-8

verplaats kaarten van de betreffende rij naar een andere rij

naar vrij

verplaats onderste kaart van de betreffende rij naar een vrije plaats, linksboven

1-8 naar stapel 1-4

verplaats van rij naar een van de 4 stapels

1-8 naar 1-8

verplaats van rij naar andere rij

1-8 naar vrij

verplaats van rij naar vrije cel

- -

 

-

Aanvullende commando's:

- - - - - - -

zeg:

resultaat:

toon eerste kaart
toon tweede kaart...
toon volgende kaart", 'hou de rechtermuisknop ingedrukt op een bepaalde kaart. Doe dit commando na "kaart 1-8"'],

pauzes 0-8

Na elk deel van een actie wordt even gepauzeerd. Deze pauzes kunnen met deze commando's worden ingesteld, 0=minimaal, 8= maximaal, standaard=2

ongedaan maken
terug
vorige

Maakt de laatste actie ongedaan

- -

 

-

De hele grammatica:

-

<kaart> exported = kaart {knum};
-<naar> exported = naar ((stapel {snum})|vrij|{knum});
-<vrijnaar> exported = vrij {snum} naar ((stapel {snum})|{knum});
-<numnaar> exported = {knum} naar ((stapel {snum})|vrij|{knum});
-<wacht> exported = pauzes (0 |{knum});
-<toon> exported = toon {numcard} kaart;
-<undo> exported = (ongedaan maken)| terug | vorige;

- -

Programmeer opmerkingen:

  • de "toon"-commando's zijn niet vlekkeloos.
  • deze grammatica is vooral een oefening in het bedienen van de muis
- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/games/patience.html b/website unimacro/html/grammars/games/patience.html deleted file mode 100644 index af53f9f..0000000 --- a/website unimacro/html/grammars/games/patience.html +++ /dev/null @@ -1,134 +0,0 @@ - - -unimacro, grammars, games, patience - - - - - - - - - - -
- - - - - - - - - - - - - - - -
Control
Global grammars
Specific grammars
Unimacro test
Games
 Patience
 Solitaire
 Freecell
- -

Speel patience met uw stem!

-

Met de grammatica "sol" is dit nu mogelijk. Deze grammatica maakt gebruik van de mogelijkheid om via spraakherkenning met de muis te bewegen en te slepen.

- -

De basis commando's zijn:

- - - - - - - - - - - - - - - - -

zeg:

resultaat

kaart 1-7

verplaatst de muis naar een rij kaarten (dus 1, 2, 3, 4, 5, 6 of 7)

nieuwe kaart
volgende
verder
ga door

een nieuwe kaart trekken

naar stapel 1-4

sleep kaart vanaf de muis positie naar een van de 4 stapels

naar 1-7

sleep vanaf de muispositie naar een van de 7 rijen

1-7 naar stapel 1-4

sleep van een van de rijen naar een van de 4 stapels

1-7 naar 1-7

sleep van de ene rij naar de andere

kaart naar 1-7

sleep de laatst getrokken kaart naar een van de rijen

kaart naar stapel 1-4

sleep de laatst getrokken kaart naar een van de stapel

- -

 

-

Aanvullende commando's:

- - - - - - -

zeg:

resultaat:

pauzes 0-7

Na elk deel van een actie wordt even gepauzeerd. Deze pauzes kunnen met deze commando's worden verlengd of verkort (0 is het snelst, 3 is de standaardwaarde)

stapel automatisch

verplaats kaarten automatisch naar de 4 stapels na elke beurt

muis hoger
muis lager
muis hoger 1-7
muis lager 1-7

om de muis iets hoger of iets lager op een rijtje kaarten te krijgen. Dit is handig als je op een rij positioneert maar de muis staat niet (verticaal) op de juiste kaart. Je kunt vervolgen met "naar 1-7" of "naar stapel 1-4"

- -

 

-

commando's die via de grammatica commandoos worden gedefinieerd:

- - - -

zeg:

resultaat:

opnieuw delen

de toetsencombinatie {f2}

- -

 

-

De hele grammatica (vertaald vanuit het Engelse origineel):

-

<card> exported = kaart {cnum};
-<newcard> exported = nieuwe kaart|volgende|‘ga door’|verder;
-<to> exported = naar ((stapel {snum})|{cnum});
-<cardto> exported = kaart naar ((stapel {snum})|{cnum});
-<cardnumto> exported = [kaart] {cnum} naar ((stapel {snum})|{cnum});
-<lower> exported = muis (lager|hoger) [{cnum}];
-<wait> exported = pauzes (0 |{cnum});
-<auto> exported = stapel automatisch;::
-
-  Programmeer opmerkingen:
-
--na elke sleep beweging moet even worden gepauzeerd, zo de minimum pauze tijd is 0.05 sec.
--deze grammatica is een oefening in het slepen van de muis met NatSpeak/natpython

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/games/solitaire.html b/website unimacro/html/grammars/games/solitaire.html deleted file mode 100644 index b4b2490..0000000 --- a/website unimacro/html/grammars/games/solitaire.html +++ /dev/null @@ -1,135 +0,0 @@ - - -unimacro, grammars, games, solitaire - - - - - - - - - - -
- - - - - - - - - - - - - - - - -
Control
Global grammars
Specific grammars
Unimacro test
Games
 Patience
 Solitaire
 Freecell
- -

The game of solitaire by voice!

-

With the grammar "sol" it is now possible to play solitaire by voice.

- -

This grammar relies on mouse movement and mouse dragging commands.

- -

The basic commands are:

- - - - - - - - - - - - - - - - -

command:

result:

card 1-7

move the mouse to one of the card piles (1, 2, 3, 4, 5, 6 or 7)

new card
next
go on
continue

draw a new card

to stack 1-4

drag a card from the mouse position to one of the four stacks

to 1-7

drag a card from the mouse position to one of the seven piles

1-7 to stack 1-4

drag from one of the piles to one of the stacks

1-7 to 1-7

drag from one pile to another

card to 1-7

drag the last drawn card to one of the piles

card to stack 1-4

drag the last drawn card to one of the stacks

- -

 

-

Additional commands:

- - - - - - -

command:

result:

pauses 0-7

do some pausing after each command and each movement: pauses 0-7 (0 = off, fastest actions) (default=3)

mouse (higher | lower) 1-7", 'this is useful when you position on a pile, but the mouse pointer does not point to the desired card; continue with "to 1-7"'],

stack automatically", 'after each move to all possible cards to the stacks ']])]]]

- -

command(s) to be defined with the commands grammar:

- -

 

- - -

command:

result:

new game

the keystroke {f2}

- -

 

-

The complete grammar (can be changed with the command "edit solitaire"):

- -

<card> exported = card {cnum};
-<newcard> exported = new card|next|‘go on’|continue;
-<to> exported = to ((stack {snum})|{cnum});
-<cardto> exported = card to ((stack {snum})|{cnum});
-<cardnumto> exported = [card] {cnum} to ((stack {snum})|{cnum});
-<lower> exported = mouse (lower|higher) [{cnum}];
-<wait> exported = pauses (0 |{cnum});
-<auto> exported = stack automatically;

- -

Programming notes:

  • a little bit pausing has to be done after all the dragging commands, so the minimum waiting time is 0.05 sec.
  • this grammar is an exercise in mouse moving and dragging.
- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/brackets/index.html b/website unimacro/html/grammars/globalgrammars/brackets/index.html deleted file mode 100644 index f44d0c9..0000000 --- a/website unimacro/html/grammars/globalgrammars/brackets/index.html +++ /dev/null @@ -1,171 +0,0 @@ - - -unimacro, grammars, global grammars, brackets - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Brackets (put around text)

-

Note: this grammar is initially in the DisabledGrammars subdirectory of Unimacro. Copy the python file (_brackets.py) to the Unimacro directory, and switch the grammar on with the next command:

- - - -

command

comment

switch (on|off) brackets

control the on/off state of this grammar.

- -

 

-

The grammar:

- - - - -

command

comment

between {brackets}

insert brackets around the selected text, or simply put the brackets, with the cursor inside.

between {brackets} <dgndictation>

print your dictated text inside the brackets

- -

 

-

Examples:

- - - - - - - - - - - - -

command

result ( | shows the cursor position after the command)

between brackets hello world

(hello world)|

between quotes Cap my favorite test period just kidding period

"My favorite test. Just kidding."|

between braces space-bar another thing space-bar

 {another thing} | (put a space before and after the braces)

between angle brackets space-bar

 <|> (a special case, and insert a space before the <. Position the cursor between the angle brackets.)

between quotes brackets

"(|)" (more brackets together, and puts the cursor in the middle)

between HTML angle brackets

&lt;|> (special case, if a | in a brackets definition, the cursor is put in the place of this vertical bar)

- -

 

  • If you put brackets around selected text, whitespace before or after the selection is maintained and put outside the brackets.
  • If you dictate space-bar at the start or the end of the dictated text, a space will be inserted before or after, but outside the brackets.
  • But note: first give the command words like between brackets or between single quotes etc.
  • Control your own set of brackets by calling edit brackets and editing the _brackets.ini configuration file (and see sample below).
- -

Warning

-

You cannot correct dictation errors when you use the <dgndictation> imported rule. Select text that went wrong, and redictate. If then an error occurs, you can correct your dictate.

- -

Sample configuration file

-

[brackets]
-angle brackets = <>
-asteriscs = **
-braces = {}
-brackets = ()
-colons = ::
-double angle brackets = <<>>
-double quotes = ’””’
-double underscores = ____
-parens = ()
-parenthesis = ()
-quotes = ’””’
-single quotes = ”’’”
-square brackets = []
-triple quotes = ’””””””’
-underscores = __
-vertical bars = ||
-HTML square brackets = &#091;|]
-HTML angle brackets = &lt;|>
-
-[general]
-initial on = 0
-
-
-[grammar name]
-name = brackets
-
-
-[grammar words]
-between = between

-
  • Note the vertical bar to give the cursor position in case of asymmetric brackets.
  • The grammar word between can have synonyms, for example between = between | inside
  • When the grammar is switched on, you will see initial on = 1.
  • For single and double quotes the definition must be double or single quoted, a peculiarity of the ini file mechanism.
- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/edit/index.html b/website unimacro/html/grammars/globalgrammars/edit/index.html deleted file mode 100644 index 149a8b9..0000000 --- a/website unimacro/html/grammars/globalgrammars/edit/index.html +++ /dev/null @@ -1,155 +0,0 @@ - - -unimacro, grammars, global grammars, edit - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Edit text in DragonPad or even (for programmers) in emacs

-

NOTE: This grammar is a bit obsolete, because NaturallySpeaking introduced the dictation box several versions ago. Maybe the idea of the dictation box is even taken from this grammar!

- - - - - - - -

command

comment

edit that

copy the selection to DragonPad, for full Select-and-Say control

edit all

copy the whole document to DragonPad, for full Select-and-Say control

edit ready

in DragonPad: copy all text and paste back into the place it came from

- -

 

-

The effects of these commands are the same as the dictation box in recent NatSpeak versions. They work very well, and can have some side-effects:

-
  • pasted text is automatically saved into text files (give the command edit edit, and edit the variables automatic log to file). These files can be used for later analysis by the NatSpeak vocabulary builder. (The ini file variable base log folder is obsolete.)
- -

Logging and saving the messages window

- - - - -

command

action

log (that|all)

the selection or the whole file is logged to a file (see below for the precise location)

log messages

the messages window is copied into the special folder log messages in the Unimacro folder. As a side effect the messages window is closed, so emptied.

- -

 

-

Files and folders the log files go to

  • all log files go to subfolders of the Unimacro folder
  • the files with the log that or log all command or the automatic log to file option on, go into the subfolder log xxx/user (xxx being the language code of your speech profile), and have names starting with texts yyyy mm, so each month the log file is refreshed. For the automatic log to file behaviour of filenames start with texts auto yyyy mm.
- -

(Note that the folder xxx_log contains logs of all your utterances, if this option in the grammar oops is switched on)

- -

Editing Latex code

-

Addition by Frank Olaf:

- - -

command

comment

edit (that|all) latex

sends the text to Microsoft Word with latex syntax highlighting

- -

 

-

Interaction with voicecoder

-

For programming purposes I experimented with different other commands. The most important now is

- - - -

command

comment

edit (that|all) (python|CC|...) code

sends the text to a file, and open this file in emacs

- -

 

-

The grammar _lines makes use of this, by the command word emacs as simpleaction.

- - - - - -

command (_lines grammar)

comment

20 lines emacs_

20 lines are selected and brought to emacs, in correct emacs mode.

lines 10 plus 20 emacs_

variants, see lines grammar" and -cooperation with voicecoder

- -

 

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/folders/actions.html b/website unimacro/html/grammars/globalgrammars/folders/actions.html deleted file mode 100644 index 779ca0f..0000000 --- a/website unimacro/html/grammars/globalgrammars/folders/actions.html +++ /dev/null @@ -1,125 +0,0 @@ - - -unimacro, grammars, global grammars, folders, actions - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
  Details
  Actions
  Virtual drives
  Environment variables
  Track folders history
  Remember
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Actions used in this grammar

-

For a dialog window part two meta-actions are used (say edit actions to view/edit the actions.ini config file):

- - - - - -

action

comment

filename enter

The (most often) keystroke action to reach the filename textbox in the window. Most often "{alt+n}", but for some programs this action must be changed (office programs in some versions or languages, winzip32).

filename exit

to leave the filename textbox. Needs some adjustment sometimes in Office programs

- -

 

  • Note: for working the cmd program, Command Prompt, the meta-action <<paste>> should be set, see details.
- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/folders/details.html b/website unimacro/html/grammars/globalgrammars/folders/details.html deleted file mode 100644 index d39a5c1..0000000 --- a/website unimacro/html/grammars/globalgrammars/folders/details.html +++ /dev/null @@ -1,232 +0,0 @@ - - -unimacro, grammars, global grammars, folders, details - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
  Details
  Actions
  Virtual drives
  Environment variables
  Track folders history
  Remember
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Odds and ends of the _folders grammar

-

cmd

-

The cmd program (Command Prompt) can also react to several folders commands, but the pathname of the wanted folder are pasted into the cmd-window. This is done with the Unimacro Shorthand Command SCLIP.

- -

One detail has to be set into the actions.ini config file, when you upgraded from an older version of Unimacro (before July 2020).

-
  • Say "edit actions"
  • Goto the section of [cmd] and set:
- -

[cmd]
-(...)
-paste = SSK({ctrl+v})

-

This is needed because the cmd window wants "system keys", so the meta-action <<paste>> should be given with the Unimacro Shorthand Command SSK.

- -

Top window behaviour

-

If you call for a folder outside a dialog window (a child window), all explorer (this computer) windows are inspected, and compared with the folder name that is asked for. The window with the nearest folder name (in the window title) is chosen. If no near match is present, a new "this computer" window is opened. If part of the folder name is present in the current active window, you switch to the exact folder, otherwise only the nearest folder window is brought to the front.

- -

In order to force a new window, you can say new at the end of the folder command. In order to open an explorer window (with folder list on the left side) you can say explorer at the end of the folder command (or both new and explorer) (explorer does not work at the moment)

- -

Example:

-

If you ask for folder projects (for example on d:/projects), but you have already a window open with d:/projects/sitegen/doctests, there are several possibilities:

-
  • You have this folder already active, in that case in this active window you switch to d:/projects, UNLESS there are other windows open with d:/projects/sitegen or d:/projects (closer matches). In those cases you jump to one of these windows.
  • The wanted folder is not yet active: you jump to this folder d:/projects/sitegen/doctests, and DO NOT change to d:/projects. With a second call to this folder the change is made.
  • No folder on the D:/ drive is open: a new folder window is opened.
  • You have a window with D:/ open. You switch to this window, and change to the desired folder.
- -

child behaves like top

-

It can happen that you want to open a folder in top mode, while you have a child window in focus. You can configure this in .ini files, but the place has been changed (november 2010).

- -

The configuring of this feature was in the section [general] of the _folders.ini configuration file. It has now been moved to the actions.ini configuration file.

- -

You should remove the key -child behaves like top from the section [general] in your _folders.ini configuration file. (Call by the command edit folders).

- -

File open strategy

-

The file you call it opened through the standard window function. So connecting to a program that is already open is decided by the windows settings. As additional word you can call open, edit, print, which will try to affect that window function. If the specifying mode is not valid, the (in most cases default) open mode is chosen.

- -

There is one exception: if you call from a child window, the filename is printed in the filename control, like with folders. Note that this possibility will only rarely been needed.

- -

If you call paste the file name is always printed on the place of the cursor.

- -

On {letter} | {virtualdrivesspoken} trick

-

letter trick

-

I (Quintijn) have a lot of folders that are on my laptop, but also on my desktop computer, that I can reach by the drive letter "Q:". When I call a folder (or a file), followed by On Quebec, the corresponding folder on this Q: drive is opened.

- -

Also when you make a copy of a folder to a USB-stick, carrying the name "E", you can call a folder (eg Documents, normally on "C:") with folder Documents On Echo.

- -

virtualdrivesspoken trick

-

(December 2017): this trick is extended to virtualdrives.

- -

Example: I have my documents on C:\Documenten, but older documents I moved to C:\DocumentenOud (meaning "Documents Old").

- -

In the ini file I defined in virtualdrives (among others):

-

[virtualdrives]
-md = C:\Documenten
-mdoud = C:\DocumentenOud

- -

And I have all subfolders of documents (md) in the folders list. One of the folders is named "Quintijn".

- -

[virtualdrivesspoken]
-documentenoud = mdoud

-

Now when I call "folder Quintijn on documentenoud", the folder "C:\Documenten\Quintijn" is changed into "C:\DocumentenOud\Quintijn

- -

Likewise, you can call a file on a "remote" letter-drive or virtualdrive.

- -

 

-Alternative file or folder names trick

- -

When you have different paths for files or folders on different computers, but you want to keep the _folders.ini definitions consistent, you can specify alternatives in the file or folder name:

- -

[folders]
-Documents = (C|D):\Document(s|en)

-

In this case, Documents will point to C:\Documents, C:\Documenten, D:\Documents or D:\Documenten, the first exisiting folder is taken.

- -

 

-Sites trick

-

I (Quintijn) got on my computer a lot of folders after "D:/sites". Inside each of these folders there is an input and an output folder. With the special site commands I can reach these, with optional parameters like input, output, local. The natpython grammar automatically searches for these, or opens the local web site, after having found the output folder.

- -

BUT: as long as the variable siteRoot in your python module file does not point to a valid folder, this part of the grammar is not activated.

- -

2Xexplorer

-

Provisions were made to find folders in the 2XExplorer window as well. Currently I forgot about these, but they could be made active if somebody wants to use this feature.

- -

2Xeplorer seemed to be perfect for speech recognition, but there is no CVS control. Also sometimes some windows functions seemed not to work correct. Not giving the right focus for example.

- -

Xplorer2

-

xplorer2

- -

On request this program is also inserted as possibility to open folders with. See www.zakbat.com

- -


-

For configuration first insert in the [general] section of folders:

- -

[general]
-(...)
-use other explorer = xplorer2

- -

and insert in actions.ini (say edit actions):

- -

[bringup xplorer2]
-path = C:\Program Files\zabkat\xplorer2\xplorer2_UC.exe
-name = xplorer2_uc

- -

After these changes, the folder commands for "top windows" will work with xplorer2 instead of the standard explorer.

- -

Drawback: automatic tracking of subfolders and files in a directory will not work. Also the recent folders list, as recently edit as option, will not respond on folders opened in xplorer2.

- -

See short demo:

-


-

Tracing files and folders automatically

-

From release 3.9 it is possible to include all folders and/or all files from some directory in your folders or files list. The directories you want to use for this trick should be specified as a -virtual drives.

- -

You can include these options by setting variables in this section [general] of the configuration file. If more items are to be specified, separate them by a ;. Example:

- -

[general]
-track folders virtualdrives = md; pr; um; uu; vc
-
-track files virtualdrives = md; pr
-ignore file patterns = ~*
-track file extensions = .py; .doc; .xls; .txt

-
  • The mechanism works only on one level, so no recursiveness.
  • The virtual drives must be defined in the [virtualdrives] section.
  • Subfolders are excluded if they contain anything else than lowercase letters and spaces.
  • Files can be included by specifying the extensions, or excluded by specifying the fnmatch (unix) like patterns.
  • When you edit the configuration file (say edit folders), you can tune the spoken forms, and optionally specify more spoken forms for a folder or a file (separated by ;) or make the spoken form empty, the file of folder will be excluded from the grammars list.
  • Inspect the lists by saying show folders, or (more complete) by saying show all grammars.
- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/folders/environmentvariables.html b/website unimacro/html/grammars/globalgrammars/folders/environmentvariables.html deleted file mode 100644 index 3aa43a1..0000000 --- a/website unimacro/html/grammars/globalgrammars/folders/environmentvariables.html +++ /dev/null @@ -1,190 +0,0 @@ - - -unimacro, grammars, global grammars, folders, environment variables - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
  Details
  Actions
  Virtual drives
  Environment variables
  Track folders history
  Remember
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

confignatlinkvocolaunimacroEnvironment variables

-

For all definitions you can now also use the Windows system environment variables. Enclose with % and all capitalise them. Its sensible use is to put them at the front of a file, folder or virtual drive definition. Slashes can be omitted.

- -

Examples:

- - - - - - - - -

Variable

Meaning

%HOME%

-

~

pointing to your home folder, most often your path to My documents, see below

- -

Tilde is a common shorthand notation for your home folder.

%PROGRAMFILES%

pointing to the program files folder

%APPDATA%

pointing to your app data folder

%DESKTOP%

pointing to your desktop folder

- -

 

-

Natlink related Environment Variables

-

Starting with version 4.1whiskey also Natlink related environment variables are added. The interface is a bit tricky, but the _folders grammars uses them.

- - - - - - - - - - - - - - - - - - - - - -

Variable

Example value

%BASEDIRECTORY%

C:\NatLink\NatLink\MacroSystem

%COREDIRECTORY%

C:\NatLink\NatLink\MacroSystem\core

%DNSINIDIR%

C:\ProgramData\Nuance\NaturallySpeaking15

%DNSINSTALLDIR%

C:\Program Files (x86)\Nuance\NaturallySpeaking15

%DNSUSERDIRECTORY%

C:\ProgramData\Nuance\NaturallySpeaking15\Users\QNederlands\current

%NATLINKDIRECTORY%

C:\NatLink\NatLink

%UNIMACRODIRECTORY%

C:\NatLink\Unimacro

%UNIMACROUSERDIRECTORY%

C:\Documenten\unimacro_qh

%USERDIRECTORY%

C:\UserDirectory\dragonfly-macros

%VOCOLAUSERDIRECTORY%

C:\Documenten\vocola_qh

- -

 

-

HOME and ~

-

The environment variable %HOME% is by default NOT set in Windows. In order to make the story above work, Unimacro takes for %HOME%: the My documents folder on your system.

- -

Of course you can also set %HOME% yourself (in System properties, Advanced, Environment variables). -When you are using Emacs (VoiceCode) you probably have set the %HOME% variable this way in order to get proper access to your .emacs file.

- -

For ~ also this folder is taken.

-

Show all these variables

-

You can show all the Environment variables and the Natlink specific variable via a Unimacro Shorthand Command. In Vocola you can enter in your (global) command file:

- -

print all variables = Unimacro(“PRINTALLENVVARIABLES”);
-print natlink variables = Unimacro(“PRINTNATLINKENVVARIABLES”);

- -

Examples

- - - - - - - - - - - -

Virtual drives

md

%HOME%

pf

%PROGRAMFILES%

Folders

md:/private or

-

~private or

-

~/private or

-

%HOME%/private

all pointing to the folder "private" in your documents

%NATLINKDIRECTORY%/confignatlinkvocolaunimacro

the directory where the config program of Natlink is located.

Files

~/public/examples.doc

A file in the folder public of your home folder.

- -

 

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/folders/index.html b/website unimacro/html/grammars/globalgrammars/folders/index.html deleted file mode 100644 index 499796d..0000000 --- a/website unimacro/html/grammars/globalgrammars/folders/index.html +++ /dev/null @@ -1,260 +0,0 @@ - - -unimacro, grammars, global grammars, folders - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
  Details
  Actions
  Virtual drives
  Environment variables
  Track folders history
  Remember
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Switching to folders, opening files, websites

-

With the grammar folders (module file _folders.py) you switch to one of your predefined drives, folders or files or to one of your favourite websites.

- -

You can also call subfolders or files of:

  • Specified directories; see bottom of details, and:
  • If a This computer window or a Open or Save as dialog is active, the folders and files of the current directory are available.
- -

The behaviour is different for different groups of windows:

  • If you are in a dialog window (Open, Save As) you switch to the wanted folder inside this window.
  • If you are outside a dialog window, the desired folder is opened into a "This Computer" (or explorer) window (See more details for this folders switching strategy).
  • With the additional command word paste you can print the path of the folder or file to your active application
  • With the additional command word new you can open a new "This Computer" window.
- -

You can show the grammar with the command show folders. With edit folders you can change your folders list, files list or other parameters of the grammar.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

command

comment

folder {folderlist}

Go to one of the folders in the folderlist

sub folder {subfolders}

Go to one of the sub folders in the current folder or file dialog

sub folder {subfolders} remember

Remember the named subfolder for future direct calling. See remember.

website {websitelist}

Go to one of the websites in the list (it is opened in your default browser)

file {filelist} | {subfiles}

Go to one of the files in the filelist (in your ini file) or files in the current folder (see at bottom)

file {subfiles} remember

Remember the named (sub) file for future direct calling. See remember.

this (folder|file|website) remember

Remember the selected folder, file, or visited website for future direct calling. See remember.

drive {letter}

Go to one of the drives mentioned in the "letters" list

folder up [1-10]

Move up one or more folders up in the hierarchy. Different behaviour for dialog windows, this computer/explorer, Internet Explorer and Firefox

folder{folderlist} {folderoptions}+

Do one or more additional actions with the folder

file {filelist} {fileoptions}+

Do one or more additional actions on the file

drive {letter} {folderoptions}+

Do one or more additional actions (see below)

(show | edit) folders

show or edit the data for this grammar

on {letters}

special trick for multiple drives, having the same structure. (see details

- -

 

- - - - - - - - - - -

folder options

explanation

new

open always in the new "my computer" window

explorer

find or open in a Windows Explorer window (or 2xExplorer if defined) (not working at the moment)

paste

paste the folder name at the place of the cursor

maximise

maximise the window after opening or activating

restore

restore the window after opening or activating

- -

 

- - - - - - - - -

file options

explanation

paste

paste the file name at the place of the cursor

maximise, restore

maximise, restore the window after opening or activating

edit | print | open

open the file in open, print, edit mode. (open is the default, except for .py files, they have edit as default)

on {letters}

special trick for multiple drives, having the same structure. (see details)

- -

 

-

Using environment variables

-

In the definition of folders, files and virtual drives you can now use environment variables like %HOME%, %PROGRAMFILES% or %APPDATA%. It is also possible to use ~ instead of %HOME%.

- -

See -the page about using these environment variables.

- -

When editing your folders you will see the following inifile sections:

- - - - - - - -

section

comment

files

Here you can define your filelist. Delete all the unwanted entries, and enter a word (spoken form) on the left, and the filename on the right. You can make use of virtualdrives (below) and of entries from the folders list.

- -

/ is translated into \.

folders

Here you can define your folderlist. Delete all the unwanted entries, and enter a word (spoken form) on the left, and the folder name on the right. You can make use of virtualdrives (below)

general

options to tune this grammar, see below

- -

 

-

The options start this computer and start windows explorer now obsolete.

- - - - - - - - - - - -

grammar words

Here you can define your synonyms, or translations for this grammar

grammar name

Here you can define the name of the grammar

letters

List of drive letters which can be used in the drive command, and also on the additional On {letters} feature (see details

sites

A private (Quintijn) additional feature, see the details if you are curious.

virtualdrives

For folders that have some subfolder entries, you can make a common start. -A two letter combination serves as a virtual drive. Delete unwanted entries. Virtual drives can be recursive.

websites

here you can define your own websitelist.

-

Note you can most often skip http:// and even www.. See you the examples in inifile

- -

 

-

Options in section general of configuration file:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

general

possible value

comment

2xexplorer

c:\program files\2xexplorer\2xexplorer.exe

Probably obsolete option

automatic track files

T

Switch on (T) or off (F, or leave away). T means that files of a folder can be tracked automatically and put in the files list

automatic track folders

T

Switch on (T) or off (F, or leave away).

-

T means that sub folders of a folder can be tracked automatically and put in the folders list. Beware of too long lists!

child behaves like top

specify if a child window should behave as top window

Should be configured like in actions.ini, see actions configuration file

citrix apps =

a special app name

Special option for only printing a folder path or file path instead of opening it.

ignore file patterns

~*; .*

for ignoring files in the automatic track files option

initial on

1

Unimacro option for always switching on this grammar. See _control for more information.

start this computer

HW start, My Computer

Possibly obsolete

start windows explorer

HW start, Windows explorer

Starts in some cases an explorer window

subversion executable

C:\Program Files\TortoiseSVN\bin\TortoiseProc dot exe

For special subversion command options.

top behaves like child

specify if a top window should behave as child

Should be configured like in actions.ini, see actions configuration file

track file extensions

.py; .docx; .xlsx; .txt; .ini; .jpg; .jpeg

Restrict automatic file tracking for a specific directory to these file extensions.

track files

 

specify the virtual drives on which you want automatic file tracking

track folders history

10

an experimental option to "remember" a recent folders list

track folders virtualdrives

md; um; qh; mdoud

This is the most useful of the special options: subfolders in these "virtualdrives" are tracked and put into the folders list.

- -

 

-

Subfolders or files in an opened folder or file dialog

- - - - -

command

comment

subfolder {subfolders}

the subfolders of the current folder are put in the list

file {files}|{subfiles}

the files list is defined by yourself, for frequently used files.

- -

the subfiles list is filled for all the files of the current folder, when they match one of the given extensions. dots, hypens etc. are skipped, extensions are NOT spoken.

- -

 

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/folders/remember.html b/website unimacro/html/grammars/globalgrammars/folders/remember.html deleted file mode 100644 index 22db213..0000000 --- a/website unimacro/html/grammars/globalgrammars/folders/remember.html +++ /dev/null @@ -1,146 +0,0 @@ - - -unimacro, grammars, global grammars, folders, remember - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
  Details
  Actions
  Virtual drives
  Environment variables
  Track folders history
  Remember
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Remember folders, files and websites.

-

Folders to be called can be defined in the folders section of your _folders.ini configuration file.

- -

But it can also be done via the remember action, in combination with the "this folder" or the "sub folder" commands.

- -

Whenever you are in an explorer or file dialog window, you can either:

-
  • click on a folder and say "this folder remember", or
  • say "sub folder subfoldername remember".
- -

You can also position the mouse above the wanted folder and say "here folder remember"

- -

For the second possibility you need to set the "automatic track folders" to true:

- -

[general]
-automatic track folders = T

-

After this command, you get a dialog window, in which you can specify the wanted spoken name.

- -

Click on OK or press enter to confirm ("click OK" regrettably does not work in this dialog).

- -

The folder with your wanted name is put into the folders section of your config file.

- -

Files:

-

For files in a directory the same applies, but without the word "sub", and without extension: "file filename remember" or "this file remember" (or "here file remember").

- -

You need to set "automatic track files" and also you can specify the wanted file extensions:

- -

[general]
-automatic track files = T
-track file extensions = .py; .doc; .xls; .txt; .ini; .jpg; .jpeg; .png; .docx; .xlsx

- -

Websites:

-

And likewise for a website you are visiting: "this website remember".

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/folders/trackfoldershistory.html b/website unimacro/html/grammars/globalgrammars/folders/trackfoldershistory.html deleted file mode 100644 index 3695844..0000000 --- a/website unimacro/html/grammars/globalgrammars/folders/trackfoldershistory.html +++ /dev/null @@ -1,134 +0,0 @@ - - -unimacro, grammars, global grammars, folders, track folders history - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
  Details
  Actions
  Virtual drives
  Environment variables
  Track folders history
  Remember
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Track folders history

-

With a special option track folders history, set to a number, this last number of visited folders will be remembered.

- -

At each folder command, but also every second, the active folder, either in an Explorer window ("This computer window") or in a file dialog (like File open or File Save As) will be caugth and put in a list.

- -

At the command recent folders the list is displayed and with choose # you can make your choice.

- -

Wishes:

-

Future wish would be to have a background window that can display the recent folders list all the time. The I could implement the command recent folders #. Anybody who can make such a window, either in pywin32 of in wxPython? Or maybe in another way?

- -

Implementation

  • In the configuration file _folders.ini, you can set the variable track folders history to the number of items you want to have in your list:
- -

[general]
-(...)
-track folders history = 20

-

Set to 0 or delete the option if you want to switch it off. -From then the folders you call or visit manually are tracked.

-
  • The grammar folder uses the setTimerCallback function of NatLink, to visit the function manageRecentFoldersList each second. This time can be adjusted of course.
  • With the command recent folders a messagebox is shown with the list of recent folders. A special grammar natspeak_dialog.py handles this window. With choose # you can choose your option, or you can Cancel the window with OK or Cancel.
  • The natspeak dialog grammar (recent folders dialog) extracts information from the _folders grammar, so it knows how many numbers it should put in the {number} list.
  • This natspeak_dialog grammar is a Unimacro IniGrammar, and can be configured and for example translated. This has been done into Dutch. Simply say edit natspeak dialog (only after the dialog window has been displayed, otherwise the grammar is not loaded) to change things or say show natspeak dialog to show the options. (In Dutch bewerk natspeak dialoog of toon natspeak dialoog)
-
- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/folders/virtualdrives.html b/website unimacro/html/grammars/globalgrammars/folders/virtualdrives.html deleted file mode 100644 index 9631936..0000000 --- a/website unimacro/html/grammars/globalgrammars/folders/virtualdrives.html +++ /dev/null @@ -1,133 +0,0 @@ - - -unimacro, grammars, global grammars, folders, virtual drives - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
  Details
  Actions
  Virtual drives
  Environment variables
  Track folders history
  Remember
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Virtual drives

-

Like "drive letters" (C, D, etc), with this grammar also virtual drives can be defined, which have two or more lower case letters as name.

- -

If for example your program files folder is C:\program files, you can define virtual drive pf pointing to that folder. For subfolders in the definition of folders (and also for definition of files) you can use such a virtual drive name.

- -

For more consistency on different computers now also environment variables can be used, like %HOME% and %PROGRAMFILES%. So using virtual drive pf is identical to using %PROGRAMFILES%. See -the page about these environment variables.

- -

Other examples are md pointing to your my documents folder (also %HOME%), nl pointing to the NatLink folder etc.

- -

You can define these virtual drives in the section virtualdrives in the file folders.ini (call edit folders).

- -

When having different computers with analogous folder names, but different root folders, the folders inifile only has to be adapted for these virtual drives.

- -

A new more powerful advantage of these virtual drives is the possibility to include all files or folders of a subdirectory.

- -

On letter trick

-

When you have different computers on a network with equivalent folder structures on some drives, you can make a network connection to such a remote drive and use the on letter option. See detail page.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/folders/xplorer2.png b/website unimacro/html/grammars/globalgrammars/folders/xplorer2.png deleted file mode 100644 index 62c8563..0000000 Binary files a/website unimacro/html/grammars/globalgrammars/folders/xplorer2.png and /dev/null differ diff --git a/website unimacro/html/grammars/globalgrammars/general/actions.html b/website unimacro/html/grammars/globalgrammars/general/actions.html deleted file mode 100644 index 062a8dc..0000000 --- a/website unimacro/html/grammars/globalgrammars/general/actions.html +++ /dev/null @@ -1,117 +0,0 @@ - - -unimacro, grammars, global grammars, general, actions - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
  Actions
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Actions used by grammar_general

-

The search rule uses actions, -which can be specialised for different programs.

- -

The basic action is SEARCH, which must be called with a direction ('up' or 'down') and an optional text. The rule in the grammar _general uses the form with a text.

- -

The following meta actions are used inside the action SEARCH (with text):

- -

start search  (default {ctrl+f})
-start back search (default not there, not in use yet)
-
-search go (after filling in the characters to search for, default {enter}

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/general/index.html b/website unimacro/html/grammars/globalgrammars/general/index.html deleted file mode 100644 index b0c7e4e..0000000 --- a/website unimacro/html/grammars/globalgrammars/general/index.html +++ /dev/null @@ -1,177 +0,0 @@ - - -unimacro, grammars, global grammars, general - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
  Actions
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Description of the _general grammar

-

In this grammar a lot of miscellaneous commands, (including some test commands) are brought together.

- -

Searching for characters

-

For starting a search, or a discrete continuation, this command can be used.

- -

The commands work together with the continuous search commands as described in -repeat/searching. See there for more information!

- -

This is a vulnerable mechanism, should be investigated more.

-

Highlight

-

highlight <dgndictation>

-

Searches for the dictated text. Started as a one shot application for Shane Delmore.

- -

The meta actions startsearch and startgo possibly need fine tuning for some applications, see meta actions.

- -

Format variables

- - - - -

Command

result

camel <dgndictation>

"camel top down" gives "topDown"

camel back <1..5>

the last words are cameled

- -

 

-

You need to specify which formatting is desired, you can choose your own spoken word like "camel" above.

- -

You do this by editing the _general.ini config file, say "edit general", and fill in in section:

- -

[formatvariable]
-camel = camel

  • The second word, after the =, is the trick, which must be taken literally from the table below.
  • The spoken word is before the =.
- - - - - - - - - - - -

the trick

the action performed

camel

var like this -> varLikeThis

studly

var like this -> VarLikeThis

dotword

var like this -> var.like.this

jive

var like this -> var-like-this

score

var like this -> var_like_this

- -

 

-

Task switching

-

Is now moved to the grammar _tasks

- -

extracting information

- - - - - - -

command

gives

give window info|information

this information about the active window

give user info|information

gives information about the current user, including BaseModel and BaseTopic

give Unimacro info|information

gives information about Unimacro, version, base directory

- -

 

-

Hyphenate phrase (capitalized)

-

You can turn the last spoken phrase (or selected text), the last word or the last several words into all-capped hyphen separated text: -(command will be inserted in release 3.7foxtrot, and 3.8)

- - - - - -

command

gives

Hyphenate phrase

Hyphenates the last spoken phrase OR the selected text

Hyphenate last (word | (2..5) words)

Hyphenates the last word or the last several words

- -

 

-

Example:

-

John Smith becomes John Smith J-O-H-N S-M-I-T-H

-

Note: -The clipboard is used by this macro, but previous contents are saved at the beginning of the macro and at the end restored again.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/keystrokes/grammar.html b/website unimacro/html/grammars/globalgrammars/keystrokes/grammar.html deleted file mode 100644 index 9961bb4..0000000 --- a/website unimacro/html/grammars/globalgrammars/keystrokes/grammar.html +++ /dev/null @@ -1,130 +0,0 @@ - - -unimacro, grammars, global grammars, keystrokes, grammar - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
  Grammar
  Modes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

The grammar definition

-

Basics

-

The basic rule should have been:

-

<keys> exported = ({norepkey} | {repkey} [{count}])+;

- -

Implementation

-

Because with these quasi-recursive rules there have been problems in the past (introduced several NatSpeak versions ago) this basic rule has been changed into (and enhanced with the <before> rule):

- -

<keys> exported = <firstkey> [<stdkeys>+] ;
-<firstkey> = <before>  | <stdkeys>;
-<stdkeys> = ...

- -

And the further details are, including the <modifier>: rule:

- -

<stdkeys> = [ <modifiers> ] (<repkey>[<count>] | <norepkey>);
-<repkey> =  {repkey};
-<count> = {count};
-<norepkey> = {character} | {norepkey} | <effkey>;
-<effkey> = ( Eff|Function ) {effcount};
-<modifiers>  = (Cap | ‘All-Caps’ | Shift | Control | Alt|halt) + ;

- -

Lists

-

The lists {character}, {effcount} and {count} are filled in the python file. The other lists, {repkey} and {norepkey} are filled from the configuration file, so are user configurable. Even for a specific modes.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/keystrokes/index.html b/website unimacro/html/grammars/globalgrammars/keystrokes/index.html deleted file mode 100644 index d9f31e8..0000000 --- a/website unimacro/html/grammars/globalgrammars/keystrokes/index.html +++ /dev/null @@ -1,188 +0,0 @@ - - -unimacro, grammars, global grammars, keystrokes - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
  Grammar
  Modes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Hitting (multiple) keystrokes

-

Many improvements in release 4.0.
-
-WARNING: “_keystrokes” is a powerful grammar, but it can also hit too easily when you do not want so.
-
-So switch this grammar on when you really use it, and otherwise keep it switched off!

- -

This grammar was originally designed to provide a multiple keystrokes alternative for DragonDictate. DragonDictate could handle only one word or (keystroke) command in each phrase, but was responding very fast. With the introduction of NaturallySpeaking this responsiveness was much less (slower), so it seemed useful to provide the possibility of saying more keystrokes in one phrase.

- -

So, with this grammar you can hit multiple keystrokes in one command, simple, see first examples below, and extended, with an optional mouse click in front, and arbitrary dictation at the end.

- -

Simple keystrokes, examples:

  • Repeatable keys, like up, page down and tab, which can have an optional count (so you can say the up, but also up 3) and
  • Non-repeatable keys like alpha, bravo, home, context menu.
- - - - - - - - - - - - - - - - - -

command

produces

alpha bravo Charlie delta

abcd

up right page down two word right three

silly example moving around the screen

alt foxtrot Oscar

possible file open command

control papa OK

print file in one command

home delete three

go to beginning of line and delete three characters

end of line backspace 5 Zulu

 

word left 2 delete 3

go 2 words to the left and delete 3 characters

control (eff|function) one

show or hide the ribbon in Office (word, excel, outlook, etc)

- -

 

-

Examples of extended keystrokes:

- - - - - - - - - - - - -

command

produces

here space

clicks at the place where the mouse is, and insert a space (splitting words)

click backspace

similar: clicks, and hit the backspace key (merging two words)

here click

same as "mouse click", same as "click", but only "here" is not allowed

here context menu

do a right click, so showing the context menu on the place where the mouse is

here dictate this is a demonstration

inserts to dictate "this is a demonstration" at the position of the mouse pointer

[here] double click dictate replacement

selects the word under the mouse pointer and replace by the text "replacement"

- -

(the word here is optional)

- -

 

-

Controlling keystrokes and alternative command sets:

- - - - - - - - - - - - -

command

comment

switch on/off keystrokes

enable or disable this grammar (this is a command from the grammar _control).

show keystrokes

Shows the current possible keystrokes commands if grammar is enabled.

- -

Shows dialog box if grammar is disabled

-

(this is also a command from the grammar _control)

do keystrokes simple

Doing all the keystrokes, but without mouse clicking or optional dictation

do keystrokes extended

Doing all the keystrokes as in the above examples, including here or some clicking at the beginning and dictate ... at the end

codes of

Prints the codes of the keys that follow, instead of doing the keystrokes itself (useful when defining commands for these or other grammars or in Vocola command files)

here context menu

special case, instead of (left) clicking and then the shift+f10 key, a right click is performed

- -

 

-

Modifiers

-

Before each key one or more modifiers (shift, alt and/or control) can be spoken. These modifiers are augmented with Cap and -All-Caps.

- -

Dutch: hoofdletter, grootschrift, sjift, shift, control, alt

- -

Modes

-

In this grammar " Modes " are introduced, so that in some programs special -keystrokes can be defined. These can be used in combination with all the -other keystrokes.

- -

More info follows soon... some things above are NOT implemented in the current beta version...

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/keystrokes/modes.html b/website unimacro/html/grammars/globalgrammars/keystrokes/modes.html deleted file mode 100644 index d4d3ab2..0000000 --- a/website unimacro/html/grammars/globalgrammars/keystrokes/modes.html +++ /dev/null @@ -1,184 +0,0 @@ - - -unimacro, grammars, global grammars, keystrokes, modes - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
  Grammar
  Modes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Modes

-

Each time when a new window is entered or when the window title changes, a check is performed about the "mode" the keystrokes grammar is in, and whether the grammar rules should be active or inactive.

- -

Active or not?

-

In the ini file _keystrokes.ini look at the following section:

- -

[general]
-active = all
-ignore = natspeak: mouse grid; emacs
-exclusive modes = minesweeper

- -

It means that in principle all windows should use this grammar. But there are a few windows ignored ( the rules are deactivated when such a window is in the foreground). In this example NatSpeak itself if the mouse grid is on, and Emacs.

- -

For the special mode "minesweeper" the grammar is put in exclusive mode, see below.

- -

Special modes

-

For certain applications a special mode, with extra keys is defined. Example:

- -

[modes]
-python = pythonwin
-vba = winword, excel: visual basic

- -

This section tells the grammar that if pythonwin is found as program name, we should look into the mode python. If either Word or Excel is found as program, and visual basic is found in the window title, then look into the mode vba. (Window titles are all converted to lowercase.)

- -

Defining general keys:

-

In the sections is [repkey] and [norepkey] keys can be defined to be active in all applications. A few examples:

- -

[repkey]
-Backspace = {backspace}
-Cancel = {esc}
-Delete = {extdel}
-
-[norepkey]
-Context Menu = {shift+f10}
-End Document = {ctrl+extend}
-End of Document = {ctrl+extend}

- -

Defining special keys for modes:

-

As first example take the mode vba:

-

[repkey vba]
-Step = {f8}
-Step Over = {shift+f8}
-
-[norepkey vba]
-Complete = {ctrl+j}
-Complete OK = {ctrl+j}{tab}
-Equal Sign = ” = ”
-Minus Sign = ” - ”

- -

For mode python you could define (only norepkeys here):

- -


-[norepkey python]
-Assign = ” = ”
-COLON = :
-COMMA = ,
-Complete = {alt+/}
-Equal Equal = ” == ”

- -

Games

-

Also for several games this "modes" method has proven to be useful in making the game work with speech recognition.

- -

I include here the example of minesweeper, with also adding exclusive mode, so only the keystrokes defined in this grammar are recognised.

- -

[modes]
-minesweeper = minesweeper

-

and:

-

[norepkey minesweeper]
-top left = {extup 9}{extleft 9}
-bottom left = {extdown 9}{extleft 9}
-center = {extdown 9}{extup 4}{extleft 9}{extright 4}
-top right = {extright 9}{extup 9}
-bottom right = {extright 9}{extdown 9}
-new game = {f2}

- -

Exclusive mode for minesweeper

-

With the exclusive mode set for minesweeper (see section [general], above), we can ensure that only the words currently defined in this grammar are recognised. (work in progress for next beta release)

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/latex/configuration.html b/website unimacro/html/grammars/globalgrammars/latex/configuration.html deleted file mode 100644 index 58058c1..0000000 --- a/website unimacro/html/grammars/globalgrammars/latex/configuration.html +++ /dev/null @@ -1,116 +0,0 @@ - - -unimacro, grammars, global grammars, latex, configuration - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
  Configuration
  Syntax highlighting Word
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Configuration of latex grammar

  • Say edit latex to edit the properties of this grammar.
- -

General options

-

In the section [general] you can set the following option:

-

initial on = 1

meaning this grammar is switched on when NatSpeak (and NatLink including Unimacro) starts. Th-

- -

 

-

Contents

-

In the other sections you can define your specialized command sets.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/latex/highlightinginmicrosoftword.html b/website unimacro/html/grammars/globalgrammars/latex/highlightinginmicrosoftword.html deleted file mode 100644 index d96d248..0000000 --- a/website unimacro/html/grammars/globalgrammars/latex/highlightinginmicrosoftword.html +++ /dev/null @@ -1,192 +0,0 @@ - - -unimacro, grammars, global grammars, latex, Syntax highlighting Word - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
  Configuration
  Syntax highlighting Word
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

How to configure Word for latex highlighting

-

For completeness, below is the necessary Visual Basic functions for rudimentary latex highlighting in Microsoft Word. By adding these three functions to the Word macro system, all files with the extension .tex will be automatically highlighted everytime they are opened (In Word 2010 click "review"-> "macros"->"create". Bind the AutoOpen function to a keyboard shortcut to reformat the documents during editing (file->options->customise ribbon, keyboard shortcuts: customise...). This came to great effect be combined with the "edit all latex" and "edit ready" commands from the _edit grammar.

- -

Sub AssociateStyle(pattern As String, style As String, colour As Long)
-‘Associate Styles with headings and quotations
-‘Ensure Tools/References/Microsoft VBscript Regular Expression 5.5 is on
-
-Dim regEx, Match
-‘Dim Matches As MatchCollection
-Dim str As String
-Dim region As Range
-
-Set regEx = CreateObject(“VBScript.RegExp”)
-regEx.pattern = pattern           ’ Set pattern.
-regEx.Global = True
-regEx.MultiLine = True
-
-‘obtain matched RegExp.
-Set Matches = regEx.Execute(ActiveDocument.Range.Text)
-‘MsgBox (Len(ActiveDocument.Range.Text))
-‘MsgBox (Matches.Count)
-‘loop through and replace style
-For Each Match In Matches
-    Set region = ActiveDocument.Range(Match.FirstIndex, Match.FirstIndex + Len(Match.Value))
-    If colour > -1 Then
-   ’     MsgBox (Match.Value)
-    ’    MsgBox (Match.FirstIndex)
-     ’   MsgBox (Len(Match.Value))
-        region.Font.ColorIndex = colour
-    Else
-        region.style = _
-        ActiveDocument.Styles(style)
-    End If
-Next
-
-End Sub
-
-Sub ReplaceMarkup(pattern As String, markup As String)
-
-    Selection.Find.ClearFormatting
-    Selection.Find.Replacement.ClearFormatting
-    With Selection.Find
-        .Text = pattern
-        .Replacement.Text = markup
-        .Forward = True
-        .Wrap = wdFindNo
-        .Format = False
-        .MatchCase = False
-        .MatchWholeWord = False
-        .MatchAllWordForms = False
-        .MatchSoundsLike = False
-        .MatchWildcards = True
-    End With
-    Selection.Find.Execute Replace:=wdReplaceAll
-End Sub
-
-
-Sub AutoOpen()
-’
-’ AutoOpen Macro
-’ Macro recorded 5/6/2009 by reagle
-’
-FileName = ActiveDocument.FullName
-Extension = Right(FileName, 3)
-If Extension = “tex” Then
-        Selection.WholeStory
-        Selection.Font.Name = “Georgia”
-        Selection.Font.Size = 12
-        Selection.ParagraphFormat.LineSpacing = 16
-        Selection.style = “Body Text”
-        ‘Call ReplaceMarkup(”\\emph\{(*)\}”, ”<<\1>>”)
-        Call AssociateStyle(”[{}]”, “Quote”, wdGreen)
-        Call AssociateStyle(”\\.*?}”, “Quote”, wdDarkBlue)
-        Call AssociateStyle(”^\\title{”, “Heading 1”, -1)
-        Call AssociateStyle(”^\\chapter{”, “Heading 1”, -1)
-        Call AssociateStyle(”^\\section{”, “Heading 1”, -1)
-        Call AssociateStyle(”^\\subsection{”, “Heading 2”, -1)
-        Call AssociateStyle(”^\\subsubsection{”, “Heading 3”, -1)
-        Call AssociateStyle(”^\\begin{quotation}”, “Quote”, -1)
-        Call AssociateStyle(”\$.*?\$”, “Quote”, wdRed)
-        Call AssociateStyle(”[^\\]%.*?$”, “Quote”, wdGray25)
-
-End If
-
-End Sub

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/latex/index.html b/website unimacro/html/grammars/globalgrammars/latex/index.html deleted file mode 100644 index bd5188f..0000000 --- a/website unimacro/html/grammars/globalgrammars/latex/index.html +++ /dev/null @@ -1,164 +0,0 @@ - - -unimacro, grammars, global grammars, latex - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
  Configuration
  Syntax highlighting Word
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Making latex markup

-

Also see the demo video made by Frank Olaf Sem-Jacobsen, who also wrote this grammar:

- -

The grammar:

- - - - - - - - - - - - -

command

comment

begin {floating} dictation

Insert a \begin and \end environment of type floating, with the optional dictation formatted as a label.

reference ({floating} | {label}) dictation

Insert a reference of type floating or label (defined in the ini file) with free dictation as label name.

label ({floating} | {label}) dictation

Create a label of type floating or label with free dictation as label name.

{commands} with [ (arguments [{arguments}]) | (that | (this line)) ] [(and | with) label]

Insert a latex command with optional arguments from the ini file, from the last utterance (select that), or the current line, and add an optional label.

add option [{options}]

Add an option ([]) before the braces of a command (typical use is to add options to \documentclass{}). In the case of multiple options, each option will be separated by a comma.

replace {placeholders} with dictation

Select a placeholder and replace it with optional dictation.

- -

 

-

The latex commands can be defined as comprehensive templates together with placeholders. For simple commands with arguments, the curly braces are optional.

- -

[commands]
-E. P. S. Figure = \epsfig{file=@contents}
-author = \author
-horizontal space = \hspace{}
-include graphics = \includegraphics[width=@size\textwidth]{@contents}

- -

The placeholders are prefixed with an @ to avoid confusion with existing text, and defined in a separate section in the ini file.

- -

[placeholders]
-caption = @caption
-contents = @contents
-label = @label
-size = @size

- -

The command to create latex commands can operate in three modes. If the keyword arguments is given, add arguments from the "arguments" section in the ini file is inserted between the curly braces following the command. If the keyword "that" is given, the command will select the last utterance using "select that" and use this as an argument to the command. A typical use is "emphasise that". Finally, if the keyword "line" is given, the command will use the contents of the line as an argument to the command. A typical use of this functionality is "section line" which makes the current line into a section heading.

- -

The "label" keyword to this command will cause an appropriate label to be added on the next line after the command itself. This is only applicable for the commands that also are listed in the "label" section of the ini file, in all other cases the "label" keyword will be ignored.

- -

[label]
-chapter = chapter
-paragraph = paragraph
-section = section
-subfigure = subfigure
-subsection = subsection
-subsubsection = subsubsection

- -

The floating environments used by the "begin" command can be anything that is used in a "begin" -- "end" context. The alternatives are defined in the appropriate "floating" section in the ini file.

- -

[floating]
-algorithm = algorithm
-align = align
-bottom stuff = bottomstuff
-corollary = corollary
-definition = definition
-document = document
-enumerate = enumerate

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/lines/implementationdetails.html b/website unimacro/html/grammars/globalgrammars/lines/implementationdetails.html deleted file mode 100644 index 7dedf0a..0000000 --- a/website unimacro/html/grammars/globalgrammars/lines/implementationdetails.html +++ /dev/null @@ -1,194 +0,0 @@ - - -unimacro, grammars, global grammars, lines, Implementation details - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
  Implementation details
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Implementation details

-

actions.ini

-

In the inifile actions.ini the implementation for different programs is realized. When you call edit actions this file will open for inspection and editing.

- -

gotoline n

-

The basic action for jumping to a line is the meta-action gotoline n, called from the lines grammar with the wanted line number for n.

- -

In the default section you will find:

-

[default]
-(...)
-gotoline n = {Ctrl+ExtHome}{ExtDown n}{ExtUp}

- -

So when there is no other way to jump to a line, you simply go to the top and then down the needed number of lines.

- -

Here are some applications which do it another way:

-

(code is the program name of Visual Studio)

-

[code]
-gotoline n = {ctrl+g}; n{enter}
-realhome = {end}{home}{home}
-
-[emacs]
-gotoline n = EMACS goto-line; n{enter}
-
-[excel]
-gotoline n = {ctrl+g}; n:n{enter}
-
-[komodo]
-gotoline n = {Ctrl+g}; W; n;{enter}
-realhome = {alt+home}
-
-[pythonwin]
-gotoline n = {ctrl+g}; n{enter}; {home}
-
-[textpad]
-gotoline n = {ctrl+g}; n{enter}
-
-[uedit32]
-gotoline n = {ctrl+g}; n{enter}
-
-[win32pad]
-gotoline n = {ctrl+g}; n{enter}

- -

Note: the excel action is overridden by the function metaaction_gotoline in the excel actions class module.

- -

line numbers modulo hundred

-

When you set this option to true in the _lines.ini file (say edit lines):

- -

[general]
-line numbers modulo hundred = T

-

You will be able to use this feature for Excel, win32pad and Visual Studio Code (New, February 2021).

- -

The clue is in the actions classes, which can provide, per application, the calling grammar with the current line number from the function getCurrentLineNumber. If this function does not return a valid number, this option is not available for the foreground application, as for example Komodo.

- -

Visual Studio (2021)

-

For Visual Studio, you need to add the extension copy current line number to clipboard, and attach the shortcut key {ctrl+alt+c} to this extension.

- -

The file code-actions.py in the folder actionclasses of Unimacro does the work. See there for more detailed instructions.

- -

Komodo IDE

-

For this commercial program, the trick now also works (February 2021):

- -

You need to make a "Userscript" in Komodo:

  • Go to View, Tabs & Sidebars, Toolbox
  • Click on the Tools pictogram (right top) and choose New Userscript
  • Give it a name, eg "copy current line number", keep Javascript.
  • Give it the Key Binding Alt+Shift+C. (When you need another Key Binding, you also need to edit komodo-actions.py in the folder actionclasses.)
- -

Now paste the following code in the Userscript:

-

var editor = require(“ko/editor”);
-var linenum = editor.getLineNumber(editor.getCursorPosition());
-var clipboard = require(“sdk/clipboard”);
-clipboard.set(linenum.toString());

-
  • Probably you need to restart Dragon, and you can try the feature.
  • Note: when you want set/clear debug information (about the timing issues), change line 48 of the file komodo-actions.py in the folder actionclasses (debug=1 or debug=0).
- -

Emacs (special!)

-

Note: for Emacs the line module hundred trick can be implemented by inserting the correct function, mdl-goto-line-mod100 instead of goto-line.

- -

simpleactions

-

These are the actions like <<copy>>, <<cut>>, <<delete>>, <<duplicate>>, which can be investigated in the actions.ini file.

- -

move copy actions

-

These actions require some more tuning in some applications. Details will follow.

- -

Paragraph actions

-

These are tested in Word, and basically meant for this program.

-

In the actions.ini file there are now analogous to "selectdown": "selectparadown" and to "selectline" there is "selectpara":

- -

selectpreviouspara = {ctrl+up}{shift+ctrl+up}
-selectpara = {ctrl+down}{ctrl+up}{shift+ctrl+down}
-selectparadown n = {shift+ctrl+down n}
-selectparaup n = {shift+ctrl+up n}

- -

These new meta-actions are found in the file sample_ini/actions.ini (March 2016, QH)

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/lines/index.html b/website unimacro/html/grammars/globalgrammars/lines/index.html deleted file mode 100644 index 68eac55..0000000 --- a/website unimacro/html/grammars/globalgrammars/lines/index.html +++ /dev/null @@ -1,190 +0,0 @@ - - -unimacro, grammars, global grammars, lines - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
  Implementation details
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Going to and doing actions with lines

-

With the grammar lines you can easily jump to lines, numbered or relative to the current line, and perform additional actions.

-
  • Lines can be selected, with or without line number
  • Lines (numbered or relative) can have an additional action, like delete
  • Lines can be moved or copied up or down or to another numbered line
  • Selected lines can have the same actions by the keyword THAT
  • For some programs: jump to line numbers modulo hundred
  • Add some paragraph (para) commands (March 2016)
- -

This grammar relies heavily on -actions, -because the keystrokes that perform the different actions are very different across different applications. Implementations are now made or tried for Win32Pad, Excel, Emacs, Pythonwin, Komodo and UltraEdit.

- -

The grammar (basic, without translations or synonyms):

- - - - - - - - - - - - - - - - - - - - -

command

comment

line {number}

Jump to the line. Relies on the grammar number, which is tested in English and Dutch

line {number} {action}

Do an additional action, like select, cut, copy, paste, paste over, duplicate (see table below)

line {number} through {number} [{action}]

select or do action on more (numbered) lines (you can change "through" to "to" with edit lines if you wish)'],

line {number} plus {count} [{action}]

select or do action on more lines (first numbered)

{count} lines {action}

Do action for more lines

next|previous line [{action}]

goto or do action for next or previous line, so after or before the current line

next|previous {1-20} lines {action}

Do action for more lines, after or before the current line

{line definition} copy|move up|down {count}

copy or move the lines up or down

{line definition} copy|move to {number}

copy or move the lines to the specified line number

THAT {action}

instead of {line definition} also the keyword THAT can be taken

- -

 

-

Para actions, basically for Word:

- - - - - - - - -

command

comment

{count} paras {action}

Do action for more paragraphs

next|previous para {action}

Goto or do action for next of previous para, so after or before the current para

next|previous {1-20} paras {action}

Do action for more paras, after or before the current para

THAT {action}

instead of {para definition} also the keyword THAT can be taken

- -

 

-

Actions

-

Here is part of the list simpleactions, corresponding to {action} in above table:

- - - - - - - - - - - - - - - - - - - - - - - - - -

spoken form

action

comments

copy

<<copy>>

the copy action is nearly always {ctrl+c}

copy to DragonPad

HW copy that to DragonPad

actions do not have to be keystrokes

cut

<<cut>>

 

delete

<<delete>>

 

duplicate

<<duplicate>>

 

edit

HW edit that

link this grammar to the grammar edit

emacs

HW edit that python code, 'link to the grammar edit, see more information about see -connection with voicecoder , including a little demo movie. A bit obsolete end 2013.

end

<<endafterselection>>

leave the cursor at the end of line

paste

<<homeafterselection>><<paste>>

paste, but prevent overwriting the selection here

paste over

<<paste>>

paste over the selection

select

 

if you go to one line, this action selects the line. When you want more lines, this action does nothing extra.

(un)comment

{alt+3} and {alt+4}

only for Pythonwin

- -

 

-

Line numbers modulo hundred

-

For some programs, who can "return" the current line number to this grammar with introspection, you can call "line numbers modulo hundred".

- -

For example, when you are in line 1375, with "line eighty", you go to line 1380.

- -

This feature has been implemented for a limited number of applications: win32pad, excel, Visual Studio (new, February 2021) and Komodo (a commercial IDE program, also new February 2021). See:

- - -

Introspection

-

With the commands show lines and edit lines you can inspect the grammar and change things.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/modes/index.html b/website unimacro/html/grammars/globalgrammars/modes/index.html deleted file mode 100644 index 067beab..0000000 --- a/website unimacro/html/grammars/globalgrammars/modes/index.html +++ /dev/null @@ -1,143 +0,0 @@ - - -unimacro, grammars, global grammars, modes - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Modes

-

This grammar is developed after a question of Angela Wigmore about making special modes for MathML and LaTeX. For testing I included also a password mode.

- -

The grammar is global command but at start only the control rule is switched on.

- - - -

command

comment

{mode} mode (on | off)

switch on or off one of the modes

- -

 

-

The modes are normal, password, latex and math.

- -

If you switch on one of the modes, the rules for that specific mode are switched on, possibly exclusive. See control variables at the top of the grammar.

- -

Password mode

-

This mode has defined the rules: <letters>, <ucletters> (upper case) and the numbers rule.

- -

So you can say for example alpha bravo Cap charlie delta and abCd should appear.

- -

The numbers rule is a more complicated one which needs probably the always the word number in front, so dictate alpha number 2 Cap bravo number 2 hundred twenty three to get a2B223. As long as the mode is exclusive it is possible to experiment with leaving out the word number.

- -

The lists

-

The different rules can use lists, which must be filled. This can be done in several ways:

-
  • the letters are predefined in ICAlphabet (in the super class)
  • the number parts are already defined in the superclass
  • the operators and the Greek letters (LaTeX and Math mode) can be defined in the ini file _modes.ini. Study the examples.
- -

Translations

-

If you want to use the grammar in another language (Dutch, French), command words and list words have to be translated. The Unimacro IniGrammar*as this possibility, and most can be done in the appropriate *ini file. So if you go French, and you say the translated version of Edit modes, the French version of the inifile is opened, and you can put in all the translations of the grammar words and of the several list words.

- -

For the letters some extra work probably has to be done in the superclass (natlinkutilsbj.py).

- -

For the number part also extra work should be done, probably best first in the grammar _number. Most things should be adapted in the file natlinkutilsbj.py).

- -

Exclusive

-

If exclusive rules are used a few special functions should be included in order to stop the exclusive mode if the microphone is toggled. See the source file for this.

- -

Repetition/quasi recursive rules

-

Note the careful way the + sign for the repetition of rules is used. This way was adopted in the grammar _keystrokes. As this grammar can hit very often, it should be switched off when you use modes in a non-exclusive way. Be careful with changing this way of repetition.

- -

Reuse of (translated) ini files

-

If you make a better inifile than the previous one, in English or in another language, and you are on subverion (SVN), you can leave this one in appropriate subdirectory of sample_ini. After committing others can profit from this.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/number/index.html b/website unimacro/html/grammars/globalgrammars/number/index.html deleted file mode 100644 index 8c7b190..0000000 --- a/website unimacro/html/grammars/globalgrammars/number/index.html +++ /dev/null @@ -1,164 +0,0 @@ - - -unimacro, grammars, global grammars, Number grammar - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
  Number extended
  Use in other grammars
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Number dictation (_number simple)

-

This grammar uses very smart grammar rules in order to speak virtually any number.

-
  • These number grammar rules can be used on its own (with this grammar), for example when dictating many numbers in your Excel worksheet.
  • This grammar serves also as an example on how to use the number grammar rules in other grammars, like -Firefox browsing or -_lines.
  • For more complex examples see number extended.
  • For instructions of implementing in your own grammars, see Use in other grammars.
- -

Default name

-

The default name is "number simple" (Dutch getal simpel).

- -

Basic grammar rules

- - - - - - -

grammar rule

comment

Number {integer}

print the number you call (see customisation below)

Number minus {integer};

print a negative number

Number {float};

print fractional number with point or dot (Dutch punt or komma)

- -

 

-

Easy examples:

- - - - - - - - - - - - -

command

result

Number one

1

Number three hundred twenty three

323

Number three twenty three

the word hundred is not needed, same result: 323

Number one two tree four five

12345

Number minus one

 -1

Number three point seven

3.7

- -

 

-

More examples:

- - - - - - - - - - - - -

command

result

Number oh thirty four

a number can have leading zero's (dictated as 'oh' or 'zero'): 034

Number minus twenty three fifty four dot fifty

 -2354.50

Number three million two hundred thousand twenty five

dictate with the words million, thousand and hundred (avoid the word and): 3200025

Number three twenty three forty four sixty six ninety nine eight

dictate very long numbers possible (leave away the words million, thousand and hundred!the): 3234466998

Number one zero two zero three zero four zero

With single digits this rule sometimes seems not to work with a very long sequence: 10203040

Number three twenty one forty fifty six seventy seventy eight ninety nine eight

But surprising long numbers can be done this way: 32140567078998

- -

 

-

Customisation:

-

For different applications the possible actions after printing the number can be customised. In the numbers simple grammar (_numbers simple.py) you can customize this in the function outputNumber. (Please report any changes.)

-
  • In Excel each number is followed by a tab key
  • In different browsers (IE, Firefox, Chrome, Safari) a number is followed by a tab key
  • In natspeak (DragonPad or the dictation box) a number is followed by a enter key.
- -

Spoken forms

-

The number grammar rules use the numbers spoken forms mechanism.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/number/numberextended.html b/website unimacro/html/grammars/globalgrammars/number/numberextended.html deleted file mode 100644 index 8251544..0000000 --- a/website unimacro/html/grammars/globalgrammars/number/numberextended.html +++ /dev/null @@ -1,132 +0,0 @@ - - -unimacro, grammars, global grammars, Number grammar, Number extended - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
  Number extended
  Use in other grammars
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

More Number grammar rules in _number extended.py

-

These grammar rules serve as inspiration and code examples for use of the number grammar rules in more complex situations. See also for example the grammars _lines.py and firefox browsing.py.

-
  • If you want to use this grammar, please remove _number simple.py from the Unimacro directory and copy _number extended.py from the DisabledGrammars subdirectory into the Unimacro directory. Toggle the microphone or restart Dragon.
- -

Name

-

This grammar is named number extended (in Dutch getal uitgebreid).

- -

More grammar rules:

- - - - - - -

grammar rule

comment

(Number <number>)+

dictate more numbers in one phrase

Number <integer> Trough <integer>;

dictate a start and end of a range of numbers

Pair <number> And <number>;

dictate a numbers pair

- -

 

-

Examples:

- - - - -

command

result

Number three Number four Number seventy

More numbers can be dictated in one utterance, in Excel these will be put in subsequent cells: 3470

Pair twenty three point six And thirty point five

Other tricks can be invented, like dictating a number pair: (23.6, 30.5)

- -

 

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/number/useinothergrammars.html b/website unimacro/html/grammars/globalgrammars/number/useinothergrammars.html deleted file mode 100644 index d6efd8c..0000000 --- a/website unimacro/html/grammars/globalgrammars/number/useinothergrammars.html +++ /dev/null @@ -1,134 +0,0 @@ - - -global grammars, Number grammar, Use in other grammars - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
  Number extended
  Use in other grammars
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Number grammar rules in other Unimacro grammars

-

For simple use, take _number simple.py as example. For more difficult things study _number extended.py.

-
  • The definition of the number grammar rules and the processing functions is in the class definition of IniGrammar, in the file natlinkutilsbj.py.
  • Especially the rules <integer> and <float> are defined for use in another Unimacro grammar
  • The functions waitForNumber and collectNumber are used to initialize and finalize the process.
- -

The Steps

-

Step 1. Choose your set of grammar rules:

-

number_rules = natbj.numberGrammarTill999[language] # hundreds, really up to 99999 (99 hundred 99).
-number_rules = natbj.numberGrammarTill999999[language] # including thousands
-number_rules = natbj.numberGrammar[language] #  including millions

-
  • Take one of the lines above in your grammar specification.
  • Note with each set you can dictate long numbers with parts below 100: "number three twenty two fifty six nine"
  • Call the numbers grammar part with <integer> or <float>
- -

Step 2 or Step 3

-

In gotResultsInit or in your exported rule do initialisation and waitForNumber

-
  • Basically set self.waitForNumber('number').
- -

Step 4

-

In gotResults your number is collected with self.collectNumber().

-
  • In the simple example, the number (as string, see below) is now in the instance variable self.number.
- -

Step 5

-

You need to do something with this number. For example output to the foreground window and do some keystroke(s) following it. See the function outputNumber. As you see you can do different actions after printing the number depending on the program that is in the foreground.

- -

Numbers or Strings

  • Numbers are by default collected as strings. It is therefore also possible to dictate leading zero's.
  • When you want to collect an integer as an int (not as a string), give this as named parameter in self.collectNumber(asNumber=1)
  • A float is always returned (collected) as a string. No leading zero's of the first part are returned, and the latter part (behind the point or dot) can only be dictated as digits or numbers below 100.
- -

Spoken forms

-

This grammar and other grammars using large numbers now used to spoken forms mechanism, which is described in -numbers spoken forms.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/oops/index.html b/website unimacro/html/grammars/globalgrammars/oops/index.html deleted file mode 100644 index 4570793..0000000 --- a/website unimacro/html/grammars/globalgrammars/oops/index.html +++ /dev/null @@ -1,141 +0,0 @@ - - -unimacro, grammars, global grammars, oops - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

_oops grammar

-

With this grammar you can correct your last utterance (like "correct that"), but

-
  • you cannot change the alternatives
  • you can correct from dictate to command and vice versa.
- -

This grammar can also be instructed to log all your utterances, see below

- -

The grammar is very simple:

- -

command

oops

- -

 

-

The message is window is brought to the top, and the alternatives are shown. You are now in an exclusive grammar, and you can say only one of the following commands:

- - - - - - - -

command

explanation

(choose | format | delete | properties) 1..9

  • choose the alternative (like in Spell window)
  • format the word properties (not used very much, should be tested more)
  • delete the word (only if one word was dictated, could be extended)
  • get the properties of a word

cancel

cancel the oops command, and return to the previous window

choose 1..9 (medium | strong)

trained a chosen utterance with different intensity (the effect of this should be tested more thoroughly and discussed)

- -

 

- - -

after format 1..9

choose format 1..4

- -

 

-

log all utterances

-

This parameter can be set, or cleared in the inifile of this grammar. (say edit oops).

-
  • 1 or T (TRUE, True, true, t etc): switch this option on
  • 0 or empty or F: switch this option off
- -

All utterances are logged to a folder (inside the Unimacro folder) xxx_log/user (xxx the language, user the name of the user speech profile). For longer sessions this file is refreshed each hour. It may be best to put this grammar initial on = 0, so it doesn't work all the time.

- -

Note

-

This is a tricky grammar file, because the allResults-flag is -turned on. Moreover the oops grammar uses exclusive mode when inside. This exclusive mode can always be skipped if "cancel" is said, or if the microphone is turned off.

- -

This grammar could be improved a lot, for example by recording deleted and formatted words in files, which can be read in a new speech profile. Also formatting or deleting words in a phrase could possibly be chosen. Work to do if this grammar proves useful.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/repeat/actions.html b/website unimacro/html/grammars/globalgrammars/repeat/actions.html deleted file mode 100644 index 8404840..0000000 --- a/website unimacro/html/grammars/globalgrammars/repeat/actions.html +++ /dev/null @@ -1,130 +0,0 @@ - - -unimacro, grammars, global grammars, repeat, actions - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
 Repeat
  Actions
  Searching
  Nederlands
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Actions needed for this Grammar

-

Searching:

-

The search uses actions, which can be specialised for different programs.

- -

The basic action is SEARCH, which must be called with and action ('up' or 'down') and an optional text. The repeat grammar only uses the variant in which the optional text is NOT given. -When inside the action SEARCH several detail actions are used for this case:

- -

search forward (default <<search start>> followed by <<search go>>, but preferably overruled e.g. by {F3})
-search back    (default not there, but overruled e.g. by {shift+f3})
-
-leftafterforwardsearch n
-leftafterbacksearch n

- -

these last two variables take a count, which is the length of the search string. In most programs this count can be ignored, and both commands result in a simple {left}.

- -

In emacs for example leftafterforwardsearch must do {left n}, and leftafterbacksearch must do nothing.

- -

I can imagine the commands are extended with rigthafterforwardsearch and rigthafterbacksearch, in order to position the cursor after the search text.

- -

See the sections on actions and -grammar general for more details.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/repeat/index.html b/website unimacro/html/grammars/globalgrammars/repeat/index.html deleted file mode 100644 index 6935c2d..0000000 --- a/website unimacro/html/grammars/globalgrammars/repeat/index.html +++ /dev/null @@ -1,191 +0,0 @@ - - -unimacro, grammars, global grammars, repeat - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
 Repeat
  Actions
  Searching
  Nederlands
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

repeat, moving the cursor, mouse and search and repeating the last command

- -

With this Grammar automatic movements can be made.

-

This grammar is in revision, contact Quintijn if you want the files/cooperate!

-
  • moving the cursor, in all directions, a number of steps or at a variable speed.
  • moving the mouse, ditto
  • repeating the last search
  • repeating the last command (a bit more vulnerable than the other commands)
- -

This grammar is based on Joel Gould's _mouse.py and Jonathan Epstein's -version of _generic_movement.py.

- -

Moving the cursor

-

Start moving with:

-

Start (Moving|Selecting|Scrolling) (<speed>|<direction>|<count>)+

- -

with:

-

speed = steady | slow | fast | very slow | very fast
-direction = up | down | left | right
-            but also: (page | paragraph | line) (up | down) or
-            word left | word right
-count = 1 to 20, 25, 30, 35, 40

- -

more directives can be spoken in one command (the + sign after the parens).

- -

When moving you are in the so-called exclusive mode: only commands described below our recognised. An icon is shown in the system tray, and moving can be stopped by

- -

stop | OK

-

Moreover the movement can be controlled by commands like:

-

another speed
-acceleration: faster | slower | much faster | much slower
-another direction
-another count
-reverse direction with: reverse | reverse direction | back | go back

- -

and the movement can be hold and resumed by:

-

hold on | hold it | wait
-go on | continue
-another speed
-another direction
-another count

- -

When moving, you can enter -into selection mode by calling the word "select".

- -

Please try what happens if you start with "scrolling" (eg with Start Scrolling down)

- -

When moving you can also call:

-

 begin [of] line | end [of] line | begin [of] document | end [of] document

- -

Mousing:

-

These commands work with the same mechanism as moving the cursor. They should be worked out with more commands for practical purposes. Start with:

- -

MOUSE (MOVE | DRAG | Start Moving | Start Dragging) [<speed> | <direction> | <count>]+

- -

with

-

speed = same options as above
-direction = up | down | left | right (should be extended with north, north west etc)
-count = same list as above

- -

When mousing you are again in a so-called exclusive mode. An icon is shown in the system tray, and mousing can be stopped by

- -

stop | OK
-click
-double click

-

Moreover the movement of the mouse can be controlled by commands similar as with moving.

- -

Searching:

-

These commands only work after an initial search was done. This search command is described in the grammar _general.

- -

You can start a continuing search with:

-

Search continue [<direction>|<count>|<speed>]+

- -

with:

-

direction = forward | back
-speed and count like the moving commands

- -

Repeating the last command:

-

These commands do NOT work in exclusive mode. That is because they work with the HeardWord (RecognitionMimic) mechanism in which the speech engine is used recursively.

- -

Stopping the mechanism is therefore by a general command, like Cancel or OK.

- -

Repeat That <speed>

-

with

-

speed like the other commands

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/repeat/nederlands.html b/website unimacro/html/grammars/globalgrammars/repeat/nederlands.html deleted file mode 100644 index 9a48a98..0000000 --- a/website unimacro/html/grammars/globalgrammars/repeat/nederlands.html +++ /dev/null @@ -1,195 +0,0 @@ - - -unimacro, grammars, global grammars, repeat, nederlands - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
 Repeat
  Actions
  Searching
  Nederlands
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Herhalende beweging, met de cursor, muis of zoeken

  • Beweeg de cursor, in alle richtingen, een aantal stapjes of met variabele snelheid. Ook selecteren!
  • Beweeg de muis, dito
  • Herhaal de laatste zoekopdracht, vooruit of achteruit
  • Herhaal het laatste willekeurige commando (een gevoeliger actie dan de andere commands)
- -

Deze grammatica is gebaseerd op _mouse.py van Joel Gould en -de versie van Jonathan Epstein van _generic_movement.py.

- -

De naam van deze grammatica is herhaal, dus zoek (na het commando Toon alle grammaticaas) naar deze naam, of probeer het commando Toon herhaal.

- -

Beweeg de cursor

-

Start het bewegen met:

-

BEWEEG | BLOK | SCROLL (<speed>|<direction>|<count>)+

- -

Meer van deze opdrachten kunnen in een commando worden gegeven (het + teken na de haakjes)

- -

Als de cursor beweegt, zit je in de zogenaamde exclusieve modus: alleen commando's, die hieronder beschreven staan, worden herkend. Een icoon wordt getoond in de system tray, en de beweging kan worden gestopt met

- -

stop [bewegen|blok] | OK | okee

-

De beweging kan verder worden beïnvloed door:

-

een andere snelheid
-versnelling: sneller | langzamer | [heel] veel (sneller| langzamer)
-een andere richting
-een ander aantal
-de richting omdraaien: terug | ga terug

- -

En de beweging kan worden onderbroken en hervat met:

-

wacht
-ga verder | ga door | verder
-een andere richting, snelheid, aantal of de richting omdraaien

- -

Als je beweegt, kan in de selectiemodus worden overgegaan met het commando:

- -

selecteer | blok (alweer optioneel gevolgd door andere commando‘s)

- -

Probeer ook maar eens wat er gebeurt als je start met SCROLL in plaats van BEWEEG.

- -

Ten slotte kun je tijdens de beweging ook nog springen:

-

 begin [van] regel | einde [van] regel | begin [van] document | einde [van] document

- -

Muizen:

-

Deze commando's werken met hetzelfde principe als het bewegen van de cursor. Er moet echter nog meer uitgewerkt worden voor praktische doeleinden. Start met:

- -

MUIS (BEWEEG | SLEEP) [<speed> | <direction> | <count>]+

- -

met

-

speed = zelfde opties als bij het bewegen
-direction = omhoog | omlaag | link | rechts
-            (zouden nog moet worden uitgebreid met noord, noordwest enz.)
-count = zelfde lijst als hierboven.

- -

als de muis beweegt/sleept men weer in de zogenaamde exclusieve modus. Zie icoon in de system tray. De muis kan gestopt worden met:

- -

stop [muizen|slepen] | OK
-klik
-dubbel klik  (lijkt op dit moment niet te werken)

- -

Verder kan het gedrag gecontroleerd worden zoals bij het bewegen.

- -

Zoeken:

-

Deze commando's werken pas nadat een eerste zoekopdracht is gedaan. Deze zoekopdracht wordt beschreven in de grammatica algemeen (_general), maar hieronder volgt de grammatica, zowel voor het starten van het zoeken als voor het "discreet" doorgaan.

- - - - - - - - - - - - - -

commando

opmerking

zoek ( naar | voor | na ) <dgnletters}

selecteer de tekst die gezocht wordt, of ga ervoor of erna staan met de cursor

zoek ( insert | extend ) <dgnletters}

insert more letters before or after the previous zoek text

zoek nieuw", "Opent dus zoek dialoog, onthoudt vervolgens NIET waar naar gezocht wordt

zoek [ {count} [ keer ]]", "de count (aantal) is optioneel, en keer ook.

zoek terug [ {count} [ keer ]]", "In de meeste programma's werkt dit niet, en wordt vanaf het begin van het document gezocht.

zoek ga terug", "(experimenteel, werkt momenteel in Excel. Ga terug naar de plek waar het zoeken begon.)"]]

- -

 

-

met

-

<dgnletters}:

een combination van letters/karakters (alfa, haakje-openen, komma enz.)

- -

 

-

De grammatica in _repeat, om het zoeken "continu" te vervolgen:

- - - -

commando

comment

Zoek continu [ <direction} | <count} | <speed}

- -

 

-

met (optionele aanwijzingen (vanwege de [ en ]) als bij de andere commando's. Zie de complete grammatica voor details.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/repeat/searching.html b/website unimacro/html/grammars/globalgrammars/repeat/searching.html deleted file mode 100644 index ee55ecf..0000000 --- a/website unimacro/html/grammars/globalgrammars/repeat/searching.html +++ /dev/null @@ -1,195 +0,0 @@ - - -unimacro, grammars, global grammars, repeat, searching - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
 Repeat
  Actions
  Searching
  Nederlands
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Searching:

-

Triggered by a discussion on the voicecoder discussion list I started working on this again. It is becoming quite a bit of code. Split apart into several things:

-
  • commands for discrete search (noncontinuous) are defined in the grammar _general.
  • commands for continuous searching are described in this grammar (_repeat).
  • the core functions are in the IniGrammar class
  • extensive use is made of "actions -.
- -

The grammar in _general:

- - - - - - - - - - - - -

command

comment

search ( for | before | after ) (<dgnletters> | <dgnwords>)

select the text you search for, or a leave the cursor before or after the selected text

search ( insert | extend ) (<dgnletters> | <dgnwords>)

insert more letters before or after the previous search text

search new

this opens the default search box, no knowledge of the search text is maintained

search forward [ {count} [ times ]]

the count is optional, as is times.

search back [ {count} [ times ]]

in most programs searching back will not work. Search is started from the beginning of the document.

search go back

(experimental, works only in excel at the moment, go back to where you started.)

- -

 

-

with

- - -

<dgnletters>

any combination of letters/characters (alpha, open-paren, comma etc.)

<dgnwords>

one dictation word (note this is more precise than <dgndictation> which is identical to <_anything> in Vocola)

- -

 

-

The grammar in _repeat:

- -

command

Search continue [ <direction> | <count> | <speed> ]+

- -

 

-

with (optional directives (because of the [ and ]):

- - - - -

<direction>:

forward_ | back | up | _down

<speed>:

steady_ | normal | fast | slow | very fast | _very slow

<count>:

a number: 1, 2, ..., 20, 25, 30, 35, 40"]]

- -

 

-

And when you are in the continuous mode:

- - - - - - - - - - -

command

comment

<direction> or <speed> or <count>:

as above

reverse_ [ direction ] | [ go ] _back

search in the other direction, or start from the top (if back search is not supported)

<acceleration>:

faster_ | slower | much faster | _much slower

hold on_ | _hold it

wait, resume with go on | continue or one of the other commands

cancel

quit the continuous search mode and return, if possible, to the spot the search started from

- -

 

-

Actions

-

These two grammars are meant to be used with the same grammar rules (commands) in several windows. Therefore they make use of actions. The actions used in the search mechanism are:

- - - - - - - - - - - - - - - - - - - -

meta action

comment

startsearch

most often simply put the search box on the screen

search go

often just {enter}

searchforward

search on in forward (down) direction.

searchback

search on in opposite direction. Default empty. In that case the search is continued from the top.

searchgoback

action to go to the place searching started. Excel implemented differently. Word not implemented yet. Default not implemented, UltraEdit (uedit32) implemented.

searchfailed

what to do if the search failed (can be established in some windows) (default ALERT = a ringing bell)

searchalwayscontinue

T (True) if you can continue search without an initial search (eg by hand or by the search new command, which is NOT remembered) (values can be T (true) or F (false))

leftafterforwardsearch

what to do after forward search, in order to finish in front of the text found.

leftafterbacksearch

ditto

- -

 

-

In the file actions.ini (which you can open by the command Edit Actions), you can inspect these actions for default or a program (eg winword, dragonpad, firefox (sucks yet), -iexplore, emacs (a little bit), notepad).

- -

Examples

  • in DragonPad (like in many windows) searching back does not work, so search is started from the beginning of the page when you call this. When you are "round" DragonPad gives an extra dialog window, which is found as a failing search. The search is cancelled at that moment.
  • in excel some steps go through internal excel routines, showing no dialog windows at all. When you cancel -the search, or give the command search go back, the cell you start at the search from is selected again. (Searching back does not work).
  • In Notepad searching back works, but if you want to go searching for it again this does not work.
  • In Firefox continuous search seems to work well, and going up and down with the search also.
  • In Word the implementation is primitive, should also be done with internal commands, like in excel.
- -

More implementation details in the section in IniGrammar class -.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/shownumbersplus/commandosnederlands.html b/website unimacro/html/grammars/globalgrammars/shownumbersplus/commandosnederlands.html deleted file mode 100644 index f9a8463..0000000 --- a/website unimacro/html/grammars/globalgrammars/shownumbersplus/commandosnederlands.html +++ /dev/null @@ -1,126 +0,0 @@ - - -global grammars, show numbers plus, Commando's Nederlands - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
  Specify actions
  Commando's Nederlands
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Nederlandse commando's voor ShownummersPlus!

-

Deze commando's kun je ook zien door toon sjoo nummers plus. Bewerken van de verschillende acties kan na het commando bewerk sjoo nummers plus.

- - - - - - - - - -

commando

opmerking

(toon|verberg) nummers [continu]

toon of verberg de nummers,

-

met continu worden de nummers na elke opdracht van deze grammatica opnieuw getoond

(toon | verberg) (tree|taakbalk) [nummers]

tree of taakbalk zijn alternatieven, het woord nummers is optioneel.

- -

Het woord tree lijkt erg goed te werken in de praktijk.

{klik} {nummer} [ga door|continu|stop]

klik op een nummer (voor alternatieven zie onder).

-

Vraag (optioneel) om door te gaan met het tonen van de nummers, of om dit te stoppen

(tree|taalbalk) {nummer} [{klik}|{actie}]

klik op een taakbalk item, optioneel met een klikactie gespecificeerd, of met een aanvullend commando (zie onder).

- -

 

-

klik en acties

  • klik kan zijn klik, links klik, rechts klik, dubbel klik enz.
  • acties zijn (standaard ingevuld) sluiten, vernieuwen. Lees ook uitleg over acties,
- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/shownumbersplus/index.html b/website unimacro/html/grammars/globalgrammars/shownumbersplus/index.html deleted file mode 100644 index 2ac149b..0000000 --- a/website unimacro/html/grammars/globalgrammars/shownumbersplus/index.html +++ /dev/null @@ -1,147 +0,0 @@ - - -unimacro, grammars, global grammars, show numbers plus - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
  Specify actions
  Commando's Nederlands
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Show Numbers Plus

-

This grammar is meant to control the program ShowNumbersPlus! of Max Roth, Ergodirect.

- -

It is after installation in the DisabledGrammars directory, so if you want to use this grammar, first move it into the Unimacro directory.

- -

ShowNumbersPlus now works with separate tray/taskbar numbers, which remain on the screen.

- -

The commands

-

Here are the commands, which you can also get by calling show show numbers plus.

- - - - - - - - - -

command

comment

(show|hide|dismiss) numbers [continuous]

show or hide in the foreground window

-

with continuous the numbers go on being showed after each utterance, see below

(show|hide|dismiss) (tray|taskbar) [numbers]

tray or taskbar are alternative words, numbers is optional.

- -

The word tray seems to be very convenient in practice.

{click} {number} [continue|stop]

click on a number (alternatives see below), optionally ask to continue displaying the numbers, or stop the continuous displaying of numbers.

(tray|taskbar) {number} [{click}|{action}]

click on taskbar item, optionally with some click specification or with an additional command.

- -

 

-

click and action

-

These can be specified in the .ini configuration file. Simply say edit show numbers plus and make it to your taste.

- -

Defaults:

  • click: click, left click (same), right click, double click
  • action: close and refresh, see specify actions.
- -

Continuous

-

This feature makes it possible to continue for example in Windows Explorer views. When the window changes or when the microphone state changes, the continuous mode is switched off. Moreover if the microphone state changes the numbers are switched off.

- -

Examples:

  • If you say tray seven right click the shortcut menu pops up. If you want to close the window or the whole stack, you can move up one and press enter (eg with the keystrokes grammar, say "up okay").
  • If you say tray two close the window at taskbar position 2 pops up and the action for close is performed (most often {alt+f4}.
- -

Aero Peek stacked taskbar windows

-

When you have a stacked taskbar (which Max Roth advises to switch off BTW), when you click on a taskbar item list of alternatives pop-up. This happens especially in Windows 7 with the Aero Peek you'll been on.

- -

When this happens, the numbers are again activated (by the grammar, these are now the normal window numbers), and when you say click zero, click one etc., special keystrokes are performed to correctly handle your choice. This is because normal clicking doesn't work here, this is a very special window.

- -

These special keystrokes depend on the position of your taskbar, which is extracted from the monitorfunctions.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/shownumbersplus/specifyactions.html b/website unimacro/html/grammars/globalgrammars/shownumbersplus/specifyactions.html deleted file mode 100644 index b1a20bd..0000000 --- a/website unimacro/html/grammars/globalgrammars/shownumbersplus/specifyactions.html +++ /dev/null @@ -1,140 +0,0 @@ - - -global grammars, show numbers plus, specify actions - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
  Specify actions
  Commando's Nederlands
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Specify actions

-

When you say edit show numbers plus (Dutch bewerk sjoo numbers plus), you get the configuration file in which you can specify additional actions. Current example:

- -

[actions]
-close = <<windowclose>>
-refresh = <<taskrefresh>>

- -

For the first example you could have chosen:

-

close = {alt+f4}

-

But in some strange windows you need another keystroke combination to close it.

- -

Unimacro meta actions

-

The Unimacro meta actions mechanism makes this window specific behavior possible.

- -

refresh

-

In the example of refresh (refreshing a window), use <<taskrefresh>>, all examples are in the actions.ini configuration file.

- -

Default is:

-

[default]
-taskrefresh = {f5}

-

So with the {f5} key you refresh an explorer or internet browser window.

- -

For Outlook this meta action is defined as (thus send/receive your email):

- -

[outlook]
-taskrefresh = {f9}

-

For my special case of a pythonw window with Unimacro in the window title (titles converted to lowercase) I have:

- -

[pythonw unimacro]
-taskrefresh = {alt+s}{enter}

-

With this action I rerun my program, which happens to be the most repeated action of this program.

- -

Feel free to experiment with your own applications!

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/tags/index.html b/website unimacro/html/grammars/globalgrammars/tags/index.html deleted file mode 100644 index c0cf6c5..0000000 --- a/website unimacro/html/grammars/globalgrammars/tags/index.html +++ /dev/null @@ -1,145 +0,0 @@ - - -unimacro, grammars, global grammars, tags - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Making html tags

-

A simple grammar, which helps with putting HTML tags in a file.

-

Out of order at the moment, will be fixed in due time (oct 2011)

- - - - -

command

comment

[HTML] Tag ({letters}+ | {tagname})

Make a HTML tag, by either calling letters from the international alphabet, or one of your predefined tag names.

- -

Note the word HTML is optional (probably should be removed or made compulsory).

(Open | Close | Begin | End | Empty) Tag ({letters}+ | {tagname})

Make only the open tag or close tag, or make an empty tag.

- -

 

  • The letters come from the international alphabet, so say Tag delta delta for a <dd></dd> tag.
  • The tag names can be defined in the inifile section [tagname] by calling "Edit Tags", for example:
- -

[tagname]
-Form = form
-Header 2 = h2
-Header one = h1
-Java script = script language=“JavaScript”
-meta = meta
-script = script
-special header = h1 class=“special”
-table = table
-table data = td
-table row = tr
-table header = th

- -

Putting tags around existing text

-

As a special feature is included: if text is selected before you give a tag command, the begin tag and the end tag are placed around the selection.

- -

Initiall Off!

-

Note this grammar is by default NOT in the macrosystem directory. It is in the DisabledGrammars subdirectory of Unimacro. In order to activate move or copy it into the macrosystem directory. Toggle the microphone to get it recognized.

- -

Even then it is initially deactivated. Either say "switch on grammar tags" to activate, or set in inifile (say "Edit Tags"):

- -

[general]
-initial on = 1

-

Note that grammar is then on in all windows, because it's a global grammar. More should be done with the window policy if this should be avoided.

- -

You can always say "switch on grammar Tags" or "switch off grammar Tags" to enable or disable on-the-fly.

- -

Development

-

When this grammar is going to be used, probably more refinements could be made.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/tasks/configuration.html b/website unimacro/html/grammars/globalgrammars/tasks/configuration.html deleted file mode 100644 index a2d8259..0000000 --- a/website unimacro/html/grammars/globalgrammars/tasks/configuration.html +++ /dev/null @@ -1,166 +0,0 @@ - - -unimacro, grammars, global grammars, tasks, configuration - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
  Get task and doc positions
  Configuration
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Configuration of tasks grammar

  • Say edit tasks to edit the properties of this grammar.
- -

General options

-

In the section [general] you can set a number of options:

- - - - - - - - - - - - - - -

center mouse = T

Means after a task switch the mouse is positioned about 30% from the left top. (If set to F or 0 the mouse is not positioned at all.)

initial on = 1

meaning this grammar is switched on when NatSpeak (and NatLink including Unimacro) starts.

max icon number = 15

the number of icons you can call in the system tray. Set to 0 if you cannot want to call icons at all.

max task number = 30

the number of tasks you want to call with the task # command. Set to 0 if you do not want to call tasks by numbers at all.

max window number = 9

the number of windows inside an application you want to address. Set to 0 if you do not want to call windows inside an application with this command.

switchapps = voice coder; pythonwin; emacs; dragonpad; edit; idle

 

enable search commands = T

special, search selection or word under the cursor in the wanted application eg search two or search chrome.

split left right = 0.65
-split top down = 0.6

specify the proportion of the task position commands, eg task two position right takes less than half a screen and task chrome position topleft takes more than half a screen in both directions.

- -

 

-

Task starting/switching by name

-

You can set the list of applications you want to call with task application in the section -[application].

- -

Examples:

-

[application]
-calc = calc
-calculator = calc
-command = cmd
-dragonpad = dragonpad
-edit = edit
-emacs = emacs
-email = outlook
-excel = excel
-firefox = firefox; 2
-idle = idle
-internet = iexplore
-komodo = komodo; 3
-messages = messages
-notepad = notepad
-pythonwin = pythonwin
-voice code = voicecode
-voice coder = voicecode
-winpad = win32pad
-word = winword; 4
-powerpoint = powerpoint

-
  • Applications are further specified in the actions.ini configuration file, OR referenced to by a number, the task number on the taskbar.
  • This number trick is only valid for fixed positions of tasks/applications on the taskbar. Separate the number and the application name by a ;. Het
  • The words on the right-hand side are builtin programs for Windows (like outlook), or are resolved in the actions.ini configuration file. Each application that needs more tuning has there its own [bringup app] section.
  • In the case where the numbers trick is used, the name MUST match the application name.
  • For example when edit is set to komodo, you can call task edit to bring komodo in front. task komodo works also in this example. For this edit example you cannot use the number trick.
- -

[bringup edit]
-name = komodo
-
-[bringup komodo]
-name = komodo

- -

Positioning the mouse after a task action

-

With the variable center mouse (in section general of the tasks inifile, say edit tasks to control this variable) you can enable or disable this feature. It is demonstrated in the demo movie.

-
  • With centre mouse = T (or 1) the mouse is positioned 30% from the top left position of the active window.
  • With centre mouse = F (or 0) this positioning is not done.
- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/tasks/documentnumberschrome.jpg b/website unimacro/html/grammars/globalgrammars/tasks/documentnumberschrome.jpg deleted file mode 100644 index 02c0697..0000000 Binary files a/website unimacro/html/grammars/globalgrammars/tasks/documentnumberschrome.jpg and /dev/null differ diff --git a/website unimacro/html/grammars/globalgrammars/tasks/documentnumberskomodo.jpg b/website unimacro/html/grammars/globalgrammars/tasks/documentnumberskomodo.jpg deleted file mode 100644 index 5454b2f..0000000 Binary files a/website unimacro/html/grammars/globalgrammars/tasks/documentnumberskomodo.jpg and /dev/null differ diff --git a/website unimacro/html/grammars/globalgrammars/tasks/gettaskanddocpositions.html b/website unimacro/html/grammars/globalgrammars/tasks/gettaskanddocpositions.html deleted file mode 100644 index 3ad9369..0000000 --- a/website unimacro/html/grammars/globalgrammars/tasks/gettaskanddocpositions.html +++ /dev/null @@ -1,166 +0,0 @@ - - -grammars, global grammars, tasks, get task and doc positions - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
  Get task and doc positions
  Configuration
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Getting the taskbar and document positions

  • The taskbar positions are global,
  • The document positions are application specific.
- -

Get Taskbar positions

- - -

Before you can use the commands below, the correct mouse positions must be collected, once.

- -

I now prefer the taskbar at the bottom, with tasks stacked, like:

- -

tasknumbersontaskbar

- -

But other positioning works too.

Getting the proper mouse positions

  • Position the mouse on the first task, and say the command get task position one.
  • Position the mouse on one of the other tasks (eg 5) and say get task position n (in this case five). The difference between the mouse positions of each task is now calculated.
- -

 

-

Get Document positions

- - - - -

For applications that you want to use, eg Chrome or an IDE (in this example Komodo), youshould now get the correct mouse positions. This needs to be done once, as long as the task remains in the same place.

- -

I have the chrome documents at the top, of course, and the Komodo documents on the left. On paper strips I have marked the numbers for the different documents. For Chrome the tabs shrink when there are more tabs on, so you have to smuggle a bit.

documentnumberschrome

- -

Example document numbers chrome (above) and Komodo (right)

documentnumberskomodo

  • Be sure the application is in focus!
  • Position the mouse on the tab of the first document, and say the command get document position one.
  • Position the mouse on the tab of one of the other documents (eg 5) and say get document position n (in this case five).
- -

 

-

Get the icon position

-

Note: I hardly ever use this command any more. If there are users that have profit of this option, please let me know!

-
  • For the icon commands and for getting the taskbar menu you need the position of the computer clock in the system tray: position the mouse there and say task position clock
- -

How is it stored?

-

These data are stored in the configuration file actions.ini. Say edit actions to inspect. This means that speech profiles of different languages can use the same settings.

- -

Moreover, other grammars and even Vocola commands can use these positions via the -unimacro shorthand commands *TASK n and DOCUMENT n.

- -

But note currently these two commands are not in the compatibility file Unimacro.vch.

- -

[positions]
-clockx = -40
-clocky = 998
-mousex1 = 122
-mousexdiff = 69
-mousey1 = 1030
-mouseydiff = 0
-
-
-[positions chrome]
-mousex1 = 75
-mousexdiff = 146
-mousey1 = 47
-mouseydiff = 0
-
-
-[positions komodo]
-mousex1 = 97
-mousexdiff = -1
-mousey1 = 168
-mouseydiff = 27

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/tasks/index.html b/website unimacro/html/grammars/globalgrammars/tasks/index.html deleted file mode 100644 index 762db3b..0000000 --- a/website unimacro/html/grammars/globalgrammars/tasks/index.html +++ /dev/null @@ -1,240 +0,0 @@ - - -unimacro, grammars, global grammars, tasks - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
 Folders
 General
 Lines
 Tasks
  Get task and doc positions
  Configuration
 Keystrokes
 Repeat
 Edit
 Latex
 Number grammar
 Oops
 Show numbers plus
 Tags
 Brackets
 Modes
Specific grammars
Unimacro test
Games
- -

Switching to tasks, windows inside a task, documents, monitors and icons

- -

A few (a bit old) video's demonstrate task switching and translating this grammar into another language:

- - -

Terminology

  • With task an application on the taskbar is meant.
  • With a window, when switching tasks, one of the windows of an application is meant.
  • With a document, in multiple documents or tabs applications (like Chrome), a tab of this application is meant.
  • With an icon a little image in the system tray is meant (not very much in use, I believe)
  • With a monitor one of your displays is meant.
- -

Switching monitors

  • Added November 2017
- - - -

command

comment

monitor {monitors}

Switch to one of the monitors in the list, click at the top of the screen and goto to (0.3, 0.3) of the monitor.

- -

 

-

When you have for example two monitors, you can configure them with something like:

- -


-[monitors]
-one = 1
-left = 1
-right = 0
-two = 0

- -

With trial and error you should find out which one is left and which one is right. In this example the right monitor appears to be 0.

- -

This feature uses functions from the module monitorfunctions.py.

- -

Taskbar switching by position

-

When the tasks positions on the taskbar are known (see below), so the grammar knows about the task positions, then the application numbers of fixed programs are always the same, and they can be called by number and sometimes by name.

- -

Task switching by name

  • You can also define application names, to call with the task command, if they are always on the same position on the taskbar see below and configuration.
  • Within a session you can give a window (possibly one of many inside a stacked application) a name, and return to this window by saying task <name>.
- -

Task switching by number

-

This can be implemented in two ways:

  • By giving the positions of the first task on the taskbar and one of the others. These positions are remembered until you change the placing of your taskbar. See link(get the taskbar positions).
  • By connecting to Show Numbers Plus!, which always displays the taskbar numbers. See there for more details, in the rest of this page the first method is assumed.
- -

Switching tasks and doing task actions

- - - - - - - - - - - - - - - - -

command

comment

task {number}

switch to the numbered task on the task bar

task {application}

switch to a named application, through the -BRINGUP action.

task back

switch to the previous task (just { alt+tab })

task give name <dgndictation>

give the application in front the name you dictate. This can also be done in combination with all the other task specifications, like task 3 first window give name abacadabra.

task {dictated name}

The name you defined can be used the same way as all the other task commands, except for stacked windows

window <1-20> | <firstlast> window

  • if in a stacked taskbar window, select the desired window (see below for more examples)
  • if in an application, select the sub-window, if implemented.

task <specification> {taskaction}

go to the task, and perform an additional action, like close | maximise | minimise | other display | tile

task {taskaction}

perform the task action on the active window. So task close is identical to the built-in command close window.

-
  • special actions for stacked windows: close all | close multiple, can also be turned around (in other languages this may be easier to speak): all close | multiple close. With multiple, you can also define as others, all windows except the first in a stack are closed.
  • For task positioning and resizing, see below
- -

 

-

Task positioning commands (not checked recently)

- - -

command

comment

task (move|stretch|shrink|position) ({direction}|{angle}) [further specification]

Move or resize the window in one of the directions or a specified angle. How much is given (optional) in [further specification].

- -

 

-

Stacked tasks

- - - - - - - - -

command

comment

task one window {number}

switch to sub window of task one

task one {firstlast} window

alternative rule, firstlast below

task one first window {taskaction}

all these task commands can be followed with an action, for example close

task one close all

As special action you can include close all, with a nearly hard coded action (relying on the mouse pointer still being on the task icon of the taskbar)

- -

 

-

Switching documents (tabs) inside a task (application)

-

Note: see get document position for applications that are relevant. -Note: you can define synonyms for document, eg. doc. Speaks faster.

- - - - - - - - - -

command

comment

document {number}

switch to numbered document of the foreground application

document [{number}] {documentaction}

go to the document and do an addional action eg. close, kill, refresh

(next | previous) document [{documentaction}]

the same, but now for a document relative to the current tab.

(next | previous) {2-20} documents {documentaction}

for example close multiple tabs in chrome.

- -

 

-

Notes on {application}:

-

More details on -BRINGUP details page.

- -

Notes on {taskaction}:

  • show or edit with show tasks and edit tasks.
  • task other display now uses the Unimacro Shorthand Command TASKOD. See also page on monitorfunctions, and link(/installation/inifilestrategy.html, inifile strategy).
  • task tile (or task n tile) operates the taskbar shortcut menu. The actions are a bit complicated: RW remembers the active window, TOCLOCK right opens the shortcut menu on the windows clock, h chooses horizontal tiling, and RTW activates the window it came from.
- -

Notes on {firstlast}

-

This list can have entries like (show or edit with show tasks and edit tasks):

-
  • first=1
  • second=2
  • last=-1
  • before last=-2
- -

Notes on {direction} and {angle} (not checked recently)

  • show or edit with show tasks and edit tasks.
  • default directions: left|up|right|down| leftbottom|lefttop|rightbottom|rightdown| righttop|leftdown|leftbottom
  • possible angles: (0|10| ... |360) degrees
- -

Notes on (optional) [further specification] (not checked recently):

-
  • show or edit with show tasks and edit tasks.
  • pixels: (1, ... , 200) [pixels*] (word *pixels is optional again)
  • relative: (10|20| ... |100) percent
  • centimeters, millimeters, inches: (1, 2, ... , 20) (centimeters|millimeters|inches)
  • pixels per inch given in .ini file (_tasks.ini), in section [general], key screen dots per inch (default 90)
- -

Positioning the mouse after a task action

-

With the variable center mouse (in section general of the tasks inifile, say edit tasks to control this variable) you can enable or disable this feature. It is demonstrated in the demo movie.

-
  • With centre mouse = T (or 1) the mouse is positioned 30% from the top left position of the active window.
  • With centre mouse = F (or 0) this positioning is not done.
- -

Reaching icons (a bit obsolete)

-

Note: the clock position has to be recorded first, see get the positions page.

- - - - - - - -

command

comment

icon {number}

switch to the icon by number

icon (left|right|up|down) [n];

move relative inside the system tray (left and up are identical, and right and down are identical)

- -

Sometimes this commands seems not to work, although the focus is on an icon.

(icon|icon n|icon direction| icon direction n) {iconaction}

perform an action on the current icon, or the icon you switch to.

- -

See the icon actions with show tasks or edit them by saying edit tasks.

- -

 

-

Managing the Start (obsolete)

- - - - -

command

comment

start menu

just open the Windows start menu

start menu {startmenucommands}

use additional commands, which you can specify in your _tasks.ini configuration file (nearly obsolete in Windows 8)

- -

 

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/globalgrammars/tasks/tasknumbersontaskbar.jpg b/website unimacro/html/grammars/globalgrammars/tasks/tasknumbersontaskbar.jpg deleted file mode 100644 index 068e13f..0000000 Binary files a/website unimacro/html/grammars/globalgrammars/tasks/tasknumbersontaskbar.jpg and /dev/null differ diff --git a/website unimacro/html/grammars/index.html b/website unimacro/html/grammars/index.html deleted file mode 100644 index 9144b38..0000000 --- a/website unimacro/html/grammars/index.html +++ /dev/null @@ -1,120 +0,0 @@ - - -unimacro, grammars - - - - - - - - - - -
- - - - - - - - - - -
Control
Global grammars
Specific grammars
Unimacro test
Games
- -

Grammars

-

The different commands of Unimacro are ordered in grammar files, and are located in the UserDirectory of NatLink, by default NatLink\Unimacro on the drive you installed NatLink in. Each grammar file contains grammar rules, defining simple and more complex commands, and their corresponding actions whenever a command hits.

- -

Global grammars

-

Grammar files that start with a _ (underscore) are global, i.e. accessible all the time. You can use commands from these grammars in any window/application (although the grammar may activate/deactivate itself or can be activated/deactivated in some cases).

- -

From release 3.9 on only a small set of grammars is published by default, currently:

- - - - - - - - - - - -

Grammar

Comment

_control

This grammar can control the on or off state of other grammars and gives introspection about Unimacro grammars.

- -

This grammar should not be removed from the Unimacro directory, and cannot be switched off by a voice command.

_folders

With commands from this grammar you can jump to folders, either in a My Computer window or in a dialog window (like File Open).

- -

With additional commands you can jump to specific files or specific websites.

_tasks.py

Switch to a task, as found (and numbered) on the taskbar or as defined by name.

_lines.py

With this grammar you can jump to a specific line in some editable file (for example for programmers), or in Excel (version to come).

- -

Also cut, copy, delete and insert lines, and move or copy lines from one place to another.

_general.py

A lot of general commands, from which give window info is important for introspection.

- -

 

-

Program specific grammars:

-

There are only a few of them currently, and not displaying by default:

- - - -

Grammar

Comment

chrome_browsing.py

Allows you to browse in Chrome by calling the numbers that are shown by the "Click by Voice" extension written by Mark Lillibridge.

- -

 

-

Activate other grammars

-

If you want to use other grammars, you can move/copy them from the subfolder DisabledGrammars into your UnimacroDirectory.

- -

Also note some grammars will have the initial on flag disabled. You can either switch on the grammar with the speech command switch on grammarname, or change this flag in the .ini file (say edit grammarname)

- -

Minimise your Unimacro configuration

-

If you only want Unimacro facilities for your Vocola commands, you may want to switch off (remove from the Unimacro directory, by deleting the python (.py) files or moving them into the subfolder DisabledGrammars). You can do this with all grammar files mentioned above, except for _control.py.

- -

Restart Dragon after you make such changes.

-

Updating configuration files

-

If you used some grammar before, but new options have been added, or options changed, you may have to update your configuration (.ini) file. See ini files section for more instructions.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/specificgrammars/chromebrowsing/allcommandsenglish.html b/website unimacro/html/grammars/specificgrammars/chromebrowsing/allcommandsenglish.html deleted file mode 100644 index 006bac0..0000000 --- a/website unimacro/html/grammars/specificgrammars/chromebrowsing/allcommandsenglish.html +++ /dev/null @@ -1,110 +0,0 @@ - - -specific grammars, Chrome_browsing, all commands English - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
Specific grammars
 Chrome_browsing
  all commands English
  commandos Nederlands
  Installing Click by Voice
 Firefox browsing
 Excel
Unimacro test
Games
- -

Chrome Browsing, all commands

- - - - - - -

command

comment

show numbers [additionalonoroff]

-

numbers [additionalonoroff]

Switch on the numbers feature, with optional additional options.

-

The options are configurable, but for example contrast, overlay, hybrid.

hide numbers

-

numbers off

Switch off the displayed numbers

pick {number}

-

pick {number} {navigateoptions}

follow the numbered link,

-

The optional options are configurable, but for example "new tab", "new window", "focus" or "copy link"

- -

 

-

Other commands:

-

next page | previous page

-

page (back|forward) [{1-20}]

-

{pagecommands} page | page {pagecommands}

navigate the pages inside a tab.

- -

 

-

pagecommands contains by default only refresh.

-
  • Note: for navigating the different tabs (documents) of Chrome, see Tasks (taken) grammar, but documentation is not complete yet.
- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/specificgrammars/chromebrowsing/commandosnederlands.html b/website unimacro/html/grammars/specificgrammars/chromebrowsing/commandosnederlands.html deleted file mode 100644 index 2b1c06b..0000000 --- a/website unimacro/html/grammars/specificgrammars/chromebrowsing/commandosnederlands.html +++ /dev/null @@ -1,114 +0,0 @@ - - -specific grammars, Chrome_browsing, commandos Nederlands - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
Specific grammars
 Chrome_browsing
  all commands English
  commandos Nederlands
  Installing Click by Voice
 Firefox browsing
 Excel
Unimacro test
Games
- -

Chrome brouwsen, alle commando's in het Nederlands

- - - - - - -

commando

commentaar

toon (getallen | nummers) [{additionalonoroff}]

-

(getallen | nummers) {additionalonoroff}

Schakel de getallen in, met mogelijk aanvullende opties.

-

aan en uit behoren ook tot de opties.

- -

De opties kunnen worden geconfigureerd, bijvoorbeeld met contrast, overlay, hybrid, of een combinaties ervan.

verberg (getallen | nummers)

-

(nummers | getallen) uit

Verberg de getallen

klik {number}

-

klik {number} {navigateoptions}

Volg de genummerde link, optioneel met een aanvullende optie.

-

Deze opties kunnen worden geconfigureerd, bijvoorbeeld "nieuw tabblad", "nieuw venster".

- -

Maar ook zijn er opties als "nieuw tabblad blijf", "focus" of "link kopieren".

- -

 

-

Overige commando's:

-

volgende pagina | vorige pagina

-

pagina (terug|vooruit) [{1-20}]

-

{pagecommands} pagina | pagina {pagecommands}

navigeer binnen het tabblad naar vorige of volgende pagina's

- -

 

-

pagecommands heeft standaard (default) alleen de optie vernieuwen.

-
  • Voor het navigeren tussen de verschillende tabbladen, zie Tasks (taken) grammatica, documentatie moet nog uptodate worden gemaakt.
- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/specificgrammars/chromebrowsing/index.html b/website unimacro/html/grammars/specificgrammars/chromebrowsing/index.html deleted file mode 100644 index 3562987..0000000 --- a/website unimacro/html/grammars/specificgrammars/chromebrowsing/index.html +++ /dev/null @@ -1,140 +0,0 @@ - - -unimacro, grammars, specific grammars, Chrome_browsing - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
Specific grammars
 Chrome_browsing
  all commands English
  commandos Nederlands
  Installing Click by Voice
 Firefox browsing
 Excel
Unimacro test
Games
- -

Chrome browsing, Click by Voice

-

This grammar makes it possible to browse (follow links) by number in Google Chrome.

- -

Click by Voice

-

This grammar uses the Chrome extension Click by Voice (CbV) written by Mark Lillibridge.

- -

If you do not have "Click by Voice" yet, please follow the instructions for -installing Click by Voice and activating the grammar.

- -

After you have done this, you should be able to use the grammar. There is also a demo video about starting up things and how to use Click by Voice with this Unimacro grammar Chrome browsing.

- -

The most important commands:

- - - - - - -

command

comment

show numbers | numbers on

switch on the numbers

hide numbers | numbers off

switch off the numbers

pick {number};

Take the numbered link

- -

 

-

For more commands see all commands of Chrome Browsing.

- -

Deze grammatica is ook vertaald in het Nederlands. Zie commando's Nederlands.

- -

The lists

  • additionalonoroff, navigateoptions and pagecommands can be configured from the configuration file: call edit Chrome Browsing.
  • The number list comes from a very complicated set of rules. When you call show Chrome Browsing you get a complete list of the grammar rules, including the rules that catch the numbers. The numbers up to 999 are the easiest to call. For numbers above 1000 you should call the digits:
- -

one
-twenty three
-hundred
-three hundred nineteen
-three nineteen
-one zero two
-three oh five seven

- -

General options

-

In the section general of the configuration file you can set the default show numbers options.

- -

Always combine with :+ . A combination of options is possible.

- -

Current default is hybrid, :+h

-

Other possibilities are (combinations of):

- - - - - - - - -

option

letter

hybrid

:+h

contrast

:+c

overlay

:+o

hybrid contrast

:+hc

- -

 

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/specificgrammars/chromebrowsing/installingclickbyvoice.html b/website unimacro/html/grammars/specificgrammars/chromebrowsing/installingclickbyvoice.html deleted file mode 100644 index 69bc969..0000000 --- a/website unimacro/html/grammars/specificgrammars/chromebrowsing/installingclickbyvoice.html +++ /dev/null @@ -1,117 +0,0 @@ - - -Chrome_browsing, Installing Click by Voice - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
Specific grammars
 Chrome_browsing
  all commands English
  commandos Nederlands
  Installing Click by Voice
 Firefox browsing
 Excel
Unimacro test
Games
- -

Installing CbV (Click by Voice)

-

A splendid chrome extension written by Mark Lillibridge.

-

This extension can be installed most easily by following the steps below:

-
  • Also you can view this demo video on how to install this extension in chrome.
-
  1. Go to the extensions window of chrome (via button at the right top corner)
  2. Search for the extension "clickbyvoice"
  3. Choose "Add to Chrome" and there you are.
- -

Once you have this extension installed, you need voice recognition macro's in order to use the extension by speech.

- -

In his page click by voice, Mark Lillibridge shows you how to do this with Vocola commands.

- -

It can also been done with commands in a Unimacro grammar, with is presented in this section on this website. But first be sure you have properly activated the grammar:

- -

Activate grammar in Unimacro

-

By default this grammar is located in the subfolder DisabledGrammars of the Unimacro directory.

-
  • Please copy the file chrome_browsing.py into the Unimacro directory.
  • If the microphone is toggled with Chrome in the foreground, the grammar should be switched on.
- -

Check that about the following text is printed in your "Messages from NatLink" window:

- -

Cannot find inifile: (...)\enx_inifiles\chrome_browsing.ini
-take sample inifile: (...)\sample_ini\enx_inifiles\chrome_browsing.ini
-===Created new inifile for grammar “chrome_browsing”
-===Please edit this file by calling the command “edit Chrome Browsing”
- IniGrammar switched on: chrome browsing
-_control, added Unimacro grammar(s): [‘chrome browsing’]

- -

So if you want to edit you options of this grammar, say edit Chrome Browsing.

- -

Now you are switched on, and on the starting point of this video:

-

 

-

 

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/specificgrammars/excel/index.html b/website unimacro/html/grammars/specificgrammars/excel/index.html deleted file mode 100644 index ace815d..0000000 --- a/website unimacro/html/grammars/specificgrammars/excel/index.html +++ /dev/null @@ -1,90 +0,0 @@ - - -unimacro, grammars, specific grammars, Excel - - - - - - - - - - -
- - - - - - - - - - - - - - - - -
Control
Global grammars
Specific grammars
 Chrome_browsing
 Firefox browsing
 Excel
Unimacro test
Games
- -

Grammar for Microsoft Excel

-

This grammar obtains specific knowledge about the running Excel instance by the action classes module for Excel.

- -

Note: Excel can only connect to one Excel instance, if you have more instances running, you will able to do the commands only in one of them. Solution: close all Excel instances and work only from one instance.

- -

This grammar is still work in progress. Please try "show excel" and you will see the possible commands.

- -

Jumping to Columns is done by this grammar,

-

Jumping to Rows is done by the grammar _lines. A Row is thus called line, unless you change the command words in the grammar lines (edit lines, and change the section [grammar words]).

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/allcommandsenglish.html b/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/allcommandsenglish.html deleted file mode 100644 index e5ddf7e..0000000 --- a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/allcommandsenglish.html +++ /dev/null @@ -1,120 +0,0 @@ - - -specific grammars, Firefox browsing, all commands English - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
Specific grammars
 Chrome_browsing
 Firefox browsing
  all commands English
  commandos Nederlands
  Installing MLB
 Excel
Unimacro test
Games
- -

Firefox browsing, all commands

- - - - - - - - -

command

comment

toggle numbers | give numbers | hide numbers | clear numbers

-

numbers on | numbers off

To switch on or off the numbers of MLB.

-

Unfortunately MLB only has a toggle to switch to another mode.

-

With numbers NOT shown the choose | follow commands still work!

follow {number}

-

new {number}

-

focus {number}

-

follow {number} context menu

-

follow {number} new tab

follow the numbered link,

-

open the numbered link in a new tab

-

put keyboard focus on the link

-

put keyboard focus on the link and open the context menu

-

open the numbered link in a new tab

next tab | previous tab

-

tab number {1-20} | tab [number] minus {1-20}

-

tab (number|minus) {1-9} {tabcommands}

-

{tabcommands} tab | tab {tabcommands}

-

(next | previous) tab {tabcommands}

Navigate the tabs.

-

Minus counts tabs from the right side of the screen.

-

tabcommands contains currently refresh and close.

next page | previous page

-

page (back|forward) [{1-20}]

-

{pagecommands} page | page {pagecommands}

navigate the pages inside a tab.

-

pagecommands contains currently only refresh.

- -

 

-

The lists

  • tabcommands and pagecommands can be configured from the configuration file: call edit Firefox Browsing to edit.
  • The number list comes from a very complicated set of rules. When you call show Firefox Browsing you get a complete list of the grammar rules, including the rules that catch the numbers. Some small numbers do not react all the time. You can call for example follow 17 as either follow seventeen or follow one seven. Or choose 123 as choose hundred twenty three or choose one twenty three or choose one two three.
- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/commandosnederlands.html b/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/commandosnederlands.html deleted file mode 100644 index a18b06d..0000000 --- a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/commandosnederlands.html +++ /dev/null @@ -1,126 +0,0 @@ - - -specific grammars, Firefox browsing, commandos Nederlands - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
Specific grammars
 Chrome_browsing
 Firefox browsing
  all commands English
  commandos Nederlands
  Installing MLB
 Excel
Unimacro test
Games
- -

Firefox browsen, commando's Nederlands

-

De gehele grammatica kan worden bekeken met het commando toon Firefox Browsen (of met toon alle grammaticaas). Om redenen van herkenning wordt Firefox browsen intern geschreven als Faajer foks brouwsen.

- - - - - - - - - - - -

commando

commentaar

toon nummers | tokkel nummers | verberg nummers

-

nummers aan | nummers uit

Om de nummers/getallen weer te geven of te verbergen. (Tokkel is het fonetische equivalent van het Engelse toggle.)

- -

MLB kent alleen een tokkel/toggle toets om de nummers aan en uit te zetten. Dus alle alternatieven hierboven doen hetzelfde.

volg {nummer}

-

volg {nummer} (niew tabblad | context menu| snelmenu)

-

focus {nummer}

-

nieuw {nummer}

Volg de genummerde link,

-

open de genummerde link in a nieuw tabblad, of geef het snelmenu (context menu), of

- -

Zet de toetsenbord focus op de genummerde link.

-

Volg de genummerde link in een nieuw tabblad

volgend tabblad | vorig tabblad

-

tabblad {1-20} | tabblad min {1-20}

-

{tabcommands} tabblad | tabblad {tabcommands}

-

(volgende|vorig) tabblad {tabcommands} |

-

tabblad min {1-20} {tabcommands}

navigeer tussen de tabbladen. Met Min tel je vanaf de rechterkant van het scherm.

- -

tabcommands bevat momenteel vernieuw / vernieuwen and sluit / sluiten.

- -

Let op de verschillen met de Engelse woorden als een genummerd tabblad wordt gevraagd: hier is het tabblad, in het Engels is tab number nodig.

volgende pagina | vorige pagina

-

{pagecommands} pagina

-

pagina {pagecommands}

-

pagina (terug|verder|vooruit)[{1-20}]

navigeer door de pagina's binnen hun tabblad

-

pagecommands bevat op dit moment alleen vernieuw / vernieuwen.

{2-20} tabbladen sluiten

sluit een aantal tabbladen (beetje gevaarlijk)

- -

 

-

De lijsten

  • tabcommands en pagecommands kunnen worden aangepast in de inifile van deze grammatica. Roep bewerk Firefox Browsen hiertoe.
  • De nummer lijst is een gecompliceerde verzameling grammatica regels. Als je roept: toon Firefox Browsen krijg je de complete lijst grammaticaregels, inclusief de regels die de getallen herkennen. Enkele kleine getallen worden niet steeds herkend. Als je bijvoorbeeld volg 12 wilt hebben, kun je dit doen met volg twaalf of volg een twee. Om kies 123 te krijgen kun je zeggen kies honderd 23 of kies een 23 of kies een twee drie.
- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/get-extensions.png b/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/get-extensions.png deleted file mode 100644 index d2e0d5d..0000000 Binary files a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/get-extensions.png and /dev/null differ diff --git a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/index.html b/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/index.html deleted file mode 100644 index 7a83938..0000000 --- a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/index.html +++ /dev/null @@ -1,112 +0,0 @@ - - -unimacro, grammars, specific grammars, Firefox browsing - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
Specific grammars
 Chrome_browsing
 Firefox browsing
  all commands English
  commandos Nederlands
  Installing MLB
 Excel
Unimacro test
Games
- -

Firefox browsing

-

This grammar makes it possible to browse (follow links) by number in Firefox.

- -

Mouseless browsing (MLB)

-

This grammar uses the Firefox extension MLB (Mouseless browsing).

- -

If you do not have MLB yet, please follow the instructions for -installing MLB.

- -

The most important commands:

- - - - -

command

comment

toggle numbers

to switch on or off the numbers of MLB

follow|new [number]

Follow the numbered link (with new open link in new tab)

- -

 

-

For more commands see all commands of Firefox Browsing.

- -

Deze grammatica is ook vertaald in het Nederlands. Zie commando's Nederlands.

- -

Hit a Hint (HaH)

-

This is another Firefox extension that can number all links, and follow them subsequently. The advantage over MLB is, that the page doesn't have to be fully loaded before the numbers are shown. Hit a Hint is considered as obsolete at present (nov 2010)

- -

The grammar Firefox Browsing is designed to work in either MLB or HaH. This is done by setting a variable inside the grammar (Python file). HaH is not fully tested anymore, as MLB seems to be more convenient.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/install-now.png b/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/install-now.png deleted file mode 100644 index ecad48b..0000000 Binary files a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/install-now.png and /dev/null differ diff --git a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/installation-install-now.png b/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/installation-install-now.png deleted file mode 100644 index 6fd7157..0000000 Binary files a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/installation-install-now.png and /dev/null differ diff --git a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/installingmlb.html b/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/installingmlb.html deleted file mode 100644 index d77d161..0000000 --- a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/installingmlb.html +++ /dev/null @@ -1,109 +0,0 @@ - - -specific grammars, Firefox browsing, Installing MLB - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
Control
Global grammars
Specific grammars
 Chrome_browsing
 Firefox browsing
  all commands English
  commandos Nederlands
  Installing MLB
 Excel
Unimacro test
Games
- -

Installing MLB (Mouseless browsing extension of Firefox)

- -

This extension can be installed most easily by following the steps below.

- - - - - - - - - - - - - -

Choose Tools -> Add-ons in Firefox.

Firefox get tools menu

Click on "Get extensions" (top left)

Get extensions pages of Firefox

Search for mouseless browsing

search for the correct keyword

Locate the MLB search result, possibly search ones more for the same text.

the extension you must have!

At the bottom of the page choose Install Now

install-now

In the Firefox dialog box (after a short time) again choose Install Now

confirm the installation

Finally restart Firefox

restart-firefox

- -

 

-

Now you can by hand toggle the numbers by pressing the "." (Del) key of the numeric keypad, with Num lock on.

- -

The speech commands should now also work. If not try to restart NatSpeak.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/mouseless-browsing.png b/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/mouseless-browsing.png deleted file mode 100644 index 35f8cb7..0000000 Binary files a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/mouseless-browsing.png and /dev/null differ diff --git a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/restart-firefox.png b/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/restart-firefox.png deleted file mode 100644 index 0415548..0000000 Binary files a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/restart-firefox.png and /dev/null differ diff --git a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/search-for-mlb.png b/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/search-for-mlb.png deleted file mode 100644 index e17b8c4..0000000 Binary files a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/search-for-mlb.png and /dev/null differ diff --git a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/tools-addons.png b/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/tools-addons.png deleted file mode 100644 index f2852ec..0000000 Binary files a/website unimacro/html/grammars/specificgrammars/firefoxbrowsing/tools-addons.png and /dev/null differ diff --git a/website unimacro/html/grammars/specificgrammars/index.html b/website unimacro/html/grammars/specificgrammars/index.html deleted file mode 100644 index 4f4f00e..0000000 --- a/website unimacro/html/grammars/specificgrammars/index.html +++ /dev/null @@ -1,89 +0,0 @@ - - -unimacro, grammars, specific grammars - - - - - - - - - - -
- - - - - - - - - - - - - - - -
Control
Global grammars
Specific grammars
 Chrome_browsing
 Firefox browsing
 Excel
Unimacro test
Games
- -

Program specific grammars

-

The grammars described in this section are specific to one program.

- -

The python file starts with the name of the application, like firefox_browsing.py.

- -

A lot of program specific things can be done outside these grammars:

-
  • Vocola commands (see documentation of Vocola outside this website)
  • adaptations in the grammar _keystrokes,
  • adaptations of actions.
- -

At this moment specific grammars are only presented for

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/unimacrotest/actions.html b/website unimacro/html/grammars/unimacrotest/actions.html deleted file mode 100644 index 57537c7..0000000 --- a/website unimacro/html/grammars/unimacrotest/actions.html +++ /dev/null @@ -1,89 +0,0 @@ - - -unimacro, grammars, unimacro test, Actions - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
Control
Global grammars
Specific grammars
Unimacro test
 Actions
 Bringup
 Clipboard
 Messages
Games
- -

unittest Actions

-

In the file ActionsTest.py (of the subfolder unimacro_test of the Unimacro folder) are brought together tests that test the actions mechanism of Unimacro.

- -

Tested are:

  • The handling of arguments of actions (conversion from text into numbers)
  • The return values, so sometimes an action breaks off halfway.
  • The timing of the W (Wait) action.
- -

Running this test (by calling Unimacro test actions) can always be performed, as long as DragonPad is not (active and nonempty).

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/unimacrotest/bringup.html b/website unimacro/html/grammars/unimacrotest/bringup.html deleted file mode 100644 index 5ef318a..0000000 --- a/website unimacro/html/grammars/unimacrotest/bringup.html +++ /dev/null @@ -1,101 +0,0 @@ - - -unimacro, grammars, unimacro test, Bringup - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
Control
Global grammars
Specific grammars
Unimacro test
 Actions
 Bringup
 Clipboard
 Messages
Games
- -

Testing the BRINGUP Unimacro shorthand command

-

BRINGUP is a powerful USC that can switch to several predefined programs as well. Also can be used in task switching.

- -

As a side effect the KW (Kill Window) USC is used and therefore tested.

- -

The different tests can be configured. See the source.

-

Each of the tests are protected with a YesNo dialog box, so you can refuse each of the tests individually.

- -

For example when you do not use voicecode you can skip these tests.

- -

Programs that are brought up also killed again in the test, except for the ones that are specifically mentioned in the YesNo dialog box.

- -

VoiceCode bringup

-

This one is more involved: it can be brought up (cmd, the mediator, emacs, the correct user).

- -

After VoiceCode has been brought up the next test checks the user switching. So if the user is different from VoiceCode again this BringUp command switches back to the user VoiceCode.

- -

Call this test with Unimacro test bringup.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/unimacrotest/clipboard.html b/website unimacro/html/grammars/unimacrotest/clipboard.html deleted file mode 100644 index c51813a..0000000 --- a/website unimacro/html/grammars/unimacrotest/clipboard.html +++ /dev/null @@ -1,90 +0,0 @@ - - -unimacro, grammars, unimacro test, clipboard - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
Control
Global grammars
Specific grammars
Unimacro test
 Actions
 Bringup
 Clipboard
 Messages
Games
- -

testing clipboard functions

-

This test only needs an empty DragonPad window.

-

Also testing some of the meta actions like

  • <<select all>>,
  • <<copy>> and
  • <<paste>>.
- -

Especially the USCs

  • CLIPSAVE and
  • CLIPRESTORE are tested here, with the intermediate
  • CLIPISNOTEMPTY, which returns false if the clipboard is empty.
- -

Call with Unimacro test clipboard.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/unimacrotest/index.html b/website unimacro/html/grammars/unimacrotest/index.html deleted file mode 100644 index bf63034..0000000 --- a/website unimacro/html/grammars/unimacrotest/index.html +++ /dev/null @@ -1,100 +0,0 @@ - - -unimacro, grammars, unimacro test - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
Control
Global grammars
Specific grammars
Unimacro test
 Actions
 Bringup
 Clipboard
 Messages
Games
- -

unittest Unimacro

-

The grammar _unimacro_test.py provides calls to unittest scripts, which do testing of part of Unimacro functionality.

- - - - - -

command

action

Unimacro test all

do all the tests, but prompt for each test

Unimacro test {tests}

do one of the tests, do not prompt.

- -

 

-

If necessary the tests ask you relevant questions.

-

The result of the tests is written into testresult.txt" in the *unimacro_test folder. This is a subfolder of the Unimacro folder, which also holds the tests.

- -

Writing new tests

-

If you want to make new tests put them in the subfolder "unimacro_test" of the Unimacro full. Give them the name XyzTest.py and make the class that contains the tests the same name: Xyztest.

- -

Restart NaturallySpeaking before you can call this new test.

-

The current test names are presented in the pages below.

- - - \ No newline at end of file diff --git a/website unimacro/html/grammars/unimacrotest/messages.html b/website unimacro/html/grammars/unimacrotest/messages.html deleted file mode 100644 index d7283de..0000000 --- a/website unimacro/html/grammars/unimacrotest/messages.html +++ /dev/null @@ -1,91 +0,0 @@ - - -unimacro, grammars, unimacro test, messages - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
Control
Global grammars
Specific grammars
Unimacro test
 Actions
 Bringup
 Clipboard
 Messages
Games
- -

messages test

-

This tests the YesNo and the Message dialog boxes. Also when quotes, new line characters or "\r" characters are used in the message text are handled correct. These character in a window title will be removed.

- -

These dialog boxes can also be called with the Unimacro shorthand commands (USCs) YESNO and MSG (or MESSAGE).

- -

This test is always safe to call, and you can do the different "sub"-tests on prompt.

- -

Call Unimacro test message to run this test.

- - - \ No newline at end of file diff --git a/website unimacro/html/im/blank.gif b/website unimacro/html/im/blank.gif deleted file mode 100644 index 7e67ea7..0000000 Binary files a/website unimacro/html/im/blank.gif and /dev/null differ diff --git a/website unimacro/html/implementationandacceptanceofnatlink.pdf b/website unimacro/html/implementationandacceptanceofnatlink.pdf deleted file mode 100644 index ca34f88..0000000 Binary files a/website unimacro/html/implementationandacceptanceofnatlink.pdf and /dev/null differ diff --git a/website unimacro/html/index.html b/website unimacro/html/index.html deleted file mode 100644 index b46ed4b..0000000 --- a/website unimacro/html/index.html +++ /dev/null @@ -1,95 +0,0 @@ - - -unimacro - - - - - - - - - - -

Natlink, including Unimacro and Vocola2

- - - - -

NatLink is an OpenSource extension module for the speech recognition program Dragon.

- -

In each Natlink release also Vocola and Unimacro are included.

-

Other packages, like Dragonfly, need Natlink in order to work with Dragon, but should be separately installed.

- -

On this website are the instructions for downloading and configuring Natlink, including Vocola and Unimacro, and a more detailed description of Unimacro. For more about Vocola see the Vocola 2 website.

A stable release is finally committed: release 4.2

- -

This will also be the final release for Python 2.7.

-

Python 3 users can - for the time being - install Python 2.7 alongside, and run Natlink via this version. This does not disturb the working of Python 3.

- -

The implementation of Natlink with python3 is going pretty well. See experimental install, when you want to go that way!

Please consider making a donation to this project

- -

 

-

The Natlink base:

  • Dragon is the world leading speech recognition program, sold by Nuance.
  • Natlink (in the past also NatPython) is an open source project written by Joel Gould in 1999. Several presentations that were on Joels website have gone, does anyone have copies of them? This one is still present, written by Joel Gould in about 2001.
- -

The Add-on packages:

  • The Unimacro project aims to provide a rich set of command grammars, that can be configured by the users without programming knowledge. These grammars that are presented on this website.
  • Vocola 2 is a project that aims for easily making user defined commands. Consult the Vocola 2 website. Note: for Windows Speech Recognition you can use Vocola 3.
  • Read more about Vocola 2 and Unimacro, which to use when and also how they cooperate. Vocola commands can profit from Unimacro features.
  • Dragonfly is a third package, that has been developed in a more modern pythonic way. It is very powerful, but should be installed separate. Note: Dragonfly also works with Windows Speech Recognition.
  • User defined grammars can also be included directly in Natlink.
- -

What is on this site?

  • The installation/configuration section -will guide you through the installation details of NatLink/Vocola 2 and Unimacro.
  • The features section explains the powerful things that are implemented with Unimacro.
  • The grammars section is by far the most important for practical use of Unimacro. Most of the grammars are designed to be global, so first look into the global grammars examples.
  • More technical details of the different Unimacro grammar classes and link(installation/technicaldetails/index.html, NatLink in general).
  • Finally, About gives information on the authors of this project and the copyright notice, and asks you for a donation.
- -

Demo movies

-

Some demonstration movies have been made, to show features of Unimacro.

- - -

Please now download the first "stable" release in years: 4.2 (September 2, 2019).

- -

See installation pages

- - - \ No newline at end of file diff --git a/website unimacro/html/installation/index.html b/website unimacro/html/installation/index.html deleted file mode 100644 index 7be842f..0000000 --- a/website unimacro/html/installation/index.html +++ /dev/null @@ -1,87 +0,0 @@ - - -unimacro, Installation Natlink/Vocola/Unimacro - - - - - - - - - - -
- - - - - - -
Install for python 27
Installation experimental version python3
log of changes Python 3
- -

Installing and Configuring Natlink, including Unimacro and Vocola

- -

Please read the pages in this section of the website and follow the install and configure instructions.

- -

You have two choices:

- -

And then:

-

After you installed the version you want, proceed with the link(Configuration).

- -

If problems arise, please read through the other pages in the left menu.

- -

If problems persist, ask - -.

- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installationexperimentalversionpython3.html b/website unimacro/html/installation/installationexperimentalversionpython3.html deleted file mode 100644 index 58f93bb..0000000 --- a/website unimacro/html/installation/installationexperimentalversionpython3.html +++ /dev/null @@ -1,95 +0,0 @@ - - -installation experimental version python3 - - - - - - - - - - -
- - - - - - -
Install for python 27
Installation experimental version python3
log of changes Python 3
- -

Installation of Natlink/Vocola 2/Unimacro Experimental Release with Python 3

- -

Vocola and Unimacro work well on the development branch but you are may come across the odd bug.

- -

(-Download and install the latest 3.8 32-bit Python from Python 3.8 latest version: Note there is now a Python 3.9 version, but please stick to 3.8.

- -

(Select "Add to path" install option, and "Install FOR ALL USERS". Save -yourself some grief and install it at the root of your c: drive, like c:\python38-32). If you already have a python 3.7 32 bit installation you can use that. -(At this time, do not create a https://docs.python.org/3/tutorial/venv.html Virtual Environment. They do not work with Natlink.)

-
  • Packages are now all in the dictation-toolbox in github. For packages that are not packaged for a pip install, -we recommend cloning the wanted repositories in one base directory, for example C:\DT -Instructions below install the source from GIT. Select a folder to host your natlink, unimacro, dragonfly, etc. Below the example is C:\DT but it can be anything.
  • Exit dragon
  • Download the source from GIT
    • git clone git@github.com:dictation-toolbox/natlink.git (In your preferred directory eg C:\DT\Natlink. We will assume C:\DT in the instructions below. )
    • If you want Unimacro: git clone git@github.com:dictation-toolbox/unimacro.git (into C:\DT\Unimacro)
    • If you want Vocola: git clone git@github.com:dictation-toolbox/vocola2.git (into C:\DT\Vocola) (Vocola2 being the Vocola version for Dragon/Natlink)
    • If you want the development branch of Dragonfly and Caster, clone from their git repositories. Otherwise install them using pip (see below).
    -
  • Install the python package prequisistes:
    • Start menu -> cmd (Command prompt) and Run as administrator). Powershell also will work.
    • Change directory to C:\DT\Natlink\ConfigureNatlink
    • This will install the python prerequisites for natlink, vocola, and unimacro: pip install -r requirements.txt
    • This will instal the prerequisites for caster and dragonfly. You can skip this when you install those with pip: -pip install -r caster_requirements.txt
    -
- -

Main install instructions, targeted to Caster (as given by LexiconCode):

-
  • When you have no Command prompt yet: Start menu -> cmd (Command prompt) -> Run as Administrator
  • Probably you can now go to: cd C:\DT\Natlink\ConfigureNatlink and run start_configurenatlink.py, by typing python start_configurenatlink.py.
  • In the config GUI:
    • Click enable Natlink
    • Click enable UserDirectory
    • Choose Caster directory as user directory
    • Quit the GUI
    -
  • When the wxpython GUI window doesn't want to start: run the script natlinkconfigfunctions.py by typing python natlinkconfigfunctions.py (when you are already in elevated mode) or python start_natlinkconfigfunctions.py (elevation is asked for).
  • In the natlinkconfigfunctions:
    • press e (enable Natlink)
    • sometimes you need r (reregister Natlink)
    • press n caster_directory for enabling the UserDirectory and setting it to the Caster directory
    • press q to quit
    -
  • Then restart dragon
    • In some rare cases a reboot is required.
    -
- -

Vocola and Unimacro:

  • In the config GUI or natlinkconfigfunctions.py (CLI) enable these packages. (With the CLI, type u for Usage).
- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/choosebestmatchfourinsteadofbestmatchfive.png b/website unimacro/html/installation/installforpython27/choosebestmatchfourinsteadofbestmatchfive.png deleted file mode 100644 index f74beb5..0000000 Binary files a/website unimacro/html/installation/installforpython27/choosebestmatchfourinsteadofbestmatchfive.png and /dev/null differ diff --git a/website unimacro/html/installation/installforpython27/configuration.html b/website unimacro/html/installation/installforpython27/configuration.html deleted file mode 100644 index 7bf916a..0000000 --- a/website unimacro/html/installation/installforpython27/configuration.html +++ /dev/null @@ -1,144 +0,0 @@ - - -Install for python 27, configuration - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
Installation experimental version python3
log of changes Python 3
- -

Configuration

-

Administrator rights/elevated mode

-

You need Administator rights for the some (of the most important) configuration actions. Therefore the Configure program (Configure NatLink via GUI), or via the command line interface, will be started with link(/installation/configureadministratorrights.html, Administrator rights), when you use the links from the Start menu. Please answer "Yes" if Windows asks you for this.

- -

Run config program with python2.7 in elevated mode

-

In this short video it is shown how you can start the natlink config GUI or the natlinkconfigfunctions.py, with python2.7, even when you have more python versions installed on your system.

- -

The steps are:

  1. start a Command Prompt in admin mode (Run as administrator)
  2. go to the confignatlinkvocolaunimacro directory of your natlink folder (eg. C:\natlink\natlink\confignatlinkvocolaunimacro)
  3. start with "py -2.7" configurenatlink.pyw
  4. if that fails, try the natlinkconfigfunctions.py
- -

so type:
-
-py -2.7 configurenatlink.pyw
-
-or:
-
-py -2.7 natlinkconfigfunctions.py

-

 

-

 

-

Export speech profiles

  • You may want to backup your speech profiles before enabling NatLink for the first time. Use the "Advance, Export" function of the "Profile, Manage Users" dialog of Dragon.
  • However, we believe NatLink is so stable in combination with Dragon, that the chance of Natlink corrupting your speech profile is very small.
- -

Configure NatLink/Vocola 2/Unimacro

  • If this fails, see the video above!
  • From the start menu, run Configure NatLink via GUI
  • This program prompts you for accepting elevated mode (see above)
  • When this is the first time your run this program, several things are done silent, you can inspect the "log" panel of the GUI to see what happened.
- -

NatLink

  • In the "NatLink" section, click the "Enable" button. If NatLink is not enabled, Vocola 2 and Unimacro do NOT work.
- -

Vocola 2

  • Enable Vocola 2 by the "Enable" button in the "Vocola" section and
  • Choose a directory to store your Vocola command files; we recommend ...\Documents\NatLink\Vocola. (This is the "VocolaUserDirectory".)
- -

Unimacro

  • Enable Unimacro by the "Enable" button in the "Unimacro" section and
  • Choose the UnimacroUserDirectory, the directory where your configuration files (ini files) are (going to be) stored. We recommend ...\Documents\NatLink\Unimacro.
- -

UserDirectory

  • For other grammar files, also Dragonfly grammar files, you can use the UserDirectory, the directory where your grammar files are located.
  • Choose your own directory, for example C:\NatlinkUserDirectory.
- -

Dragonfly

-

The package Dragonfly is not included in the combined Natlink/Vocola/Unimacro installer, so should be installed separately. The package is installed in the python site-packages directory, and should be out of sight for the users.

-
  • When you want to use your own Dragonfly grammars, first check that Natlink is running properly. -
  • Then choose a UserDirectory (see above) and place your python files in that directory.
- -

Restart Dragon

  • Each time when you finish configuring things, close the configure program and Restart Dragon!
  • At least the Messages from Python Macros window should appear when you (re)start Dragon, whenever NatLink is enabled.
  • If this does not happen, please consult problems with Natlink.
- -

Proceed with How to Start.

-

Details

-

Previous versions

  • If you had NatLink before, there can be a warning screen, notifying you that you have to reregister NatLink. Do this, with a button at the lower left corner of the window. Restart NatSpeak (Dragon NaturallySpeaking).
  • If this does not work right away, delete the file natlink.pyd in the Core directory (.../MacroSystem/Core) and run the configure program again. Then things should go automatically.
- -

Config program not found or not working

  • In case your start menu is incorrect, you have to find the GUI or CLI program in the Windows Explorer. The configuration GUI is located in C:\NatLink\NatLink\confignatlinkvocolaunimacro (assuming you installed in "C:\natlink"). The GUI is the file "start_configurenatlink.py". Just double click on the file in the Windows Explorer. If you do not need elevated mode, you can also start configurenatlink.pyw directly.
  • In case the configure program (GUI) does not work, you can fall back the the command line interface (CLI). -Also see the link("/installation/technicaldetails/natlinkconfigfunctions.html", "natlinkconfigfunctions page"). The CLI is the file "natlinkconfigfunctions.py" in the same folder als the configure program.
- -

Vocola 2

- -

Unimacro

  • Note: only a selection of the grammars is in the NatLink user directory after installation. In this directory you will find a subdirectory DisabledGrammars with more grammar files. Notably the grammar _keystrokes has been put in this directory, because it can hit too often when you do not expect it. If you want grammars from this directory, simply copy them into the directory above, toggle the microphone and it should be on.
- -

Warning for NatSpeak until version 10

-

NatLink can (could) affect the speech recognition accuracy. See instructions on how to prevent this.

- -

If you have problems with NatLink, and you want to get rid of it, see the link(/installation/problemswithnatlink.html, instructions for reverting back to NatSpeak without NatLink) (near the bottom of this page).

- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/configureadministratorrights.html b/website unimacro/html/installation/installforpython27/configureadministratorrights.html deleted file mode 100644 index 78e42fc..0000000 --- a/website unimacro/html/installation/installforpython27/configureadministratorrights.html +++ /dev/null @@ -1,102 +0,0 @@ - - -Install for python 27, Configure administrator rights - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
Installation experimental version python3
log of changes Python 3
- -

Configure with Administrator rights

-

The Configure program must run in "elevated" mode, especially for the first time, when natlink.pyd is registered and some pythonpath variables are set (see below). When you run the config program though the buttons in the start menu (start_configurenatlink.py or start_natlinkconfigfunctions.py) you will be asked for starting this elevated mode.

- -

Elevated mode is especially needed for:

  • The correct python version from the PYD subdirectory copied to natlink.pyd.
  • Natlink.pyd needs to be registered
  • Some settings have to be done in the HKLM (HKEY_LOCAL_MACHINE) section of the registry.
  • You might need extra rights to write to the file nsapps.ini, which is done the first time you enable NatLink.
- -

Do NOT install on C:\Program Files

-

Because the Program Files directory has often restricted rights for users (when outside "elevated mode"), installing NatLink in the Program Files directory can give problems. For example when Vocola wants to write its python grammar files in the "MacroSystem" subdirectory.

- -

So it seems better to install NatLink (including Vocola 2 and Unimacro) on C:\NatLink (or on another drive, like D:\NatLink).

- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/createbestmatchfouradvanced.png b/website unimacro/html/installation/installforpython27/createbestmatchfouradvanced.png deleted file mode 100644 index dfdf045..0000000 Binary files a/website unimacro/html/installation/installforpython27/createbestmatchfouradvanced.png and /dev/null differ diff --git a/website unimacro/html/installation/installforpython27/errorswindowsextensionsnotcorrectinstalled.jpg b/website unimacro/html/installation/installforpython27/errorswindowsextensionsnotcorrectinstalled.jpg deleted file mode 100644 index 9b1620b..0000000 Binary files a/website unimacro/html/installation/installforpython27/errorswindowsextensionsnotcorrectinstalled.jpg and /dev/null differ diff --git a/website unimacro/html/installation/installforpython27/howtostart.html b/website unimacro/html/installation/installforpython27/howtostart.html deleted file mode 100644 index d94f163..0000000 --- a/website unimacro/html/installation/installforpython27/howtostart.html +++ /dev/null @@ -1,142 +0,0 @@ - - -Install for python 27, how to start - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
Installation experimental version python3
log of changes Python 3
- -

How to start?

-

Start NatSpeak

-

After you did the configuration, at least enabled NatLink, and restarted Dragon the window Messages from NatLink should show up, and give a couple of lines of text. If not, NatLink is not enabled properly.

- -

Vocola 2

  • In order to start with Vocola 2, consult the Vocola website.
  • There is now also support for several Non-English Languages, and the use of English AND these other languages alternatively.
- -

Unimacro

  • Study the rest of this website... especially the grammars section.
  • In order to start more smooth with Unimacro, in this release a lot of grammars (python files, ending with .py) have been moved into the folder DisabledGrammars. So you do not get all grammars at once.
  • Go to your Unimacro folder (the "UserDirectory"), which you configured in the GUI. See what grammars are on. You can also say "Show All Grammars" to get an overview of all active Unimacro grammars. Move away grammars you don't want. Toggle the microphone after you have finished this step.
  • Note: there are also python files which must be left in this directory. Only move out python files that start with underscore "_", but leave _control.py always in the Unimacro directory.
- -

Folders grammar

-

If you want to use for example the folders grammar just say show folders to get, in a text file, explanation on this grammar. If you want to edit things say edit folders.

- -

Active grammars

-

Say show active grammars to get a window with all active grammars of Unimacro. Note, Vocola 2 grammars (like _vocola_main) are not in this window.

- -

All possible grammars

-

Say show all grammars, and/or browse in the grammars section of this website for more information on the different grammars.

- -

Go - in the windows explorer - to the UserDirectory of Unimacro(and NatLink), and move grammar files from the folder DisabledGrammars into this UserDirectory. Toggle the microphone and the grammar should be active.

- -

Easy:

-

Grammars you can start with include tasks, folders, firefox browsing.

- -

Medium:

-

When you're confident with these, try for example lines, -keystrokes

- -

More involved:

-

For more specialised things look in brackets -, oops -, tags -, repeat. Some of these grammars need more documentation and more development.

- -

Introspection

-

An other way to look into the properties of a grammar, goes with show grammar_name (eg show folders). A temporary txt file will be opened with actual information, including words in all commands lists and the grammar rules.

- -

If you want to change general options or words in a commands list, edit grammar_name and edit the file that is then opened.

- -

Switching on or off

-

In the [general] section, important is the initial on option.

- -

[general]
-initial on = 1

-

You can set this option to 1 or T to switch on, but also, more easy, with the command switch on grammar_name.

- -

The opposite is switch off grammar_name, with as result:

- -

[general]
-initial on = 0

-

See more on this in the _control grammar.

- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/inifilestrategy.html b/website unimacro/html/installation/installforpython27/inifilestrategy.html deleted file mode 100644 index 9b75e49..0000000 --- a/website unimacro/html/installation/installforpython27/inifilestrategy.html +++ /dev/null @@ -1,134 +0,0 @@ - - -Install for python 27, ini file strategy - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
Installation experimental version python3
log of changes Python 3
- -

Ini file strategy

-

From the release unimacro2.6 on (and from natlink3.* releases), user ini files should never be overwritten by a new Unimacro release. Instead a folder sample_ini contains all the default ini files. If a user needs an ini file (actions.ini or a grammar configuration ini file), and it is not yet present, Unimacro tries to find it in the sample_ini folder and copy from there into your UnimacroUserDirectory.

- -

New releases problem:

-

The drawback is that new entries, mainly improvements in actions.ini file or changed options in grammar configuration files are not updated with a new release. You can either

-
  • Delete your own ini file, and the sample ini file will be found (possibly after restarting NatSpeak) and copied into the correct location.
  • Inspect the sample ini file and copy relevant lines into your own copy.
- -

actions.ini

-

A file actions.ini is needed for Unimacro actions. Is was (prior to natlink3.7) in the userDirectory of NatLink (where the unimacro grammar files are).

- -

From natlink3.7 on this file is (expected) in the UnimacroUserDirectory, ie where the user ini files are. If after installation the file actions.ini is not in this directory, Unimacro tries to copy from:

-
  • the userDirectory (if you upgrade from a previous version of Natlink it should be found there, the file in the userDirectory is removed!)
  • the sample_ini directory of Unimacro (after a first install it should be found there).
- -

If these copy actions do not succeed, Unimacro grammars cannot start properly.

-
  • Check in the Configuration GUI or CLI if the userDirectory is set correct!
  • Check if you have a sample_ini directory in your userDirectory.
  • As a last resort, try to find an actions.ini file and copy it into your UnimacroUserDirectory.
- -

spokenforms.ini

-

New in release 4.0 is the xxx_spokenforms.ini configuration file, where xxx is the language code of your speech profiles. So for English enx_spokenforms.ini, etc.

- -

A sample is copied automatically from the sample_ini directory of Unimacro, if needed. At the moment this configuration file is mainly used for getting spoken forms for numbers and lists. This process is done automatically, and fairly complex, so please report any issues that arise.

- -

For non-English languages please provide the community with the correct contents, if your language is not yet in the sample_ini directory.

- -

More information in inifiles and numbers and spoken forms

- -

Updating

-

So, according to the remark above, from release natlink3.7 on, the default file actions.ini is in the sample_ini directory. Changes you made yourself in your own copy are not overwritten when you install a newer NatLink/Vocola/Unimacro release. But you can miss default changes. So, if you encounter problems, check the differences of the sample_ini/actions.ini file and your own actions.ini file in the UnimacroUserDirectory.

- -

If you find empty sections in your inifiles, these are probably new due to a change in a grammar. Please compare carefully with the examples from the sample_ini directory!

- -

Example grammar _tasks

-

Recently (2010) the taskotherdisplay meta action has been changed. This means that in the file _tasks.ini the following should be changed:

- -

[taskaction]
-(snip)
-other display = <<taskotherdisplay>>

- -

into:

-

[taskaction]
-(snip)
-other display = TASKOD

- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/installationstableversionpython2.html b/website unimacro/html/installation/installforpython27/installationstableversionpython2.html deleted file mode 100644 index 31e8dbd..0000000 --- a/website unimacro/html/installation/installforpython27/installationstableversionpython2.html +++ /dev/null @@ -1,116 +0,0 @@ - - -Install for python 27, installation stable version python2 - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
Installation experimental version python3
log of changes Python 3
- -

Installation of Natlink/Vocola 2/Unimacro Stable, Python2.7

-

Here is the final release for Python 2.7: 4.2

  • Download release 4.2.
  • Only small changes after all the previous Beta releases.
    • SendInput, written by Mark Lillibridge, is niw the default way for doing keystrokes
    • introducing natlinkclipboard module in core directory (but still testing needed, never a stable release :-)))
    • Unimacro _folders grammar now "remembers" sub folders, files and websites with a voice command.
    -
  • Works with Dragon 15, and also earlier versions.
  • Works with Python 2.7.
    • Use of Python 2.6 and before is discouraged, but for version 14 and lower, Python 2.6 still works.
    • Earlier versions of Natlink are still found on SourceForge.
    -
- -

Next video is a bit outdated, but it gives an impression of the installation procedure:

-

 

-

Installing Python2.7.14

  • Download Python 2.7.14, needed for Natlink.
    • This is a self-extracting zip file, with extension .exe.
    • This is nearly the latest release of python 2.7.
    -
- -

Installing Python2.7.18

  • Or better, go to python download site, and download the Windows x86 MSI installer.
    • Warning: Natlink does not work when you install a "64 bit" python version. So DO NOT USE the Windows x86-64 MSI installer.
    -
  • Install for all users, which is the default
  • You now need to install four additional packages, pywin32, wxpython, six and future
  • You can do this best via pip, please follow the pip instructions (pdf 147kb).
-

 

-

Download and install Natlink/Vocola 2/Unimacro

  • Download the combined installer as given above.of
  • Run the downloaded file.
  • Install on C:\Natlink (or D:\Natlink or any other drive of your choice). Installing in "C:\Program files\Natlink" is NOT advised.
- -

Directory layout after installation

-

When you installed at C:\Natlink you will get the following directory structure:

-
  • Natlink and Vocola 2 are in C:\Natlink\Natlink,
  • Unimacro is in C:\Natlink\Unimacro
  • User defined grammars can be in any location, for example C:\NatlinkUserDirectory or C:\Natlink\UserDirectory.
    • You can put your Dragonfly grammar files, python files, in this directory.
    • Dragonfly should be installed separately.
    -
  • The core directory is C:\Natlink\Natlink\MacroSystem\core (the "controlling" Natlink files are located here)
  • Internally the compiled Vocola 2 files will go in C:\Natlink\Natlink\MacroSystem.
    • This is the baseDirectory of Natlink.
    • Do not put anything else in this directory, although it will not prevent Natlink from functioning.
    -
  • In case you cannot find your configuration program (the GUI): it is located in C:\Natlink\Natlink\confignatlinkvocolaunimacro.
    • The configuration (GUI) program is the file "configurenatlink.pyw".
    • In order to run elevated mode, you should start the script start_configurenatlink.py in the same directory.
    -
  • Elevated mode is only needed the first time you run the configure program, and when you want to enable/disable Natlink or when you want to unregister or (re)register natlink.pyd.
    • But... it does no harm to always start the config program in elevated mode.
    -
- -

Proceed with link("/installation/configuration.html", "the configuration")

- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/installingpackagesviapip.pdf b/website unimacro/html/installation/installforpython27/installingpackagesviapip.pdf deleted file mode 100644 index c82be9b..0000000 Binary files a/website unimacro/html/installation/installforpython27/installingpackagesviapip.pdf and /dev/null differ diff --git a/website unimacro/html/installation/installforpython27/logofchanges/index.html b/website unimacro/html/installation/installforpython27/logofchanges/index.html deleted file mode 100644 index 71d8f76..0000000 --- a/website unimacro/html/installation/installforpython27/logofchanges/index.html +++ /dev/null @@ -1,111 +0,0 @@ - - -Install for python 27, log of changes - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
Installation experimental version python3
log of changes Python 3
- -

Important changes combined installer release 4.0.

-

(for more details, read txt-files in (folder NatLink)/natlink/natlinkInstaller)

-
  • Now installs version 2.7.2I of Vocola:
- -

* Changes in version 2.7.2 of Vocola:

  • Workarounds for some Dragon bugs, including the DNS 11 bug where -using <_anything> prevents recognition of 0 to 9.
  • see http://vocola.net/v2/VocolaVersions.asp for Vocola 2.7.1 and -earlier release notes.
- -

* Unofficial installer modifications:

  • built-in Vocola commands (e.g., "load commands") now available for -Spanish, French and German as well as the previous English and Dutch. -(see Using Vocola Non-English Languages).
  • Unimacro.vch is automatically updated at start up if the "Vocola Takes -Unimacro Actions" option is enabled.
- -

* New in Unimacro:

  • new module spokenforms.py, which manages spoken forms for numbers. Enhancements for spelling letters, abbrevs will follow soon. Uses a per language config file (eg enx_spokenforms.ini).
  • many details in for example _tasks, _folders, _brackets
- -

* New in the combined NatLink/Vocola/Unimacro installer:

  • startup script config GUI and config functions now automatically in "elevated mode"
- -

* Changed in NatLink (for programmers only):

  • nsformat adapted to Dragon 11.
  • unittests adapted to Dragon 11.
  • word properties not supported any more.
  • order of loading modules can be influenced in natlinkmain (hard-coded)
- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/messageswindow.jpg b/website unimacro/html/installation/installforpython27/messageswindow.jpg deleted file mode 100644 index d130a25..0000000 Binary files a/website unimacro/html/installation/installforpython27/messageswindow.jpg and /dev/null differ diff --git a/website unimacro/html/installation/installforpython27/msvcrfault.png b/website unimacro/html/installation/installforpython27/msvcrfault.png deleted file mode 100644 index 18c96fd..0000000 Binary files a/website unimacro/html/installation/installforpython27/msvcrfault.png and /dev/null differ diff --git a/website unimacro/html/installation/installforpython27/problemswithinstallation.html b/website unimacro/html/installation/installforpython27/problemswithinstallation.html deleted file mode 100644 index fd4e898..0000000 --- a/website unimacro/html/installation/installforpython27/problemswithinstallation.html +++ /dev/null @@ -1,153 +0,0 @@ - - -Install for python 27, problems with installation - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
Installation experimental version python3
log of changes Python 3
- -

Problems with installation?

-

Correct python version

-

For Natlink, you need a 32-bit version of python, currently 3.7 or 3.8 (with preference to 3.8). So 37-32 or 38-32.

- -

When you have more python versions on your system, 2.7 or 64bit, or lower 3 versions, be sure you start your config script with one of the correct versions.

-

 

-

 

-

Older problems:

-

The rest of this page is from the long python 2 history of Natlink, which gave some hard-to-tackle issues. Hopefully they will all be obsolete with the new python 3 version of Natlink.

- -

When configuring Natlink:

-

Install of Dragon in a non-standard location

  • You installed Dragon in a non standard location, eg you invented your own path, or you installed on another drive. The configure program should warn you about this and let you specify the path where Dragon is installed. This is done via the button Change-d in the info panel of the Natlink config GUI, or via the option d of the natlinkconfigfunctions. Possibly you need to restart the config program, before proceeding.
  • It can also happen that you used Natlink before and specified the install path of Dragon. And now installed Dragon in a new location. In this case you should Clear-D the setting in the info panel or via the option D of the natlinkconfigfunctions program.
- -

When starting Dragon after configuration several things can go wrong:

-

 

-

Cannot load compatibility module support

  • This is the most annoying, and sometimes hard to solve, problem, but the solution under 1. seems to fix the problem!
  • Dragon gives message: Cannot load compatibility module support (GUID = {dd990001-bb89-1d2-b031-0060088dc929})).
  • This can also happen when you start the Congifure GUI program. It is this message:
-

 

-

msvcrfault

-

 

-

1. "Microsoft Visual C++ 2010 Service Pack 1 Redistributable Package MFC Security Update"

- -

This error is reported again in the last year. It seems to be the most common cause of Natlink not starting when you start Dragon.

- -

Installing this package could help, it goto https://www.microsoft.com/en-us/download/details.aspx?id=26999.

- -

You need the file vcredist_x86.exe.

  • You can install this package, but also uninstall again if it did not help or presented problems.
  • It is probably wise to restart your computer after an install of uninstall of this package.
  • In february 2019, it was confirmed by Justin Hall that this install solved the problem, and in March 2019 again by Anatole M. Clubs (name correct?).
- -

2. Possibly registering natlink.pyd failed.

  • Remove natlink.py fro the core directory (eg. C:\Natlink\Natlink\MacroSystem\core).
  • Re-run the config program, hopefully this now works.
  • If these steps fail, try to do it manually:
-
  1. Close Dragon
  2. Go to the subdirectory PYD of the Core directory.
  3. Copy the correct file from the PYD subdirectory into the core directory, and rename the file to natlink.pyd. 2.5, 2.6 and 2.7 referring to the python version you use, and ANSI for Dragon up to version 11, UNICODE for Dragon 12, 13, 14, and Ver15 for version 15.
  4. Rename this file to natlink.pyd -This is the "dll" file with which NatLink communicates with Dragon.
  5. Manually tweak the natlinkstatus.ini file: the line NatlinkPydRegistered = 27;15 should hold something like this, 27 being python2.7 and 15 being Dragon 15.
  6. You can register this file to windows manually after you close Dragon. See the short video:
- -

Finally restart Dragon. Maybe your problem is solved.

 

-

3. Maybe there is something wrong with the dll file msvcr100.dll

- -

I believe above step should have solved this dll problem, correct me if I am wrong.

- -

If you suspect this, try the following steps:

-

Probably these steps are outdated, so try these only if you know what you are doing

-
    • goto the natlink core directory (eg C:\NatLink\NatLink\MacroSystem\core) and then
    • goto the subdirectory msvcr100fix.
    • read the README.txt
    -
  • Restart Dragon. Hopefully it works.
- -

"No valid DNS INI files Dir found"

  • These should automatically found by the configure program. If not, they can be specified in the info panel of the configure GUI, or with the "c" option in the natlinkconfigfunctions.py program. Should not happen in recent versions of Dragon though.
  • The most probable path is C:\ProgramData\Application Data\Nuance\NaturallySpeaking12 (Dragon 12)
  • This should be fixed with version 4.1quebec.
- -

Most grammar files do not start.

-

You see this in the Messages window like:

-

errorswindowsextensionsnotcorrectinstalled

- -

A possible fix is running the script start_postinstallscript_pywin32.cmd in admin mode. You can find this file in the directory ...\natlink\natlink\confignatlinkvocolaunimacro. Right click on the file and Run as Administator.

- -

Actions.ini

- -

Changed python version

-

If you changed your python version, eg from 2.5 to 2.7 running the Config program should note this and do the necessary changes.

-
  • Take the Basic actions above, and check your python version in the info panel of the configure program.
- -

Configuration GUI or Configuration CLI do not run

  • It can happen that the python shortcut has been changed. You can either:
    • Open start_configurenatlink.py or start_natlinkconfigfunctions.py in IDLE and run from there
    • Assign python.exe to the start_configurenatlink.py file (or any .py python file) by right clicking on the file (in an explorer window), and choose Open with, Choose default program, and then choose python.exe.
    -
  • A lot of effort has been put in working away at us and catching them properly. If this still prevents the configure program from running, please report.
- -

If nothing else works

-

You can manually disable NatLink by changing the file nsapps.ini. See page problems with NatLink, near the bottom.

- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/problemswithnatlink.html b/website unimacro/html/installation/installforpython27/problemswithnatlink.html deleted file mode 100644 index 35dbfd6..0000000 --- a/website unimacro/html/installation/installforpython27/problemswithnatlink.html +++ /dev/null @@ -1,126 +0,0 @@ - - -Install for python 27, problems with NatLink - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
Installation experimental version python3
log of changes Python 3
- -

Problems with the proper functioning of NatLink?

-

NatLink does not seem to function at all

  • The first check is whether the window "Messages from NatLink" comes up when Dragon starts. If that is not the case, NatLink is not enabled, or you have multiple instances of Dragon running:
- -

messageswindow

-
    • Sometimes more "instances" of Dragon (Dragon.exe) appear to be active. Kill all natspeak.exe * 32 processes in the task management window:
    -
- -

taskmanagement(see below).

-
    • and restart Dragon/Dragon.
    -
  • If the problem persists, try to (re)run the configuration program. This is done either from the Start menu or from the files itself in the subdirectory as pointed out below.
- -

Rerun the configure program from the files itself (not the Start menu):

-
  • You need to do this only if the procedure from the Start menu does not work
  • Go (in the Windows Explorer) to the natlink\confignatlinkvocolaunimacro subdirectory of your NatLink installation (often on C:\NatLink).
  • Double click on the file start_configurenatlink.py (".py" may be hidden in your view of the Explorer)
  • The configure GUI program is started in "elevated mode".
  • Likewise the Command Line Interpreter (CLI) can be run by double clicking on start_natlinkconfigfunctions.py.
- -

Commands are not recognised after opening another speech profile

-
  • This sometimes happens after switching from English to another language or vice versa. It seems Dragon 11 sometimes doesn't callback correct to NatLink if the user has changed. Solution: restart Dragon, possibly check for other Dragon instances (see next). Please report if this problem happens more often.
- -

Dragon influences accuracy of dictate (issue solved??)

-

This should not happen anymore in Dragon 12 and later.

-

This is/was a very serious issue, which is the same time hard to test. Several users think this happened (including me, Quintijn, the maintainer of this website). The problem seems to have been solved in Dragon 12.

- -

Vocola commands are not updated

  • When this is still an issue, please report this.
- -

How to revert to Dragon without NatLink:

-

1. Disable NatLink:

  • Disable NatLink (uninstall is NOT needed, just Disable)(in the Configure GUI of Configure CLI, run in elevated mode).
  • If this does not work, you can disable NatLink manually by removing the following 2 lines at or near the bottom of the file nsapps.ini (on my NatSpeak 10, Windows Vista installation located on -C:\ProgramData\Nuance\NaturallySpeaking10). I did not need to be there for quite a number of years.
- -

[.Natlink]
-App Support GUID={dd990001-bb89-11d2-b031-0060088dc929}

-
  • Be sure no instances of Dragon are still running, see instructions at the top of this page.
  • When you restart Dragon the "Messages from NatLink" should not show up any more.
- -

2. If you still have problems with your speech profile/Dragon installation:

-
  • Repair your Dragon (Dragon NaturallySpeaking) installation, do not forget possible Service Packs.
  • Import your previously exported speech profiles (Manage Users -> Advanced -> Import...).
  • If you did not export your speech profiles before starting with NatLink, you can try to Restore your automatic Backup of your speech profiles (Manage Users -> Advanced -> Restore...).
  • As last resort make new speech profiles.
- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/settinghome/advancedsettings.jpg b/website unimacro/html/installation/installforpython27/settinghome/advancedsettings.jpg deleted file mode 100644 index 1b26fc3..0000000 Binary files a/website unimacro/html/installation/installforpython27/settinghome/advancedsettings.jpg and /dev/null differ diff --git a/website unimacro/html/installation/installforpython27/settinghome/homeinenvironmentvariables.jpg b/website unimacro/html/installation/installforpython27/settinghome/homeinenvironmentvariables.jpg deleted file mode 100644 index 224d4de..0000000 Binary files a/website unimacro/html/installation/installforpython27/settinghome/homeinenvironmentvariables.jpg and /dev/null differ diff --git a/website unimacro/html/installation/installforpython27/settinghome/index.html b/website unimacro/html/installation/installforpython27/settinghome/index.html deleted file mode 100644 index 529550f..0000000 --- a/website unimacro/html/installation/installforpython27/settinghome/index.html +++ /dev/null @@ -1,113 +0,0 @@ - - -Install for python 27, Setting HOME - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
Installation experimental version python3
log of changes Python 3
- -

Configure environment variables

-

For some grammars and for some configure tricks in the configure program (not the config GUI though) you can use environment variables.

- -

The most important one is HOME, also the shorthand notation ~ is used.

-
  • When HOME is not set explicitly, the value of PERSONAL is taken, on my system for example pointing to "C:\Users\Quintijn\Documents"
- -

Setting your HOME variable

  • When you want to set HOME to a user independent directory, you need to set the HOME environment variable, see below (the pictures are from a Dutch Windows 7 computer):
  • Go to the System properties (Press Windows+Break key):
- -

systemproperties

-
  • Click on Advanced Settings and in the next dialog click on Environment variables
- -

advancedsettings

-
  • Note HOME can be configured already, like in this example:
- -

homeinenvironmentvariables

-
  • If it is not, click on New, and edit like:
- -

makenewenvironmentvariable

- -

Now you can, probably after a restart of Dragon, use ~ or %HOME% for your HOME directory!

- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/settinghome/makenewenvironmentvariable.jpg b/website unimacro/html/installation/installforpython27/settinghome/makenewenvironmentvariable.jpg deleted file mode 100644 index 703ba48..0000000 Binary files a/website unimacro/html/installation/installforpython27/settinghome/makenewenvironmentvariable.jpg and /dev/null differ diff --git a/website unimacro/html/installation/installforpython27/settinghome/systemproperties.jpg b/website unimacro/html/installation/installforpython27/settinghome/systemproperties.jpg deleted file mode 100644 index 96c0f80..0000000 Binary files a/website unimacro/html/installation/installforpython27/settinghome/systemproperties.jpg and /dev/null differ diff --git a/website unimacro/html/installation/installforpython27/settingupbestmatchfournewuser.png b/website unimacro/html/installation/installforpython27/settingupbestmatchfournewuser.png deleted file mode 100644 index 2209215..0000000 Binary files a/website unimacro/html/installation/installforpython27/settingupbestmatchfournewuser.png and /dev/null differ diff --git a/website unimacro/html/installation/installforpython27/speechmodel.html b/website unimacro/html/installation/installforpython27/speechmodel.html deleted file mode 100644 index b90fb29..0000000 --- a/website unimacro/html/installation/installforpython27/speechmodel.html +++ /dev/null @@ -1,121 +0,0 @@ - - -Install for python 27, Speech Model - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
Installation experimental version python3
log of changes Python 3
- -

Problems with Speech Model BestMatch V

-

NatLink functions poorly with Speech Model BestMatch V (Dragon 12)

-
  • Note: this problem seems to have been only for Dragon 12.
- -

Dragon NaturallySpeaking versions 12 and onwards offer a new Speech Model, BestMatch V, by default on many machines. It is claimed that accuracy is improved with this Speech Model, although independent tests seem to indicate that the improvement often fades over time.

- -

Unfortunately, this new speech model handles even mildly-complicated command grammars very poorly: when using such grammars, it can take multiple seconds for your utterances to be typed or take effect, which is extremely frustrating. Accordingly, we recommend that if you use NatLink you stick with BestMatch IV, which has essentially the same accuracy and does not suffer from slow recognition.

- -

When starting up NatLink (together with Dragon) the speech model of the User Profile that is open is checked. A warning is given in the Messages from NatLink window, at start when you use the BestMatch V Speech model. This check is also performed when you change your User Profile.

- -

How to use BestMatch IV (or even BestMatch III) instead of BestMatch V?

- -

settingupbestmatchfournewuser

- -

You should create a new User Profile.

-

With the Dragon option Profile, New User Profile, New or with Profile, Manage User Profiles, New you find this dialog window.

- -


-

createbestmatchfouradvanced

- -

After several screens in the setup wizard you come to this dialog. Choose the Advanced button!

- -


-

choosebestmatchfourinsteadofbestmatchfive

- -

Choose in this dialog for the BestMatch IV option that is closest to the BestMatch V option that was specified already. Note that BestMatch III is probably even faster if your work relies more on commands than on dicate.

- -


- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/taskmanagement.png b/website unimacro/html/installation/installforpython27/taskmanagement.png deleted file mode 100644 index e80fad7..0000000 Binary files a/website unimacro/html/installation/installforpython27/taskmanagement.png and /dev/null differ diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/batchmodeforconfiguration.html b/website unimacro/html/installation/installforpython27/technicaldetails/batchmodeforconfiguration.html deleted file mode 100644 index 48c5331..0000000 --- a/website unimacro/html/installation/installforpython27/technicaldetails/batchmodeforconfiguration.html +++ /dev/null @@ -1,133 +0,0 @@ - - -technical details, batch mode for configuration - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
  Natlinkstatus
  Natlinkconfigfunctions
  Natlinkcorefunctions
  configure GUI
  Batch mode for configuration
  Installer
  Natlinkmain_vocola_main
  Natlinkmain
  Natlinkutils
  Nsformat
  Testing natlink
  Working with subversion
Installation experimental version python3
log of changes Python 3
- -

Batch mode for configuration

-

Batch mode can be used in order to automate the configuration. The examples below show this, with absolute paths for my (Quintijn) configuration of python and NatLink.

- -

Save the code into a .bat file, and run in elevated mode (Windows Vista and Windows 7).

- -

Disable:

-

rem -E disable natlink
-C:\python25\python.exe D:\natlink\natlink\confignatlinkvocolaunimacro\natlinkconfigfunctions.py -E

- -

Enable in a standard way:

-

rem -e enable natlink
-rem -n set userdirectory to path
-rem -o set unimacro user directory (for user ini files)
-rem -v enable vocola with user files in path
-rem note: ~ is identical to %HOME%
-C:\python25\python.exe D:\natlink\natlink\confignatlinkvocolaunimacro\natlinkconfigfunctions.py -e -n D:\natlink\unimacro -v %HOME%/vocolaqh -o ~\unimacroqh

- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/configuregui.html b/website unimacro/html/installation/installforpython27/technicaldetails/configuregui.html deleted file mode 100644 index 36dbb8c..0000000 --- a/website unimacro/html/installation/installforpython27/technicaldetails/configuregui.html +++ /dev/null @@ -1,122 +0,0 @@ - - -Install for python 27, technical details, configure GUI - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
  Natlinkstatus
  Natlinkconfigfunctions
  Natlinkcorefunctions
  configure GUI
  Batch mode for configuration
  Installer
  Natlinkmain_vocola_main
  Natlinkmain
  Natlinkutils
  Nsformat
  Testing natlink
  Working with subversion
Installation experimental version python3
log of changes Python 3
- -

Configure GUI

-

The configure GUI is now part of the installer. If you choose Configure NatLink via GUI from the start menu after you install NatLink from the .exe installer, this GUI is opened.

- -

The necessary elevated mode is automatically started when you use the scripts from the start menu:

-
  • The "Configure Natlink with GUI" link opens start_configurenatlink.py, this python program does the rest (thanks to Mark)
- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/index.html b/website unimacro/html/installation/installforpython27/technicaldetails/index.html deleted file mode 100644 index 348a97d..0000000 --- a/website unimacro/html/installation/installforpython27/technicaldetails/index.html +++ /dev/null @@ -1,124 +0,0 @@ - - -Install for python 27, technical details - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
  Natlinkstatus
  Natlinkconfigfunctions
  Natlinkcorefunctions
  configure GUI
  Batch mode for configuration
  Installer
  Natlinkmain_vocola_main
  Natlinkmain
  Natlinkutils
  Nsformat
  Testing natlink
  Working with subversion
Installation experimental version python3
log of changes Python 3
- -

Technical details

-

The pages in this section provides more details about some technical issues. They will be revised when time goes.

- -

Dragon 11

-

With Dragon 11 several changes made quite a few adaptations in NatLink and Unimacro necessary. The details can be found in the different unittest programs (in the PyTest directory of NatLink). -But the most important changes are:

-
  • Word properties are no longer returned by NatLink, but...
  • A new word format makes extracting a lot of properties possible (see link(/installation/technicaldetails/nsformat.html, nsformat)).
  • The imported rules <dgnletters> and <dgnwords> are no longer recognized. Only <dgndictation> remains. (This is the equivalent of <_anything> in Vocola.)
- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/installer.html b/website unimacro/html/installation/installforpython27/technicaldetails/installer.html deleted file mode 100644 index b53b8e7..0000000 --- a/website unimacro/html/installation/installforpython27/technicaldetails/installer.html +++ /dev/null @@ -1,130 +0,0 @@ - - -Install for python 27, technical details, installer - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
  Natlinkstatus
  Natlinkconfigfunctions
  Natlinkcorefunctions
  configure GUI
  Batch mode for configuration
  Installer
  Natlinkmain_vocola_main
  Natlinkmain
  Natlinkutils
  Nsformat
  Testing natlink
  Working with subversion
Installation experimental version python3
log of changes Python 3
- -

Installer

-

Using the installer program (with inno setup) is not very difficult. It is controlled from the python script -setupnatlinkwithinno.py, which resides in NatLink/natlinkInstaller.

- -

You need the program inno setup on your computer, and you need to have both NatLink and Unimacro files via subversion (SVN).

- -

Local actions:

-

Do the following steps:

  • change _version_ in natlinkstatus (Core directory)
  • Update Unimacro and NatLink
  • Commit NatLink
  • Export (a SVN command) both Unimacro and NatLink into a new folder (eg D:\NatLink\releases\natlink4.0)
  • This folder then has subfolders NatLink and Unimacro!
  • Run the script setupnatlinkwithinno.py from the file in this directory (D:\NatLink\releases\natlink4.0\NatLink\natlinkInstaller)
- -

The resulting setup....exe will be created in a directory dist (D:\NatLink\releases\natlink4.0\dist) and will be called -setup-NatLink-4.0.exe (4.0 being the release number).

- -

Going to sourceforge

  • Next you must go to http://sourceforge.net.
  • Login and search for natlink.
  • Go to the files section and follow the instructions.
  • Upload the .exe file.
  • You also need a README.txt file, which shows a short instruction on the relevant download page.
- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/natlinkconfigfunctions.html b/website unimacro/html/installation/installforpython27/technicaldetails/natlinkconfigfunctions.html deleted file mode 100644 index 529e87a..0000000 --- a/website unimacro/html/installation/installforpython27/technicaldetails/natlinkconfigfunctions.html +++ /dev/null @@ -1,216 +0,0 @@ - - -technical details, natlinkconfigfunctions - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
  Natlinkstatus
  Natlinkconfigfunctions
  Natlinkcorefunctions
  configure GUI
  Batch mode for configuration
  Installer
  Natlinkmain_vocola_main
  Natlinkmain
  Natlinkutils
  Nsformat
  Testing natlink
  Working with subversion
Installation experimental version python3
log of changes Python 3
- -

NatLink Configuration Functions

-

This module natlinkconfigfunctions.py is in the same directory as the configure GUI. It contains the necessary functions for the configuration procedure. If run direct, use

-
  • IDLE (right click on the file, Edit with IDLE and press F5. (at exit (q) some strange message may show up, just ignore)
  • python (right click on the file, Open with, python)
  • PythonWin (right click on the file, Edit with PythonWin; Press F5)
- -

When the CLI starts, and also the config GUI, some checks are performed as to the current installation:

-
  • It must find the coreDirectory to be in the same directory tree as the calling module. If this fails, something strange is happening.
  • The path of the coreDirectory is compared with settings in registry of the PythonPath section. If something differs, you started the CLI or config GUI from another location as before. You are asked to either:
    • (re)register NatLink.dll, and setting the correct paths in the registry. Quit the program and restart NatSpeak. Note you loose previous settings of eg VocolaUserDirectory.
    • quit this program and rerun from the location you used before for configuring NatLink.
    -
- -

The current commands of the CLI are:

-

i       - info, print information about the NatLink status
-I       - settings, print information about the natlinkstatus.ini settings
-j       - print PythonPath variable
-
-[NatLink]
-
-e/E     - enable/disable NatLink
-
-y/Y     - enable/disable debug callback output of natlinkmain
-x/X     - enable/disable debug load output     of natlinkmain
-
-d/D     - set/clear DNSInstallDir, the directory where NatSpeak/Dragon is installed
-c/C     - set/clear DNSINIDir, where NatSpeak/Dragon INI files are located
-
-[Vocola]
-
-v/V     - enable/disable Vocola by setting/clearing VocolaUserDirectory, the user
-          directory for Vocola Command Files (.vcl) (~ or %HOME% allowed, see below).
-
-b/B     - enable/disable distinction between languages for Vocola user files
-a/A     - enable/disable the possibility to use Unimacro actions in Vocola
-
-[Unimacro]
-
-o/O     - enable/disable Unimacro, by setting/clearing the UnimacroUserDirectory, where
-          the Unimacro User (Ini) Files are located, and several other directories (~ or %HOME% allowed, see below)
-f/F     - force Unimacro directory to be in the python path, even if
-          Unimacro is disabled (-F: do not force this)
-p/P     - set/clear path for program that opens Unimacro User (Ini) Files (if cleared, notepad is used)
-l       - copy header file Unimacro.vch into Vocola User Directory
-m/M     - insert/remove an include line for Unimacro.vch in all Vocola
-          command files
-
-[UserDirectory]
-n/N     - enable/disable UserDirectory, the directory where
-          User NatLink grammar files are located (e.g., ...\Documents\NatLinkUserDirectory)
-          (see Note below on the change in October 2015)
-
-[Repair]
-r/R     - register/unregister NatLink, the natlink.pyd (natlink.pyd) file
-          (should not be needed)
-z/Z     - silently enables NatLink and registers natlink.pyd / disables NatLink
-          and unregisters natlink.pyd.
-[AutoHotkey]
-h/H     - set/clear the AutoHotkey exe directory.
-k/K     - set/clear the User Directory for AutoHotkey scripts.
-[Other]
-
-u/usage - give this list
-q       - quit
-
-help <command>: give more explanation on <command>

- -

Using ~ or %USERNAME%, %PROGRAMFILES% etc.

-

Using these variables (~ is equal to %HOME%), variable paths can be set for the various directories. This can only be done by using the CLI, or using the natlinkconfigfunctions in batch mode. This trick cannot be used in the config GUI. See the link(/installation/settinghome/index.html, Setting HOME Variable) page for more explanation.

- -

enable/disable NatLink

-

The commands e to enable and E to disable should be enough.

- -

enable/disable Vocola

-

Assume _vocola_main.py is in the baseDirectory of NatLink, eg C:\NatLink\NatLink\MacroSystem. You should not worry about this directory.

- -

Vocola will be enabled when a valid VocolaUserDirectory is set with the v option. The path can be something like ~\VocolaUser. Your Vocola Command Files will be located in this directory.

- -

When this directory is cleared (V) Vocola is disabled and will not load when NatLink starts at Dragon startup.

- -

enable/disable Unimacro

-

This is done by setting a UnimacroUserDirectory (option o), the path can be for example: ~/UnimacroUser). User Ini Files will be located in this directory. The grammar files of Unimacro are in the NatLink tree, eg C:\NatLink\Unimacro.

- -

Disable by clearing this directory (option U).

-

Special Vocola option: use different languages

-

If enabled (b), Vocola will look and put its Command Files into a subdirectory "xxx" of -VocolaUserDirectory IF the language code of -the user speech profiles is different from "enx".

- -

So for English users this option will have no effect, the Command Files are in ~\VocolaUser, but...

-
  • Dutch will go in ~\VocolaUser\nld,
  • French in ~\VocolaUser\fra
  • German in ~\VocolaUser\deu
  • Italian in ~\VocolaUser\ita
  • Spanish in ~\VocolaUser\esp
- -

But as soon as you switch off this option (B) Vocola will get and put all Command Files from/in the VocolaUserDirectory (in our example: ~\VocolaUser).

- -

Python versions

  • Natlink.pyd is still compiled for python 2.5, but only for Dragon up to version 11.5.
  • For both Dragon <= 11.5 and for Dragon 12 and above there are now natlink.pyd versions for python 2.6 and python 2.7.
- -

Older versions of Dragon NaturallySpeaking

-

Older versions of Dragon should be working with Python 2.5, 2.6 and 2.7.

- -

If you have an older version of Dragon NaturallySpeaking, try to configure the

-
  • DNSInstallDir (option d) and
  • DNSIniDir (option c).
- -

PythonPath strategy

-

How Dragon finds natlink:

  • The coreDirectory is inserted in the python path by defining them in the registry(eg for python 2.7) HKLM\SOFTWARE\Python\PythonCore\2.7\PythonPath\NatLink (HKLM stands for HKEY_LOCAL_MACHINE). This is the way Dragon can find natlink.pyd.
  • The BaseDirectory, UnimacroDirectory and the UserDirectory, whenever active, are set by natlinkmain.py into the PythonPath variable, when Dragon starts.
- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/natlinkcorefunctions.html b/website unimacro/html/installation/installforpython27/technicaldetails/natlinkcorefunctions.html deleted file mode 100644 index 048276a..0000000 --- a/website unimacro/html/installation/installforpython27/technicaldetails/natlinkcorefunctions.html +++ /dev/null @@ -1,149 +0,0 @@ - - -technical details, natlinkcorefunctions - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
  Natlinkstatus
  Natlinkconfigfunctions
  Natlinkcorefunctions
  configure GUI
  Batch mode for configuration
  Installer
  Natlinkmain_vocola_main
  Natlinkmain
  Natlinkutils
  Nsformat
  Testing natlink
  Working with subversion
Installation experimental version python3
log of changes Python 3
- -

NatLink Core Functions

-

This module natlinkcorefunctions.py is in the Core directory.

- -

The functions are used by natlinkstatus.py, -and can also used by other modules.

- -

The most important are:

-

getExtendedEnv

-

You can use this function for expanding ~ or %HOME% to your personal home directory, or for other%XXXX% variables.

- -

Note: By default for ~ or %HOME% the value of %PERSONAL% is taken, which points to the default documents directory of the user that is logged in (%USERPROFILE%\Documents). If you want another value for %HOME% (and therefore for ~), you can specify this via the Environment Variables menu in the System Properties program. See an example.

- -

Starting September 2015 also the actual NatLink directories can be expanded, with a similar function in natlinkstatus.py. For usage and examples, please see natlinkstatus.

- -

Functions of natlinkcorefunctions:

- - - - - - - - - - -

function

description

getBaseFolder

returns the folder from the calling module (a function like this should be copied into other modules that need this facility)

fatalError

raises error again, if new_raise is set, otherwise continues executing (for this module only)

getExtendedEnv(env)

gets from os.environ, or from window system calls (CSIDL_...) the -environment. If HOME is not set (see above), take PERSONAL for HOME and ~.

- -

Run the module in order to see all the possibilities.

getAllFolderEnvironmentVariables

get a dict of all possible HOME and CSIDL variables, -that result in a valid folder path

substituteEnvVariableAtStart

substitute back into a file/folder path an environment variable

- -

 

- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/natlinkmain.html b/website unimacro/html/installation/installforpython27/technicaldetails/natlinkmain.html deleted file mode 100644 index 0e5401c..0000000 --- a/website unimacro/html/installation/installforpython27/technicaldetails/natlinkmain.html +++ /dev/null @@ -1,191 +0,0 @@ - - -Install for python 27, technical details, natlinkmain - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
  Natlinkstatus
  Natlinkconfigfunctions
  Natlinkcorefunctions
  configure GUI
  Batch mode for configuration
  Installer
  Natlinkmain_vocola_main
  Natlinkmain
  Natlinkutils
  Nsformat
  Testing natlink
  Working with subversion
Installation experimental version python3
log of changes Python 3
- -

Changes in natlinkmain.py

-

Quite a few changes in this basic file in the course of the years.

-
  • August 2011: function reorderKeys to influence the order of loading the grammars. Needed for some Unimacro grammars.
- -

Below the details of the changes:

-

Global variables (see also natlinkutilsqh module)

- - - - - - - - - - - - - - - - - - - -

Most of them taken from status (natlinkstatus)

variable

meaning

DNSdirectory

holds the NatSpeak folder

DNSversion

holds the version (5??,6??, 7??, 8, 9) as an integer

WindowsVersion

holds the current windows version

DNSmode

can hold the mode (1 for dictate, 2 for command etc), not used currently

language

the language code of the NatSpeak speech profile (enx, nld etc) ,

BaseModel

the acoustic model of the current user

BaseTopic

the topic of the current user (vocabulary)

checkForGrammarChanges

set initially 0, can be set to one, see below, but not needed

- -

 

-

Some functions of natlinkmain

-

(collect values of status through natlinkstatus or (in Unimacro) through wrapper functions in natlinkutilsqh.py)

- - - - - - - - - -

some of the functions are mentioned here, consult the source file also

function

comment

setCheckForGrammarChanges

Sets the variable checkForGrammarChanges, should be called from the identical function in natlinkutilsqh. This function is used in the grammar control, see below, that is in other cases probably not needed.

beginCallback

An optional parameter checkAll is added, and also the value of*checkForGrammarChanges*is checked. See below, -Also a special arrangement for _vocola_main has been made.

changeCallbackLoadedModules

This function ensures an extra changeCallback function in each grammar can be called, in order to switch off exclusive modes when the microphone is toggled. Used presently in the Unimacro grammars oops, control and repeat,

- -

 

-

Debug possibilities:

-

The following variables at the top of the file can be set to 1, if you want to have more in the back output. Restart natspeak in that case (this is now in the configuration functions)

- - - - - - - -

Variable

comment

debugLoad

Print extra information at load time (can be configured in configuration procedure)

debugCallback

Print lots of information at callback time (can be configured in configuration procedure)

debugTiming

Print some information when natpython checks for changed global grammar file (not much used, check if you want)

- -

 

-

The automatic checking for changed grammars

-

This feature has been turned off in this version of natlinkmain! Originally Joel Gould designed to system to check for changed grammar files at each speech utterance. This saves a delay of 0.01 to 0.02 seconds each utterance.

- -

With this version of natlinkmain, only when the microphone toggles, the complete check is performed.

- -

BUT the global variable checkForGrammarChanges can be set in the natlinkmain.py file. The Unimacro grammar control sets this variable as soon as you call edit grammar grammarname for some grammarname. So as soon as you call through the Unimacro system that you want to change a grammar file, the automatic checking for grammar files is turned on, through the function setCheckForGrammarChanges.

- -

And... if _vocola_main reports changes of user files at beginCallback also the grammars will be checked once.

- -

When the natpython macrosystem restarts, most often when restarting NatSpeak, the automatic checking is switched off again.

- -

Search order of python modules

-

If the userDirectory of NatLink is set (most often Unimacro is on then), this directory is inserted at the front off sys.path. When modules are loaded, this directory goes first.

-
  • The order of the modules can be hardcoded in the function reorderKeys. See source code.
  • The Unimacro grammar "_control" (if present) is loaded last. Because it can then fill the lists with introspection commands in the correct away.
  • For some special applications in the grammar _lines the _tasks grammar is called, so _task goes first in the loading order (after _vocola_main)
- -

Allowed application names

-

the regular expression for searching application-specific grammars has been generalised. I believe all characters can now appear in the programme name, like ++ (in Notepad++). There is one exception: a leading _ (underscore) as this is for global grammars.

- -

Order of loading

- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/natlinkmainvocolamain.html b/website unimacro/html/installation/installforpython27/technicaldetails/natlinkmainvocolamain.html deleted file mode 100644 index b4760be..0000000 --- a/website unimacro/html/installation/installforpython27/technicaldetails/natlinkmainvocolamain.html +++ /dev/null @@ -1,137 +0,0 @@ - - -technical details, natlinkmain_vocola_main - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
  Natlinkstatus
  Natlinkconfigfunctions
  Natlinkcorefunctions
  configure GUI
  Batch mode for configuration
  Installer
  Natlinkmain_vocola_main
  Natlinkmain
  Natlinkutils
  Nsformat
  Testing natlink
  Working with subversion
Installation experimental version python3
log of changes Python 3
- -

natlinkmain and _vocola_main

-

Natlinkmain controls the calling back at the beginning of each utterance (beginCallback) and after each change of microphone state or change of user (speech profile) (changeCallback, of type "mic" or of type "user").

- -

beginCallback

-

This function is called before all the grammar files (in the userDirectory - for example Unimacro grammars - and in the baseDirectory - _vocola_main.py and grammars that are generated by Vocola) are called back in gotBegin.

- -

Vocola needs a special action at this moment, because when a Vocola user file has been changed, Vocola must run the vcl2py procedure in order to produce the appropriate python grammar file.

- -

In order to do this natlinkmain calls the function _vocola_main.vocolaBeginCallback. This function can see if anything has been changed. If so runs the vcl2py procedure and reports back if a new python grammar file has been made (2) or an existing python grammar file has been changed (1). If nothing was changed it simply returns None. Natlinkmain takes the appropriate action in checking grammar files or loading the new grammar files.

- -

changeCallback

-

When a new user is opened this natlinkmain function runs. All grammar files are unloaded, and loaded again. In this procedure _vocola_main goes first. It deletes all grammar files that were generated before, and runs vcl2py to make new grammar files. After this step all the grammar files are loaded.

- -

What if Vocola is not running

-

If Vocola is not active (see in configuration procedure), it should have an instance variable vocolaEnabled set to None. If Vocola is active this variable should be 1.

- -

So in order to have natlinkmain work correct, _vocola_main.py should be valid and do it least above things.

- -

Checking for changed Vocola command files

-

By default checking for changed Vocola command files is performed at each utterance.

- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/natlinkstatus.html b/website unimacro/html/installation/installforpython27/technicaldetails/natlinkstatus.html deleted file mode 100644 index a1e6ce9..0000000 --- a/website unimacro/html/installation/installforpython27/technicaldetails/natlinkstatus.html +++ /dev/null @@ -1,268 +0,0 @@ - - -Install for python 27, technical details, natlinkstatus - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
  Natlinkstatus
  Natlinkconfigfunctions
  Natlinkcorefunctions
  configure GUI
  Batch mode for configuration
  Installer
  Natlinkmain_vocola_main
  Natlinkmain
  Natlinkutils
  Nsformat
  Testing natlink
  Working with subversion
Installation experimental version python3
log of changes Python 3
- -

Natlinkstatus module

-

This module holds "status" information about NatLink (new around 2008, version 3.7). It is in the core folder of NatLink. Both natlinkmain and the NatLink install functions (natlinkconfigfunctions)can make use of the status info in the same way.

- -

In a grammar a status instance can be got:

-

import natlinkstatus
-status = natlinkstatus.NatlinkStatus()

- -

and the functions can be called accordingly with eg:

-

    userDir = status.getUserDirectory()

- -

So, most data are collected through this instance "status" of the NatlinkStatus class.

- -

Up to version 3.8 most of these data were stored and retrieved in the registry, HKCU\software\NatLink (HKEY_CURRENT_USER). Only the username and the folder of the speech profile of the current user is collected when the user changes, and is maintained in this class, as a class variable.

- -

Starting with version 3.9 the user settings are stored in a configuration file (natlinkstatus.ini), which is created on first use in the Core directory. When migrating from a previous version, the registry settings are copied into this natlinkstatus.ini file.

- -

The functions below are in class NatlinkStatus. The natlinkconfigfunctions
-can subclass this class.

- -

The following functions manage information that partly can change at changeCallback time

- -

(when a new user opens)

-


-setUserInfo(args) put username and directory of speech profiles of the last opened user in this class.
-getUserName: get active username (only if NatSpeak/NatLink is running)
-getDNSuserDirectory: get directory of user speech profile (only if NatSpeak/NatLink is running)

- -

The functions below should not change anything in settings, only get information.

- -

getDNSInstallDir:
-    returns the directory where NatSpeak is installed.
-    if the registry key NatspeakInstallDir exists(CURRENT_USER/Software/NatLink),
-    this path is taken (if it points to a valid folder)
-    Otherwise one of the default paths is taken,
-    %PROGRAMFILES%\Nuance\... or %PROGRAMFILES%\ScanSoft\...
-    It must contain at least a Program subdirectory
-
-getDNSIniDir:
-    returns the directory where the NatSpeak Inifiles are located,
-    notably nssystem.ini and nsapps.ini.
-    If the registry key NatspeakIniDir exists (CURRENT_USER/Software/NatLink),
-    and the folder exists and the needed inifiles are in this folder this path is returned.
-    Otherwise it is looked for in %COMMON_APPDATA%\Nuance\... or %COMMON_APPDATA%\Scansoft\...
-
-getDNSVersion:
-    returns the in the version number of NatSpeak, as an integer. So 9, 8, 7, ... (???)
-    note distinction is made here between different subversions.
-
-getWindowsVersion:
-    see source below
-
-getLanguage:
-    returns the 3 letter code of the language of the speech profile that
-    is open (only possible when NatSpeak/NatLink is running)
-
-getPythonVersion:
-    returns, as a string, the python version. Eg. “2.3”
-    If it cannot find it in the registry it returns an empty string
-
-getUserDirectory: get the NatLink user directory, Unimacro will be there. If not return ’’
-
-getVocolaUserDirectory: get the directory of Vocola User files, if not return ’’
-
-NatlinkIsEnabled:
-    return 1 or 0 whether NatLink is enabled or not
-    returns None when strange values are found
-    (checked with the Ini file settings of NSSystemIni and NSAppsIni)
-
-getNSSYSTEMIni(): get the path of nssystem.ini
-getNSAPPSIni(): get the path of nsapps.ini
-
-getBaseModelBaseTopic:
-    return these as strings, not ready yet, only possible when
-    NatSpeak/NatLink is running.
-
-getDebugLoad:
-    get value from registry, if set do extra output of natlinkmain at (re)load time
-getDebugCallback:
-    get value from registry, if set do extra output of natlinkmain at callbacks is given
-
-getVocolaTakesUnimacroActions
-getVocolaTakesLanguages: additional settings for Vocola
-
-more: see source...

- -

When run the module in IDLE or Pythonwin on my desktop (Quintijn) I get:

- -

UserDirectory: D:\natlink\unimacro
-inserted in sys.path: D:\natlink\unimacro
----NatLink is enabled
- CoreDirectory D:\natlink\natlink\MacroSystem\core
- InstallVersion 3.8
----Vocola is enabled
- VocolaUserDirectory D:\Documenten\vocolaqh
- VocolaTakesLanguages 1
----Unimacro is enabled
- UserDirectory D:\natlink\unimacro
- UnimacroUserDirectory D:\Documenten\unimacroqh
- UnimacroIniFilesEditor C:\Program Files\ActiveState Komodo IDE 5\komodo.exe
-other NatLink info:
- DebugLoad -
- DebugCallback -
- NatlinkDebug -
-system information:
- DNSInstallDir C:\Program Files\Nuance\NaturallySpeaking9
- DNSIniDir C:\Documents and Settings\All Users\Application Data\Nuance\NaturallySpeaking9
- DNSVersion 9
- WindowsVersion XP
- PythonVersion 2.5
-remaining information:
- DNSFullVersion 9.51.200.282
- NatlinkDllRegistered 1
- IncludeUnimacroInPythonPath -

- -

Expanding Environment Variables

-

This was described already in natlinkcorefunctions. But via natlinkstatus, this expansion mechanism can also use a few Natlink related variables. Note the variables are case sensitive.

- -

Usage example:

-

import natlinkstatus
-
-short = ”~/Quintijn”
-expanded = natlinkstatus.expandEnvVars(short)
-print ‘Some directory in home:’, expanded
-
-# the Dragon directory:
-short = ”%PROGRAMFILES%/Nuance”
-expanded = natlinkstatus.expandEnvVars(short)
-print “The dragon directory: %s”% expanded
-# the Dragon ini files directory:
-short = ”%COMMON_APPDATA%/Nuance”
-expanded = natlinkstatus.expandEnvVars(short)
-print “The dragon config files: %s”% expanded
-
-# log files in Unimacro:
-short = ”%UNIMACROUSERDIRECTORY%/enx_log”
-expanded = natlinkstatus.expandEnvVars(short)
-print “log files directory Unimacro: %s”% expanded
-
-# My VocolaUserDirectory:
-short = ”%VOCOLAUSERDIRECTORY%”
-expanded = natlinkstatusexpandEnvVars(short)
-print “My VocolaUserDirectory: %s”% expanded

- -

prints for example:

-

Some directory in home: C:\Documenten\Quintijn
-The dragon directory: C:\Program Files (x86)\Nuance
-The dragon config files: C:\ProgramData\Nuance
-My UnimacroUserDirectory: C:\Documenten\unimacro_qh\enx_log
-My VocolaUserDirectory: C:\Documenten\vocola_qh

- -

Read more about these extended environment variables in grammar folders.

- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/natlinkutils.html b/website unimacro/html/installation/installforpython27/technicaldetails/natlinkutils.html deleted file mode 100644 index 310773d..0000000 --- a/website unimacro/html/installation/installforpython27/technicaldetails/natlinkutils.html +++ /dev/null @@ -1,204 +0,0 @@ - - -Install for python 27, technical details, natlinkutils - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
  Natlinkstatus
  Natlinkconfigfunctions
  Natlinkcorefunctions
  configure GUI
  Batch mode for configuration
  Installer
  Natlinkmain_vocola_main
  Natlinkmain
  Natlinkutils
  Nsformat
  Testing natlink
  Working with subversion
Installation experimental version python3
log of changes Python 3
- -

Changes in natlinkutils.py

-

January, 2014: a change with the python statement import

- -

The following statement is changed, which can cause problems in NatLink grammar files:

- -

from natlink import *

-

has been changed to:

-

import natlink

-

Therefore variables, functions or exceptions from natlink (the natlink.pyd file) could be (often were) called in a confusing way:

- -

## previous:
-import natlinkutils
-# and use functions or exceptions from natlink as
-# if they were taken from natlinkutils:
-    natlinkutils.recognitionMimic(....)
-    try:
-        ...
-    except natlinkutils.BadWindow:
-        ...

- -

or even names from natlink could be called unqualified, residing in the global namespace:

- -

## previous:
-from natlinkutils import *
-
-# and use functions or exceptions from natlink as
-# if they were in the global namespace
-    recognitionMimic(....)
-    try:
-        ...
-    except BadWindow:
-        ...

- -

The preferred way to call these names:

-

As the use of from ... import * is now considered bad programming practice, we advise the following way:

- -

import natlinkutils
-import natlink
-    natlink.recognitionMimic(....)
-    try:
-        ...
-    except natlink.BadWindow:
-        ...

- -

Earlier changes:

-

Only a few minor changes, as addition to Scott Weinstein's installation are made.

-
  • "moddle" has been changed to "middle"
  • in the function activateSet a [:] is added, in order to make copy of the list of activeRules.
- -

This file should come in the core folder of the NatLink system.

-

Change January 2012 (Quintijn)

  • at callback time now also self.wordsByRule is provided. This dictionary is identical to the output of the utility function convertResults (in natlinkutils).
- -

Example (also see unittestNatlink.py, around line 2530):

-

Consider the grammar (the list {furniture} containing "table" and "chair".

- -

<run> exported = test [<optional>+] {colors}+ <extra>;
-                <optional>  = very | small | big;
-                <extra> = {furniture};

- -

The recognition test very big blue chair will go through the rules:

- - - - - - - - - -

rule

words

prevRule

nextRule

prevWords

nextWords

run

[test]

optional

[]

["very", "big"]

optional

["very", "big"]

run

run

["test"]

["blue"]

run

["blue"]

optional

extra

["very", "big"]

["chair"]

extra

["chair"]

run

["blue"]

[]

- -

 

-

The additional helper variables are:

- - - - - - -

variable

contents

self.fullResults

[('test', 'run'), ('very', 'optional'), ('big', 'optional'), ('blue', 'run'), ('chair', 'extra')]

self.seqsAndRules

[(['test'], 'run'), (['very', 'big'], 'optional'), (['blue'], 'run'), (['chair'], 'extra')]

self.wordsByRule

{'optional': ['very', 'big'], 'run': ['test', 'blue'], 'extra': ['chair']}

- -

 

-

Changes March 2010 (Quintijn)

  • added deactivateSet() function in GrammarBase
  • added exceptlist optional variable to activateAll method of GrammarBase
  • added callRuleResultsFunctions in resultsCallback, so the calling of -the rule result functions can be overloaded (for DocstringGrammar)
  • through this function the instance variables self.prevRule, self.prevWords, self.nextRule and self.nextWords are maintained, to facilitate looking forward and looking back one step in a recognition.
  • Preventing the detailed gotResults functions to execute: -In a rare case it was needed to prevent the rule functions to execute. This is the case if self.doOnlyGotResultsObject is set to 1 or True. Only the gotResultsObject function is called in this case.
- -

Subclasses

-

For the more practical subclasses of GrammarBase see the Grammar classes section.

- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/nsformat.html b/website unimacro/html/installation/installforpython27/technicaldetails/nsformat.html deleted file mode 100644 index 79ead60..0000000 --- a/website unimacro/html/installation/installforpython27/technicaldetails/nsformat.html +++ /dev/null @@ -1,173 +0,0 @@ - - -Install for python 27, technical details, nsformat - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
  Natlinkstatus
  Natlinkconfigfunctions
  Natlinkcorefunctions
  configure GUI
  Batch mode for configuration
  Installer
  Natlinkmain_vocola_main
  Natlinkmain
  Natlinkutils
  Nsformat
  Testing natlink
  Working with subversion
Installation experimental version python3
log of changes Python 3
- -

nsformat

-

This module was written by Joel Gould a few years after the initial release of NatLink. It is in the MacroSystem/Core directory of NatLink.

- -

The purpose is to do formatting of the dictated words in a window/control (VDct) was replaced by a DictGramBase subclass. By this DictGramBase all dictated words are caught, but not formatted.

- -

Nsformat can also be used to format words that are called by the dgndictation imported rule, also called _anything in Vocola.

- -

In NatSpeak versions up to 10 the word properties of each dictated word were extracted and with these word properties the words were formatted.

- -

Starting with Dragon 11 the word properties cannot be extracted by NatLink anymore, but a new mechanism of category is introduced in dictated words. Like:

- -

@\at-sign\at_sign
-.\period\period
-.\period\full stop
-.\dot\dot
-.\point\point
-,\comma\comma
-K\letter
-L\letter\Lima
-a\spelling-letter\A  (in spell mode)
-l\spelling-letter\Lima (in spell mode)
-a\determiner

- -

With these categories the formatting properties are constructed in the updated version of nsformat (with release 4.0 of NatLink).

- -

Use

-

The essential call to nsformat is:

-

import nsformat
-(...)
-    def gotResults_dgndictation(self, words, fullResults):
-        formattedOutput, outputState = nsformat.formatWords(words, state=-1)  # no capping, no spacing

-
  • Note the output is a tuple of length 2, the output text and the output state, the latter can be used in a subsequent call of nsformat.
  • This example comes (a bit adapted) from the grammar _brackets.py, see there for more implementation details.
  • Do not forget dgndictation imported; in your grammar specification. If you use the DocstringGrammar subclass (like _brackets.py), you can define importedrule_dgndictation instead.
- -

State

-

The state to start with can be given as None (default), as integer or as tuple.

- - - - - - - - - - - - - - - - - -

state

comment

None (default)

no space next, active cap next (like beginning of dictation box)

0

no properties set, will start with a space and lowercase

 -1

no space, starting with lowercase

positive integer

extract properties according to bit positions

tuple of integers

these are the "extracted properties", examples:

(8, 11)

no space at start, capitalize all words

(8, 12)

no space at start, uppercase all words

(13, 14)

no spacing, all lowercase (eg for dictating email address)

- -

 

-

See more details in the source file, nsformat.py, and in the unittest file unittestNsformat.py (in the PyTest directory of NatLink).

- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/testingnatlink.html b/website unimacro/html/installation/installforpython27/technicaldetails/testingnatlink.html deleted file mode 100644 index 9144a80..0000000 --- a/website unimacro/html/installation/installforpython27/technicaldetails/testingnatlink.html +++ /dev/null @@ -1,132 +0,0 @@ - - -Install for python 27, technical details, testing natlink - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
  Natlinkstatus
  Natlinkconfigfunctions
  Natlinkcorefunctions
  configure GUI
  Batch mode for configuration
  Installer
  Natlinkmain_vocola_main
  Natlinkmain
  Natlinkutils
  Nsformat
  Testing natlink
  Working with subversion
Installation experimental version python3
log of changes Python 3
- -

Testing natlink

-

The testing of the proper functioning of NatLink (the basics) is not quite easy.

- -

The original script was testnatlink.py.

-

Newer tests are in unittest procedures, of which unittestNatlink.py is the central one.

-
  • It should operate on a (preferably clean) US User speech profile.
  • It should be run from a command prompt or in IDLE.
- -

For nsformat there is a new unit test program, which tests different in different versions of Dragon/NatSpeak.

- -

Presently often the starting and killing of DragonPad windows presents problems. It is tried (new, March 2011) to additional bring the Dragon Bar in focus, relying on the hotkey {NumKey*}.

- -

It is best to restart the computer after doing the tests.

-

See the instructions at the top of the python file for more instructions. Also for details of failing tests in different (newer) versions.

- -

Unimacro has its own tests.

- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/checkoutexample.html b/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/checkoutexample.html deleted file mode 100644 index d27c669..0000000 --- a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/checkoutexample.html +++ /dev/null @@ -1,201 +0,0 @@ - - -technical details, Working with subversion, checkout example - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
  Natlinkstatus
  Natlinkconfigfunctions
  Natlinkcorefunctions
  configure GUI
  Batch mode for configuration
  Installer
  Natlinkmain_vocola_main
  Natlinkmain
  Natlinkutils
  Nsformat
  Testing natlink
  Working with subversion
   Checkout example
   Relocate example
Installation experimental version python3
log of changes Python 3
- -

Working with subversion (SVN)

-

Migration to new repositories

-

Summary

-

The new repositories for the projects NatLink, Unimacro and Voicecode are:

-
  • NatLink: https://svn.code.sf.net/p/natlink/code
  • Unimacro: https://svn.code.sf.net/p/unimacro/code
  • Voicecode: https://svn.code.sf.net/p/voicecode/code
- -

In all three cases you will be prompted for username (sourceforge id) and password. I am not aware of an anonymous login possibility.

- -

Below, first see more detailed instructions on how to change the repository in case you were already on subversion for (some of these) projects.

- -

Then there is more explanation for new subversion users.

-

Unimacro

-

Unimacro has on February 12, 2013 been moved to a new location. See new address above and more details below. For those who were on subversion forUnimacro before can simply do a "relocate":

- -

subversionrelocate

- -

Then enter the new location (please type in, no paste): https://svn.code.sf.net/p/unimacro/code

- -

NatLink

-

NatLink has been moved to a new location (10 March 2013). Subversion update seems to work as normal, but when you commit things you will get the following message (assuming you use TortoiseSVN):

- -

subversionerrormessagenatlink

- -

You can do a simple subversion relocate to:

-

subversionnatlinkrelocate

- -

Then enter the new location (please type in, no paste): https://svn.code.sf.net/p/natlink/code

- -

VoiceCode

-

The same for voicecode (10 March 2013). Do a subversion relocate, and choose:

- -

https://svn.code.sf.net/p/voicecode/code

-

When all is succesfull, after having been prompted for your sourceforge password, you will get the following message:

- -

voicecoderelocationsuccesfull

- -

Why and how to work with subversion

-

If you want more recent versions of files than the latest release, or if you want to contribute to NatLink, possibly Vocola, or Unimacro, you should get your files from SourceForge with subversion.

-
  • First you need a sourceforge id (USERNAME and password), as far as I know no anonymous checkout is possible. Goto sourceforge and click on join top right.
  • Then get Tortoise SVN from tigris tortoisesvn.
  • Now remove the subdirectories of Unimacro and NatLink (in case of getting both with SVN) or either one of them. Leaving you in C:\NatLink. (Another starting point, like D:\NatLink is also possible and even recommended.)
- -

These were the preliminaries. Now proceed:

  • So now assume the root of NatLink is in C:\NatLink. And you have removed one or both subdirectories NatLink and Unimacro. -NatLink
  • For NatLink: right click on C:\NatLink and choose SVN checkout.
  • Fill in for URL of repository (please type in, no paste): https://svn.code.sf.net/p/natlink/code
  • choose for checkout directory C:\NatLink\NatLink
  • you are probably prompted twice for loging (sourceforge id) and password
- -

checking out NatLink with SVN (subversion)

- -

Unimacro

  • For Unimacro: also right click on C:\NatLink and choose SVN checkout:
  • Fill in as repository (please type in, no paste): https://svn.code.sf.net/p/unimacro/code,
  • choose as checkout directory C:\NatLink\Unimacro,
  • you are probably prompted twice for loging (sourceforge id) and password
- -

checking out Unimacro with SVN (subversion)

- -

Voicecode

  • Similar actions are needed to get Voicecode: right click on C:\NatLink and choose SVN checkout:
  • Fill in as repository (please type in, no paste): https://svn.code.sf.net/p/voicecode/code,
  • choose as checkout directory C:\NatLink\Voicecode,
  • you are probably prompted twice for loging (sourceforge id) and password
- -

checking out Voicecode with SVN (subversion)

- -

Note: checking out Voicecode takes quite some time, you will be seeing the following for some time:

- -

checking out Voicecode takes some time

- -

Directory layout

-

After checking out NatLink (which includes Vocola), Unimacro and Voicecode (only for voice coders), you will see the following directory layout:

- -

directory layout after subversion checkout

- -

Vocola:

-

Note the Vocola files are in the NatLink repository.

-

Update

-

For updating you can right click on one of the folders and choose SVN update. You should do a separate Update for each of the three folders (if you checked them out).

- -

Contribute: Commit

-

If you want to commit changes (contribute to one of the projects):

-
  • You probably are registered at SourceForge.net by now,
  • You need to get permission from one of the repository administrators to do so. Mail to Quintijn, see email link at the bottom of this page.
- -

If that has been done, you can also commit -changes by right clicking on the correct folder and choose commit. Your password for SourceForge will be asked once.

- -

How to find configurenatlink.py or natlinkconfigfunctions.py

- -

In case you checked out things in different folders, or didn't install the .exe installer before you took above steps, you will have to find the configure GUI or the configure command line interface in the Windows explorer.

- -

Go to C:\NatLink\NatLink\confignatlinkvocolaunimacro.

-
  • With the python file start_configurenatlink.py you can start the config program, in "elevated" mode. Just run this python file
  • With the file start_natlinkconfigfunctions.py you start the command line interface, also in elevated mode. (See link(/installation/technicaldetails/natlinkconfigfunctions.html, "instructions on natlinkconfigfunctions").
- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/checkoutnatlink.png b/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/checkoutnatlink.png deleted file mode 100644 index e2074b8..0000000 Binary files a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/checkoutnatlink.png and /dev/null differ diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/checkoutunimacro.png b/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/checkoutunimacro.png deleted file mode 100644 index d220bbd..0000000 Binary files a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/checkoutunimacro.png and /dev/null differ diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/checkoutvoicecode.png b/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/checkoutvoicecode.png deleted file mode 100644 index aab34fa..0000000 Binary files a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/checkoutvoicecode.png and /dev/null differ diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/directorylayoutaftersubversioncheckout.png b/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/directorylayoutaftersubversioncheckout.png deleted file mode 100644 index d728294..0000000 Binary files a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/directorylayoutaftersubversioncheckout.png and /dev/null differ diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/index.html b/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/index.html deleted file mode 100644 index 693cd10..0000000 --- a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/index.html +++ /dev/null @@ -1,197 +0,0 @@ - - -technical details, Working with subversion - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
  Natlinkstatus
  Natlinkconfigfunctions
  Natlinkcorefunctions
  configure GUI
  Batch mode for configuration
  Installer
  Natlinkmain_vocola_main
  Natlinkmain
  Natlinkutils
  Nsformat
  Testing natlink
  Working with subversion
   Checkout example
   Relocate example
Installation experimental version python3
log of changes Python 3
- -

Working with subversion (SVN)

-

Migration to new repositories

-

Summary

-

The new repositories for the projects NatLink, Unimacro and Voicecode are:

-
  • NatLink: https://svn.code.sf.net/p/natlink/code
  • Unimacro: https://svn.code.sf.net/p/unimacro/code
  • Voicecode: https://svn.code.sf.net/p/voicecode/code
- -

and in all three repositories the trunk is used.

- -

In all three cases you will be prompted for username (sourceforge id) and password. I am not aware of an anonymous login possibility.

- -

Unimacro

-

Unimacro has on February 12, 2013 been moved to a new location. See new address above and more details below. For those who were on subversion for Unimacro before can do a "relocate" to https://svn.code.sf.net/p/unimacro/code and then click on the three dots and choose trunk. See example.

- -

NatLink

-

NatLink has been moved to a new location (10 March 2013). Subversion update seems to work as normal, but when you commit things you will get the following message (assuming you use TortoiseSVN):

- -

subversionerrormessagenatlink

- -

You can do a subversion relocate to:

-

subversionnatlinkrelocate

- -

Then enter the new location (please type in, no paste): https://svn.code.sf.net/p/natlink/code and then click on the three dots and choose trunk. See example.

- -

VoiceCode

-

The same for voicecode (10 March 2013). Do a subversion relocate, and choose: https://svn.code.sf.net/p/voicecode/code and then click on the three dots and choose trunk. See example.

- -

When all is succesfull, after having been prompted for your sourceforge password, you will get the following message:

- -

voicecoderelocationsuccesfull

- -

Why and how to work with subversion

-

If you want more recent versions of files than the latest release, or if you want to contribute to NatLink, possibly Vocola, or Unimacro, you should get your files from SourceForge with subversion.

-
  • First you need a sourceforge id (USERNAME and password), as far as I know no anonymous checkout is possible. Goto sourceforge and click on join top right.
  • Then get Tortoise SVN from tigris tortoisesvn.
  • Now remove the subdirectories of Unimacro and NatLink (in case of getting both with SVN) or either one of them. Leaving you in C:\NatLink. (Another starting point, like D:\NatLink is also possible and even recommended.)
- -

These were the preliminaries. Now proceed (and study the example):

-
  • So now assume the root of NatLink is in C:\NatLink. And you have removed one or both subdirectories NatLink and Unimacro.
- -

NatLink

  • For NatLink: right click on C:\NatLink and choose SVN checkout.
  • Fill in for URL of repository (please type in, no paste): https://svn.code.sf.net/p/natlink/code
  • click on the three dots and choose trunk*-choose for checkout directory *C:\NatLink\NatLink
  • you are probably prompted twice for loging (sourceforge id) and password
- -

checking out NatLink with SVN (subversion)

- -

Unimacro

  • For Unimacro: also right click on C:\NatLink and choose SVN checkout:
  • Fill in as repository (please type in, no paste): https://svn.code.sf.net/p/unimacro/code,
  • click on the three dots and choose trunk*-choose for checkout directory *C:\NatLink\NatLink
  • choose as checkout directory C:\NatLink\Unimacro,
  • you are probably prompted twice for loging (sourceforge id) and password
- -

checking out Unimacro with SVN (subversion)

- -

Voicecode

  • Similar actions are needed to get Voicecode: right click on C:\NatLink and choose SVN checkout:
  • Fill in as repository (please type in, no paste): https://svn.code.sf.net/p/voicecode/code,
  • click on the three dots and choose trunk*-choose for checkout directory *C:\NatLink\NatLink
  • choose as checkout directory C:\NatLink\Voicecode,
  • you are probably prompted twice for loging (sourceforge id) and password
- -

checking out Voicecode with SVN (subversion)

- -

Note: checking out Voicecode takes quite some time, you will be seeing the following for some time:

- -

checking out Voicecode takes some time

- -

Directory layout

-

After checking out NatLink (which includes Vocola), Unimacro and Voicecode (only for voice coders), you will see the following directory layout:

- -

directory layout after subversion checkout

- -

Vocola:

-

Note the Vocola files are in the NatLink repository.

-

Update

-

For updating you can right click on one of the folders and choose SVN update. You should do a separate Update for each of the three folders (if you checked them out).

- -

Contribute: Commit

-

If you want to commit changes (contribute to one of the projects):

-
  • You probably are by now registered at SourceForge.net by now,
  • You need to get permission from one of the repository administrators to do so. Mail to Quintijn, see email link at the bottom of this page.
- -

If that has been done, you can also commit -changes by right clicking on the correct folder and choose commit. Your password for SourceForge will be asked once.

- -

How to find configurenatlink.py or natlinkconfigfunctions.py

- -

In case you checked out things in different folders, or didn't install the .exe installer before you took above steps, you will have to find the configure GUI or the configure command line interface in the Windows explorer.

- -

Go to C:\NatLink\NatLink\confignatlinkvocolaunimacro.

-
  • With the python file start_configurenatlink.py you can start the config program, in "elevated" mode. Just run this python file by double clicking on it in an explorer window.
  • With the file start_natlinkconfigfunctions.py you start the command line interface, also in elevated mode. (See link(/installation/technicaldetails/natlinkconfigfunctions.html, "instructions on natlinkconfigfunctions").
- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/relocateexample.html b/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/relocateexample.html deleted file mode 100644 index 7406255..0000000 --- a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/relocateexample.html +++ /dev/null @@ -1,201 +0,0 @@ - - -technical details, Working with subversion, relocate example - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Install for python 27
 Installation stable version python2
 Configuration
 How to start
 Log of changes
 Problems with installation
 problems with NatLink
 Speech Model
 Ini file strategy
 Configure administrator rights
 Setting HOME
 Technical details
  Natlinkstatus
  Natlinkconfigfunctions
  Natlinkcorefunctions
  configure GUI
  Batch mode for configuration
  Installer
  Natlinkmain_vocola_main
  Natlinkmain
  Natlinkutils
  Nsformat
  Testing natlink
  Working with subversion
   Checkout example
   Relocate example
Installation experimental version python3
log of changes Python 3
- -

Working with subversion (SVN)

-

Migration to new repositories

-

Summary

-

The new repositories for the projects NatLink, Unimacro and Voicecode are:

-
  • NatLink: https://svn.code.sf.net/p/natlink/code
  • Unimacro: https://svn.code.sf.net/p/unimacro/code
  • Voicecode: https://svn.code.sf.net/p/voicecode/code
- -

In all three cases you will be prompted for username (sourceforge id) and password. I am not aware of an anonymous login possibility.

- -

Below, first see more detailed instructions on how to change the repository in case you were already on subversion for (some of these) projects.

- -

Then there is more explanation for new subversion users.

-

Unimacro

-

Unimacro has on February 12, 2013 been moved to a new location. See new address above and more details below. For those who were on subversion forUnimacro before can simply do a "relocate":

- -

subversionrelocate

- -

Then enter the new location (please type in, no paste): https://svn.code.sf.net/p/unimacro/code

- -

NatLink

-

NatLink has been moved to a new location (10 March 2013). Subversion update seems to work as normal, but when you commit things you will get the following message (assuming you use TortoiseSVN):

- -

subversionerrormessagenatlink

- -

You can do a simple subversion relocate to:

-

subversionnatlinkrelocate

- -

Then enter the new location (please type in, no paste): https://svn.code.sf.net/p/natlink/code

- -

VoiceCode

-

The same for voicecode (10 March 2013). Do a subversion relocate, and choose:

- -

https://svn.code.sf.net/p/voicecode/code

-

When all is succesfull, after having been prompted for your sourceforge password, you will get the following message:

- -

voicecoderelocationsuccesfull

- -

Why and how to work with subversion

-

If you want more recent versions of files than the latest release, or if you want to contribute to NatLink, possibly Vocola, or Unimacro, you should get your files from SourceForge with subversion.

-
  • First you need a sourceforge id (USERNAME and password), as far as I know no anonymous checkout is possible. Goto sourceforge and click on join top right.
  • Then get Tortoise SVN from tigris tortoisesvn.
  • Now remove the subdirectories of Unimacro and NatLink (in case of getting both with SVN) or either one of them. Leaving you in C:\NatLink. (Another starting point, like D:\NatLink is also possible and even recommended.)
- -

These were the preliminaries. Now proceed:

  • So now assume the root of NatLink is in C:\NatLink. And you have removed one or both subdirectories NatLink and Unimacro. -NatLink
  • For NatLink: right click on C:\NatLink and choose SVN checkout.
  • Fill in for URL of repository (please type in, no paste): https://svn.code.sf.net/p/natlink/code
  • choose for checkout directory C:\NatLink\NatLink
  • you are probably prompted twice for loging (sourceforge id) and password
- -

checking out NatLink with SVN (subversion)

- -

Unimacro

  • For Unimacro: also right click on C:\NatLink and choose SVN checkout:
  • Fill in as repository (please type in, no paste): https://svn.code.sf.net/p/unimacro/code,
  • choose as checkout directory C:\NatLink\Unimacro,
  • you are probably prompted twice for loging (sourceforge id) and password
- -

checking out Unimacro with SVN (subversion)

- -

Voicecode

  • Similar actions are needed to get Voicecode: right click on C:\NatLink and choose SVN checkout:
  • Fill in as repository (please type in, no paste): https://svn.code.sf.net/p/voicecode/code,
  • choose as checkout directory C:\NatLink\Voicecode,
  • you are probably prompted twice for loging (sourceforge id) and password
- -

checking out Voicecode with SVN (subversion)

- -

Note: checking out Voicecode takes quite some time, you will be seeing the following for some time:

- -

checking out Voicecode takes some time

- -

Directory layout

-

After checking out NatLink (which includes Vocola), Unimacro and Voicecode (only for voice coders), you will see the following directory layout:

- -

directory layout after subversion checkout

- -

Vocola:

-

Note the Vocola files are in the NatLink repository.

-

Update

-

For updating you can right click on one of the folders and choose SVN update. You should do a separate Update for each of the three folders (if you checked them out).

- -

Contribute: Commit

-

If you want to commit changes (contribute to one of the projects):

-
  • You probably are registered at SourceForge.net by now,
  • You need to get permission from one of the repository administrators to do so. Mail to Quintijn, see email link at the bottom of this page.
- -

If that has been done, you can also commit -changes by right clicking on the correct folder and choose commit. Your password for SourceForge will be asked once.

- -

How to find configurenatlink.py or natlinkconfigfunctions.py

- -

In case you checked out things in different folders, or didn't install the .exe installer before you took above steps, you will have to find the configure GUI or the configure command line interface in the Windows explorer.

- -

Go to C:\NatLink\NatLink\confignatlinkvocolaunimacro.

-
  • With the python file start_configurenatlink.py you can start the config program, in "elevated" mode. Just run this python file
  • With the file start_natlinkconfigfunctions.py you start the command line interface, also in elevated mode. (See link(/installation/technicaldetails/natlinkconfigfunctions.html, "instructions on natlinkconfigfunctions").
- - - \ No newline at end of file diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/subversionerrormessagenatlink.png b/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/subversionerrormessagenatlink.png deleted file mode 100644 index 72f165a..0000000 Binary files a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/subversionerrormessagenatlink.png and /dev/null differ diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/subversionnatlinkrelocate.png b/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/subversionnatlinkrelocate.png deleted file mode 100644 index 07bb2a9..0000000 Binary files a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/subversionnatlinkrelocate.png and /dev/null differ diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/subversionrelocate.png b/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/subversionrelocate.png deleted file mode 100644 index 993e8b8..0000000 Binary files a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/subversionrelocate.png and /dev/null differ diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/voicecodecheckouttakessometime.png b/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/voicecodecheckouttakessometime.png deleted file mode 100644 index 0e3eb05..0000000 Binary files a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/voicecodecheckouttakessometime.png and /dev/null differ diff --git a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/voicecoderelocationsuccesfull.png b/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/voicecoderelocationsuccesfull.png deleted file mode 100644 index 66d54d9..0000000 Binary files a/website unimacro/html/installation/installforpython27/technicaldetails/workingwithsubversion/voicecoderelocationsuccesfull.png and /dev/null differ diff --git a/website unimacro/html/installation/logofchangespython3.html b/website unimacro/html/installation/logofchangespython3.html deleted file mode 100644 index b6ad34b..0000000 --- a/website unimacro/html/installation/logofchangespython3.html +++ /dev/null @@ -1,84 +0,0 @@ - - -log of changes Python 3 - - - - - - - - - - -
- - - - - -
Install for python 27
Installation experimental version python3
log of changes Python 3
- -

Changes with new Python 3 release of Natlink

  • Registry setting, in the Python area of registry, pointing to the path where natlinkmain.py is found, is no longer needed. It will be removed at first run of the config program.
  • Directory layout of the Natlink Core directory has been changed: most things now reside in the natlinkcore directory, which is directly in the site-packages after pip install.
    • The ConfigureNatlink directory is a subdirectory of natlinkcore.
    • The configure scripts are in the Python Scripts directory, and these scripts can be started from the Windows Start Menu.
    • Schematic directory layout:
    -
- -

(python)\Lib\site-packages\natlinkcore
-    - natlinkmain.py
-    - natlinkstatus.py
-    - ...
-    - natlink.pyd (after the config program did run)
-    - PYD: subdirectory where the different natlink....pyd files are kept.
-           For Python38-32 and Dragon 15, natlink_3.8_Ver15.pyd is taken
-           (copied to natlinkcore/natlink.pyd and registered as dll/pyd)
-    - ConfigureNatlink: the scripts that configure natlink, with GUI or with and CLI (Command Line Interface)

-
  • When importing natlink in a grammar file, use from natlinkcore import natlink (instead of import natlink)
- - - \ No newline at end of file diff --git a/website unimacro/html/robots.txt b/website unimacro/html/robots.txt deleted file mode 100644 index ad46de1..0000000 --- a/website unimacro/html/robots.txt +++ /dev/null @@ -1,8 +0,0 @@ -User-agent: * -Disallow: /im/ -Disallow: /statistik/ -Disallow: /statistiek/ -Disallow: /stat/ -Disallow: /statistics/ -Disallow: /guestbook/ -Disallow: /gastenboek/ \ No newline at end of file diff --git a/website unimacro/html/sitemap.html b/website unimacro/html/sitemap.html deleted file mode 100644 index 8834cb8..0000000 --- a/website unimacro/html/sitemap.html +++ /dev/null @@ -1,336 +0,0 @@ - - -unimacro, sitemap - - - - - - - - - - -

Sitemap of the website of unimacro

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Installation Natlink/Vocola/Unimacro
Install for python 27
installation stable version python2
configuration
how to start
log of changes
problems with installation
problems with NatLink
Speech Model
ini file strategy
Configure administrator rights
Setting HOME
technical details
natlinkstatus
natlinkconfigfunctions
natlinkcorefunctions
configure GUI
batch mode for configuration
installer
natlinkmain_vocola_main
natlinkmain
natlinkutils
nsformat
testing natlink
Working with subversion
checkout example
relocate example
installation experimental version python3
log of changes Python 3
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
features
actions
shorthand commands
meta actions
BRINGUP details
unicode characters
actions configuration file
action classes for applications
Numbers and Spoken Forms
other spokenform sections
Unimacro and Vocola
elevator view
Unimacro Shorthand Commands
Meta actions
include file Unimacro_vch
tracing
inifiles
translations
how to start
callback logic
keystrokes
cooperation with voicecoder
AutoHotkey
details
Configuration
unit testing
grammar classes
grammarX
Browsable Grammar
IniGrammar
use
programmer
functions for searching
DocstringGrammar
fullresults
example tasks grammar
example word styles
programmer
natlinkutilsbj
natlinkutilsqh
Get functions
Module info
Word properties
Miscellaneous
global dictation
end of line considerations
Monitorfunctions
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
grammars
control
global grammars
folders
details
actions
virtual drives
environment variables
track folders history
remember
general
actions
lines
Implementation details
tasks
get task and doc positions
configuration
keystrokes
grammar
modes
repeat
actions
searching
nederlands
edit
latex
configuration
Syntax highlighting Word
Number grammar
Number extended
Use in other grammars
oops
show numbers plus
specify actions
Commando's Nederlands
tags
brackets
modes
specific grammars
Chrome_browsing
all commands English
commandos Nederlands
Installing Click by Voice
Firefox browsing
all commands English
commandos Nederlands
Installing MLB
Excel
unimacro test
Actions
Bringup
clipboard
messages
games
patience
solitaire
freecell
- - - - - -
About
Donation
History
- - - \ No newline at end of file diff --git a/website unimacro/html/unimacro.css b/website unimacro/html/unimacro.css deleted file mode 100644 index cc2da5a..0000000 --- a/website unimacro/html/unimacro.css +++ /dev/null @@ -1,143 +0,0 @@ -BODY {background-color: #dddddd; color: black; -font-family: Verdana, Helvetica, sans-serif} - -LI, TD, P, H1, H2, H3, H4, H5 {font-size: small; font-family: Verdana, Helvetica, sans-serif; -line-height:125%; margin:0px; padding:0px} - -LI {padding:2px 0px} -H1 {font-size:large; padding:0px 0px 10px 0px } -h2 {font-size:medium; padding:10px 0px 3px 0px} -h3 {font-size:small; padding:10px 0px 3px 0px} -H1, H2, H3, H4, H5 {font-weight: bold} -p {padding:3px 0px} - -a:link {color: black; font-family: Verdana, Helvetica, sans-serif;} -a:visited {color: black; font-family: Verdana, Helvetica, sans-serif;} -a:active {color: black; font-family: Verdana, Helvetica, sans-serif;} - -IMG.imageright {float:right; margin:5px 0px 10px 10px} -IMG.imageleft {float:left; margin:5px 10px 10px 0px} - -p.pre {margin:5px 0px 5px 0px; border: 1px solid black; - color: black; - padding:5px; - font-family: Lucida sans typewriter, fixed, courier; - font-size: small; - background-color: #dddddd} - -IMG.thumbme {border: red solid 4px; } -TD.topon {color: black; background-color: #cc9933; border:1px solid black;font-weight:bold} -TD.topon a:link, -TD.topon a:visited, -TD.topon a:active {text-decoration: none; font-weight: normal; -color: black} - - -TD.topoff {background-color: #669999; padding:3px;font-weight:bold} -TD.topoff, -TD.topoff a:link, -TD.topoff a:visited, -TD.topoff a:active {text-decoration: none; color: black} - - - -TD.lefton {background-color: #cc9933; padding:2px 2px 2px 7px; font-weight: bold; - color: black;border-bottom:1px solid black;border-top:1px solid black} - -TD.lefton a:link, -TD.lefton a:visited, -TD.lefton a:active {text-decoration: none; font-weight: normal} - -TD.leftoff {color: black; background-color: #aaaaaa; padding:2px 2px 5px 7px;font-weight:bold;border-right:1px solid black} -TD.leftoff a:link, -TD.leftoff a:visited, -TD.leftoff a:active {font-weight:bold; text-decoration:none} -TD.leftoff a:visited {color: #444444} - -TD.back {background-color: #aaaaaa} -TD.navline {background-color: #669999;padding:10px 0px 5px 0px} -TD.copyright {background-color: #669999; - font-size: xx-small; text-align: right; padding:5px} - -TD.body {padding:20px; font-family: Times, serif} -TD.body a:link {color: black} -TD.body a:visited {color: black} -TD.body a:active {color: black} -TD.body0 {vertical-align: top} - -P.pre {margin:20px 50px 1px 1px; border: thin solid #999999; padding:5px; - font-family: Lucida sans typewriter, fixed, courier} - -EM {font-weight:bold} -TD.tekst {font-family: Times, serif; color:black} -TD.leftmenu {padding:5px 0px 5px 5px ; background-color: #aaaaaa; vertical-align:top} -TD.leftpart {padding:5px 0px 5px 5px ; background-color: #aaaaaa; vertical-align:top} -TD.banner {background-color:#669999; text-align:center; color:#cc9933; font-weight: bold; font-size:x-large;padding:0px 0px 0px 10px} -TD.ibleft {padding:20px; vertical-align: top} -TD.ibtop {padding:20px} -TD.ibpright {padding:10px} -TD.ibpbottom {padding:20px} -TD.sitemapbutton {background-color:#669999; color:#ff9966; padding:5px; -font-weight: bold;text-align: center; width:7%; font-size:small; -text-decoration:none;border:1px solid black} -TD.sitemapbutton a:link {color:#ff9966; font-size:small;text-decoration:none} -TD.sitemapbutton a:visited {color:#ff9966; font-size:small;text-decoration:none} -TD.sitemapbutton a:active {color:#ff9966; font-size:small;text-decoration:none} -TD.emailbutton {background-color : #669999; color: white; padding:5px; font-weight: bold; -text-align: center; width:7%; font-size:small;border:1px solid black} -TD.emailbutton a:link {color:white; font-size:small;text-decoration:none} -TD.emailbutton a:visited {color: white;font-size:small;text-decoration:none} -TD.emailbutton a:active {color:white; font-size:small;text-decoration:none} -TD.contactbutton {background-color: #ff9966; color:white; padding:5px; -font-weight: bold; text-align: center; width:7%; font-size:small} -TD.contactbutton a:link {color:white; font-size:small;text-decoration:none} -TD.contactbutton a:visited {color:white; font-size:small;text-decoration:none} -TD.contactbutton a:active {color:white; font-size:small;text-decoration:none} -TD.printbutton {background-color: #ff9966; color:#99bbcc; padding:5px; -font-weight: bold; text-align: center; width:7%; font-size:small;text-decoration:none} -TD.printbutton a:link {color:#99bbcc; font-size:small;text-decoration:none} -TD.printbutton a:visited {color:#99bbcc; font-size:small;text-decoration:none} -TD.printbutton a:active {color:#99bbcc; font-size:small;text-decoration:none} - -TH.th1 {background-color: #99bbcc; padding:2px 2px 2px 5px} -TH.th {background-color: #aaaaaa; padding:2px 2px 2px 5px} -TD.td1 { background-color: #ccddee; text-align: left; vertical-align:top;padding:2px} -TD.td0 { background-color: #ccddee; text-align: left;padding:2px} -TD.td { background-color: #cccccc; padding:2px} -TABLE.table TD, -TABLE.table TD {padding:2px 5px} - -TABLE.menu {text-align: center} -TABLE.picmenu {background-color: #cccccc} -TABLE.indexmenu {background-color: #cccccc} -TABLE.inimenu {background-color: #cccccc} -TABLE.tabon {background-color: green; font-weight: bold} -TABLE.table { background-color: #999999} -DIV.header {background-color: #669999} -DIV.footer {background-color: #eeeeee} -DIV.body {background-color: #cc9933} - - - -IMG {border-width:0px} -@media print {TD.topon {font-size: medium; - border-top: 1px solid black; border-right: 1px solid black; - border-left: 1px solid black}} -@media print {TD.topon a:visited {font-size: medium}} -@media print {TD.topoff {font-size: small; border-bottom: 1px solid black}} -@media print {TD.topoff a:link {font-size: small}} -@media print {TD.topoff a:visited {font-size: small}} -@media print {TD.topspacer {border-bottom: 1px solid black}} -@media print {TD.copyright {border-top: 1px solid black}} -@media print {TD.lefton {font-size: medium}} -@media print {TD.lefton a:visited {font-size: medium}} -@media print {TD.leftoff {font-size: x-small}} -@media print {TD.leftoff a:link {font-size: x-small}} -@media print {TD.leftoff a:visited {font-size: x-small}} -@media print {TD.emailbutton {display:none}} -@media print {TD.leftpart {display:none}} -@media print {TD.sitemapbutton {display:none}} -@media screen {td.copprintonly {display:none}} -@media print {td.copprintonly {display:inline; border-top: 2px solid black; font-size: xx-small}} -@media print {td.copyright {display:none}} - diff --git a/website unimacro/html/unimacro.js b/website unimacro/html/unimacro.js deleted file mode 100644 index a87a7bc..0000000 --- a/website unimacro/html/unimacro.js +++ /dev/null @@ -1,154 +0,0 @@ -var isIE = (navigator.appName == "Microsoft Internet Explorer"); -var isLoaded = 0; -var isNetscape = (navigator.appName == "Netscape"); -var prevHeight = 0; -var prevWidth = 0; -function afterLoad() { -//records isLoaded and does onResize() -isLoaded = 1; -onLoadFunctions(); -onResize(); -} -function bodyHeight(subtract) { -// do at changing size also on load (through onResizeFunctions) -// expecting a div with id "body0" setting at height minus "subtract": -// or a "leftpart" (only IE); with Netscape 15 more - var height = 0; - var dh = document.body.clientHeight; - if (subtract > 0 && dh > subtract) { - var height = dh - subtract; - if (isNetscape) - height += 15; - } - else - var d = null; - if (isIE) - var d = document.getElementById("leftpart"); - if (d == null) - d = document.getElementById("body0"); - if (d == null) { - alert("no such id: leftpart or body0"); - return; - } - d.style.height = height; -} -function changeSize(frameName, Width, Height, minWPadding, minHPadding, scale) { -// do at changing size also on load -// expecting a div with id "frameName": -var dw = parseInt(document.body.clientWidth*scale); -var d = document.getElementById(frameName); -if (d == undefined) { - alert("no such id: frame"); - return; -} -var p = String(minWPadding); -var q = String(minHPadding); -if (Width > 0 && dw > Width) - var p = String(Math.max(minWPadding, parseInt((dw-Width)/2))); -var dh = document.body.clientHeight; -if (Height > 0 && dh > Height) - var q= String(Math.max(minHPadding, parseInt((dh-Height)/2))); -//style_node.appendChild(document.createTextNode( -var selector = "#" + frameName; -var declaration = "padding: " + q + " " + p; -setCssStyleScreenOnly(selector, declaration); -} -function doReload() { - //reloads if height or width changed more than 10 pixels -var dw = document.body.clientWidth; -var dh = document.body.clientHeight; -var deltax = Math.abs(prevWidth-dw); -var deltay = Math.abs(prevHeight-dh); -if (deltax < 10 && deltay < 10) - return; -document.location.href = document.location.href; -} -function m(a, b, s, t) { -var mm;mm='";w(mm); -} -function onResize() { - //acts if height or width changed more than 10 pixels - if (!isLoaded) return; - var dw = document.body.clientWidth; - var dh = document.body.clientHeight; - var deltax = Math.abs(prevWidth-dw); - var deltay = Math.abs(prevHeight-dh); - if (deltax < 10 && deltay < 10) - return; - prevHeight=dh; - prevWidth=dw; - onResizeFunctions(); -} -function onResizeReload() { - //reloads if height or width changed more than 10 pixels - if (!isLoaded) return; - var dw = document.body.clientWidth; - var dh = document.body.clientHeight; - var deltax = Math.abs(prevWidth-dw); - var deltay = Math.abs(prevHeight-dh); - if (deltax < 25 && deltay < 25) - return; - document.location.href = document.location.href; -} -function picmenu(Pic, Width, Height, Cl, Link, Text) { - var L = Pic.length; - var mw = 0; - for (var i=0; i'); - var al = "center"; - var im = ''; - var li = ''; - for (var i=0; i 0) { - document.write(''); - } - if (Pic[i] != "") { - im = '' + Text[i]+
-                     ''; - } - else { - im = Text[i]; - } - if (Link[i] != "") { - li = '' + im + ''; - } - else { - li = im; - } - document.write('' + li + ''); - } - document.write(''); -} -function setCssStyleScreenOnly(selector, declaration) { -// set style for element screen only. declaration WITHOUT braces!! -// example: see changeSize. -var style_node = document.createElement("style"); -style_node.setAttribute("type", "text/css"); -style_node.setAttribute("media", "screen"); -if (!isIE) { // firefox: -var text = selector + "{" + declaration + "}"; - style_node.appendChild(document.createTextNode(text)); - // append the style node - document.getElementsByTagName("head")[0].appendChild(style_node); -} -else { //IE - if (document.styleSheets && document.styleSheets.length > 0) { - var last_style_node = document.styleSheets[document.styleSheets.length - 1]; - if (typeof(last_style_node.addRule) == "object") last_style_node.addRule(selector, declaration); - } -} -} -function w(t) { - // helper function - document.write(t); -} \ No newline at end of file diff --git a/website unimacro/screenshots.zip b/website unimacro/screenshots.zip deleted file mode 100644 index bf36d8a..0000000 Binary files a/website unimacro/screenshots.zip and /dev/null differ diff --git a/website unimacro/session import wxpython for 2.7.txt b/website unimacro/session import wxpython for 2.7.txt deleted file mode 100644 index 3042f3d..0000000 --- a/website unimacro/session import wxpython for 2.7.txt +++ /dev/null @@ -1,177 +0,0 @@ -Microsoft Windows [Version 10.0.19041.572] -(c) 2020 Microsoft Corporation. Alle rechten voorbehouden. - -C:\WINDOWS\system32>cd \python27\Scripts - -C:\Python27\Scripts>pip -V -pip 19.2.3 from c:\python27\lib\site-packages\pip (python 2.7) - -C:\Python27\Scripts>pip install pywin32 -DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support -Requirement already satisfied: pywin32 in c:\python27\lib\site-packages (225) -WARNING: You are using pip version 19.2.3, however version 20.2.4 is available. -You should consider upgrading via the 'python -m pip install --upgrade pip' command. - -C:\Python27\Scripts>py2 -'py2' is not recognized as an internal or external command, -operable program or batch file. - -C:\Python27\Scripts>../python.exe -'..' is not recognized as an internal or external command, -operable program or batch file. - -C:\Python27\Scripts>..\python.exe -Python 2.7.16 (v2.7.16:413a49145e, Mar 4 2019, 01:30:55) [MSC v.1500 32 bit (Intel)] on win32 -Type "help", "copyright", "credits" or "license" for more information. ->>> import wxpython -Traceback (most recent call last): - File "", line 1, in -ImportError: No module named wxpython ->>> import wx ->>> wx.version - ->>> wx.version() -u'4.0.6 msw (phoenix) wxWidgets 3.0.5' ->>> ^X - File "", line 1 - ↑ - ^ -SyntaxError: invalid syntax ->>> ^Z - - -C:\Python27\Scripts>pip uninstall wxpython -DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support -Uninstalling wxPython-4.0.6: - Would remove: - c:\python27\lib\site-packages\wx\* - c:\python27\lib\site-packages\wxpython-4.0.6.dist-info\* - c:\python27\scripts\helpviewer.exe - c:\python27\scripts\img2png.exe - c:\python27\scripts\img2py.exe - c:\python27\scripts\img2xpm.exe - c:\python27\scripts\pycrust.exe - c:\python27\scripts\pyshell.exe - c:\python27\scripts\pyslices.exe - c:\python27\scripts\pyslicesshell.exe - c:\python27\scripts\pywxrc.exe - c:\python27\scripts\wxdemo.exe - c:\python27\scripts\wxdocs.exe - c:\python27\scripts\wxget.exe -Proceed (y/n)? y - Successfully uninstalled wxPython-4.0.6 - -C:\Python27\Scripts>pip install wxpython==4.0.3 -DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support -Collecting wxpython==4.0.3 - Using cached https://files.pythonhosted.org/packages/5c/0b/64d5f55be921ec58586086fd1b86de6f84ae1f60b59836f539b3a5ebdfeb/wxPython-4.0.3-cp27-cp27m-win32.whl -Requirement already satisfied: PyPubSub in c:\python27\lib\site-packages (from wxpython==4.0.3) (4.0.0) -Requirement already satisfied: six in c:\python27\lib\site-packages (from wxpython==4.0.3) (1.12.0) -Requirement already satisfied: typing in c:\python27\lib\site-packages (from PyPubSub->wxpython==4.0.3) (3.6.6) -Installing collected packages: wxpython - WARNING: The scripts helpviewer.exe, img2png.exe, img2py.exe, img2xpm.exe, pycrust.exe, pyshell.exe, pyslices.exe, pyslicesshell.exe, pywxrc.exe, wxdemo.exe, wxdocs.exe and wxget.exe are installed in 'c:\python27\Scripts' which is not on PATH. - Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. -Successfully installed wxpython-4.0.3 -WARNING: You are using pip version 19.2.3, however version 20.2.4 is available. -You should consider upgrading via the 'python -m pip install --upgrade pip' command. - -C:\Python27\Scripts>../python.exe -'..' is not recognized as an internal or external command, -operable program or batch file. - -C:\Python27\Scripts>..\python.exe -Python 2.7.16 (v2.7.16:413a49145e, Mar 4 2019, 01:30:55) [MSC v.1500 32 bit (Intel)] on win32 -Type "help", "copyright", "credits" or "license" for more information. ->>> import wx ->>> wx.version() -u'4.0.3 msw (phoenix) wxWidgets 3.0.5' ->>> ^Z - - -C:\Python27\Scripts>pip uninstall wxpython -DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support -Uninstalling wxPython-4.0.3: - Would remove: - c:\python27\lib\site-packages\wx\* - c:\python27\lib\site-packages\wxpython-4.0.3.dist-info\* - c:\python27\scripts\helpviewer.exe - c:\python27\scripts\img2png.exe - c:\python27\scripts\img2py.exe - c:\python27\scripts\img2xpm.exe - c:\python27\scripts\pycrust.exe - c:\python27\scripts\pyshell.exe - c:\python27\scripts\pyslices.exe - c:\python27\scripts\pyslicesshell.exe - c:\python27\scripts\pywxrc.exe - c:\python27\scripts\wxdemo.exe - c:\python27\scripts\wxdocs.exe - c:\python27\scripts\wxget.exe -Proceed (y/n)? y - Successfully uninstalled wxPython-4.0.3 - -C:\Python27\Scripts>pip install wxpython -DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support -Collecting wxpython - Downloading https://files.pythonhosted.org/packages/7b/cc/305d6468dc8e523384168dde4716c0dd23b395ea4f3cac75d017bc84f58e/wxPython-4.1.0-cp27-cp27m-win32.whl (14.7MB) - |################################| 14.7MB 6.0MB/s -Requirement already satisfied: pillow in c:\python27\lib\site-packages (from wxpython) (5.2.0) -Requirement already satisfied: six in c:\python27\lib\site-packages (from wxpython) (1.12.0) -Requirement already satisfied: numpy<1.17; python_version <= "2.7" in c:\python27\lib\site-packages (from wxpython) (1.16.5) -Installing collected packages: wxpython - WARNING: The scripts helpviewer.exe, img2png.exe, img2py.exe, img2xpm.exe, pycrust.exe, pyshell.exe, pyslices.exe, pyslicesshell.exe, pywxrc.exe, wxdemo.exe, wxdocs.exe and wxget.exe are installed in 'c:\python27\Scripts' which is not on PATH. - Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. -Successfully installed wxpython-4.1.0 -WARNING: You are using pip version 19.2.3, however version 20.2.4 is available. -You should consider upgrading via the 'python -m pip install --upgrade pip' command. - -C:\Python27\Scripts>..\python.exe -Python 2.7.16 (v2.7.16:413a49145e, Mar 4 2019, 01:30:55) [MSC v.1500 32 bit (Intel)] on win32 -Type "help", "copyright", "credits" or "license" for more information. ->>> import wx ->>> wx.version() -u'4.1.0 msw (phoenix) wxWidgets 3.1.4' ->>> ^Z - - -C:\Python27\Scripts>pip uninstall wxpython -DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support -Uninstalling wxPython-4.1.0: - Would remove: - c:\python27\lib\site-packages\wx\* - c:\python27\lib\site-packages\wxpython-4.1.0.dist-info\* - c:\python27\scripts\helpviewer.exe - c:\python27\scripts\img2png.exe - c:\python27\scripts\img2py.exe - c:\python27\scripts\img2xpm.exe - c:\python27\scripts\pycrust.exe - c:\python27\scripts\pyshell.exe - c:\python27\scripts\pyslices.exe - c:\python27\scripts\pyslicesshell.exe - c:\python27\scripts\pywxrc.exe - c:\python27\scripts\wxdemo.exe - c:\python27\scripts\wxdocs.exe - c:\python27\scripts\wxget.exe -Proceed (y/n)? y - Successfully uninstalled wxPython-4.1.0 - -C:\Python27\Scripts>pip install wxpython==4.0.3 -DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support -Collecting wxpython==4.0.3 - Using cached https://files.pythonhosted.org/packages/5c/0b/64d5f55be921ec58586086fd1b86de6f84ae1f60b59836f539b3a5ebdfeb/wxPython-4.0.3-cp27-cp27m-win32.whl -Requirement already satisfied: PyPubSub in c:\python27\lib\site-packages (from wxpython==4.0.3) (4.0.0) -Requirement already satisfied: six in c:\python27\lib\site-packages (from wxpython==4.0.3) (1.12.0) -Requirement already satisfied: typing in c:\python27\lib\site-packages (from PyPubSub->wxpython==4.0.3) (3.6.6) -Installing collected packages: wxpython - WARNING: The scripts helpviewer.exe, img2png.exe, img2py.exe, img2xpm.exe, pycrust.exe, pyshell.exe, pyslices.exe, pyslicesshell.exe, pywxrc.exe, wxdemo.exe, wxdocs.exe and wxget.exe are installed in 'c:\python27\Scripts' which is not on PATH. - Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. -Successfully installed wxpython-4.0.3 -WARNING: You are using pip version 19.2.3, however version 20.2.4 is available. -You should consider upgrading via the 'python -m pip install --upgrade pip' command. - -C:\Python27\Scripts>..\python -Python 2.7.16 (v2.7.16:413a49145e, Mar 4 2019, 01:30:55) [MSC v.1500 32 bit (Intel)] on win32 -Type "help", "copyright", "credits" or "license" for more information. ->>> import wx ->>> wx.version() -u'4.0.3 msw (phoenix) wxWidgets 3.0.5' ->>> \ No newline at end of file diff --git a/website unimacro/set style rule.png b/website unimacro/set style rule.png deleted file mode 100644 index c19f6e4..0000000 Binary files a/website unimacro/set style rule.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/Installing packages via pip.docx b/website unimacro/source/1_installation/a_Install for python 27/Installing packages via pip.docx deleted file mode 100644 index b99a477..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/Installing packages via pip.docx and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/Installing packages via pip.pdf b/website unimacro/source/1_installation/a_Install for python 27/Installing packages via pip.pdf deleted file mode 100644 index c82be9b..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/Installing packages via pip.pdf and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/Messages window.jpg b/website unimacro/source/1_installation/a_Install for python 27/Messages window.jpg deleted file mode 100644 index d130a25..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/Messages window.jpg and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/a_installation stable version python2.txt b/website unimacro/source/1_installation/a_Install for python 27/a_installation stable version python2.txt deleted file mode 100644 index f86dc5e..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/a_installation stable version python2.txt +++ /dev/null @@ -1,65 +0,0 @@ -Installation of Natlink/Vocola 2/Unimacro Stable, Python2.7 - -Here is the final release for Python 2.7: 4.2 - --*Download link(https://sourceforge.net/projects/natlink/files/natlink/natlink4.2/setup-natlink-4.2.exe/download, release 4.2)*. - -- Only small changes after all the previous Beta releases. - ---SendInput, written by Mark Lillibridge, is niw the default way for doing keystrokes ---introducing natlinkclipboard module in core directory (but still testing needed, never a stable release :-))) ---Unimacro _folders grammar now "link(/grammars/globalgrammars/folders/index.html, remembers)" sub folders, files and websites with a voice command. - --Works with Dragon 15, and also earlier versions. --Works with Python 2.7. ---Use of Python 2.6 and before is discouraged, but for version 14 and lower, Python 2.6 still works. ---Earlier versions of Natlink are still found on link(https://sourceforge.net/projects/natlink/files/, SourceForge). - - - Next video is a bit outdated, but it gives an impression of the installation procedure: - - - -witregel() - - Installing Python2.7.14 - --Download link(https://sourceforge.net/projects/natlink/files/pythonfornatlink/python2.7.14/python2.7.1.exe/download, *Python 2.7.14, needed for Natlink*). ---This is a self-extracting zip file, with extension .exe. ---This is nearly the latest release of python 2.7. - - Installing Python2.7.18 --Or better, go to link(https://www.python.org/downloads/release/python-2718/, python download site), and download the *Windows x86 MSI installer*. ---Warning: Natlink does not work when you install a "64 bit" python version. So *DO NOT USE* the Windows x86-64 MSI installer. --Install *for all users*, which is the default --You now need to install four additional packages, *pywin32*, *wxpython*, *six* and *future* --You can do this best via *pip*, please follow the link(Installing packages via pip.pdf, *pip instructions*) (pdf 147kb). - -witregel() - - Download and install Natlink/Vocola 2/Unimacro - --Download the combined installer as given above.of --Run the downloaded file. --Install on *C:\Natlink* (or *D:\Natlink* or any other drive of your choice). Installing in "C:\Program files\Natlink" is *NOT* advised. - - Directory layout after installation - -When you installed at *C:\Natlink* you will get the following directory structure: --Natlink and Vocola 2 are in *C:\Natlink\Natlink*, --Unimacro is in *C:\Natlink\Unimacro* --User defined grammars can be in any location, for example *C:\NatlinkUserDirectory* or *C:\Natlink\UserDirectory*. ---You can put your *Dragonfly* grammar files, python files, in this directory. ---Dragonfly should be installed separately. --The core directory is *C:\Natlink\Natlink\MacroSystem\core* (the "controlling" Natlink files are located here) --Internally the compiled Vocola 2 files will go in *C:\Natlink\Natlink\MacroSystem*. ---This is the baseDirectory of Natlink. ---Do not put anything else in this directory, although it will not prevent Natlink from functioning. --In case you cannot find your configuration program (the GUI): it is located in *C:\Natlink\Natlink\confignatlinkvocolaunimacro*. ---The configuration (GUI) program is the file "configurenatlink.pyw". ---In order to run elevated mode, you should start the script *start_configurenatlink.py* in the same directory. --Elevated mode is only needed the first time you run the configure program, and when you want to enable/disable Natlink or when you want to unregister or (re)register *natlink.pyd*. ---But... it does no harm to always start the config program in elevated mode. - - - Proceed with link("/installation/configuration.html", "the configuration") diff --git a/website unimacro/source/1_installation/a_Install for python 27/c_configuration.txt b/website unimacro/source/1_installation/a_Install for python 27/c_configuration.txt deleted file mode 100644 index 41ba5c4..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/c_configuration.txt +++ /dev/null @@ -1,102 +0,0 @@ -Configuration - - Administrator rights/elevated mode -You need Administator rights for the some (of the most important) configuration actions. Therefore the *Configure program* (*Configure NatLink via GUI*), or via the command line interface, will be started with link(/installation/configureadministratorrights.html, Administrator rights), when you use the links from the Start menu. Please answer "Yes" if Windows asks you for this. - - Run config program with python2.7 in elevated mode -In this link("https://www.youtube.com/watch?v=IJy6IL3rizk&feature=youtu.be", *short video*) it is shown how you can start the natlink config GUI or the natlinkconfigfunctions.py, with python2.7, even when you have more python versions installed on your system. - -The steps are: -= start a Command Prompt in admin mode (Run as administrator) -= go to the confignatlinkvocolaunimacro directory of your natlink folder (eg. C:\natlink\natlink\confignatlinkvocolaunimacro) -= start with *"py -2.7"* *configurenatlink.pyw* -= if that fails, try the natlinkconfigfunctions.py - -:CODE: -so type: - -py -2.7 configurenatlink.pyw - -or: - -py -2.7 natlinkconfigfunctions.py -:: - -witregel(2) - - Export speech profiles --You may want to backup your speech profiles before enabling NatLink for the first time. Use the "Advance, Export" function of the "Profile, Manage Users" dialog of Dragon. --However, we believe NatLink is so stable in combination with Dragon, that the chance of Natlink corrupting your speech profile is very small. - - Configure NatLink/Vocola 2/Unimacro - --If this fails, see the video above! --From the start menu, run *Configure NatLink via GUI* --This program prompts you for accepting elevated mode (see above) --When this is the first time your run this program, several things are done silent, you can inspect the "log" panel of the GUI to see what happened. - - - NatLink --In the "NatLink" section, click the "Enable" button. If NatLink is not enabled, Vocola 2 and Unimacro do NOT work. - - Vocola 2 - --Enable *Vocola 2* by the "Enable" button in the "Vocola" section and --Choose a directory to store your Vocola command files; we recommend *...\Documents\NatLink\Vocola*. (This is the "VocolaUserDirectory".) - - Unimacro - --Enable *Unimacro* by the "Enable" button in the "Unimacro" section and --Choose the UnimacroUserDirectory, the directory where your configuration files (ini files) are (going to be) stored. We recommend *...\Documents\NatLink\Unimacro*. - - UserDirectory --For other grammar files, also Dragonfly grammar files, you can use the *UserDirectory*, the directory where your grammar files are located. --Choose your own directory, for example C:\NatlinkUserDirectory. - - Dragonfly -The package Dragonfly is not included in the combined Natlink/Vocola/Unimacro installer, so should be installed separately. The package is installed in the python site-packages directory, and should be out of sight for the users. - --When you want to use your own Dragonfly grammars, first check that Natlink is running properly. - --Then choose a UserDirectory (see above) and place your python files in that directory. - - - Restart Dragon - --Each time when you finish configuring things, close the configure program and *Restart Dragon*! --At least the *Messages from Python Macros* window should appear when you (re)start Dragon, whenever NatLink is enabled. --If this does not happen, please consult link(problems with Natlink). - - Proceed with link(howtostart.html, How to Start). - - Details - - - Previous versions - --If you had NatLink before, there can be a warning screen, notifying you that you have to reregister NatLink. Do this, with a button at the lower left corner of the window. Restart NatSpeak (Dragon NaturallySpeaking). --If this does not work right away, delete the file *natlink.pyd* in the Core directory (*.../MacroSystem/Core*) and run the configure program again. Then things should go automatically. - - - Config program not found or not working --In case your start menu is incorrect, you have to find the GUI or CLI program in the Windows Explorer. The configuration GUI is located in *C:\NatLink\NatLink\confignatlinkvocolaunimacro* (assuming you installed in "C:\natlink"). The GUI is the file "start_configurenatlink.py". Just double click on the file in the Windows Explorer. If you do not need elevated mode, you can also start *configurenatlink.pyw* directly. - --In case the configure program (GUI) does not work, you can fall back the the command line interface (*CLI*). -Also see the link("/installation/technicaldetails/natlinkconfigfunctions.html", "natlinkconfigfunctions page"). The CLI is the file "natlinkconfigfunctions.py" in the same folder als the configure program. - - - Vocola 2 - --If you want to use different languages, you need your Vocola 2 commands in different directories. See link(http://vocola.net/v2/NonEnglish.asp, Vocola 2 Non-English Languages). - --Vocola 2 now automatically supports Unimacro action strings. See the section link(/features/unimacroandvocola/index.html, Unimacro and Vocola 2). - - Unimacro - --Note: only a selection of the grammars is in the NatLink user directory after installation. In this directory you will find a subdirectory *DisabledGrammars* with more grammar files. Notably the grammar *_keystrokes* has been put in this directory, because it can hit too often when you do not expect it. If you want grammars from this directory, simply copy them into the directory above, toggle the microphone and it should be on. - - Warning for NatSpeak until version 10 -NatLink can (could) affect the speech recognition accuracy. See link(http://qh.antenna.nl/en/speechrecognition/probleemopgelost/index.html, instructions on how to prevent this). - - -If you have problems with NatLink, and you want to get rid of it, see the link(/installation/problemswithnatlink.html, instructions for reverting back to NatSpeak without NatLink) (near the bottom of this page). - diff --git a/website unimacro/source/1_installation/a_Install for python 27/change in path variable.png b/website unimacro/source/1_installation/a_Install for python 27/change in path variable.png deleted file mode 100644 index a975253..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/change in path variable.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/choosebestmatchfourinsteadofbestmatchfive.png b/website unimacro/source/1_installation/a_Install for python 27/choosebestmatchfourinsteadofbestmatchfive.png deleted file mode 100644 index f74beb5..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/choosebestmatchfourinsteadofbestmatchfive.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/createbestmatchfouradvanced.png b/website unimacro/source/1_installation/a_Install for python 27/createbestmatchfouradvanced.png deleted file mode 100644 index dfdf045..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/createbestmatchfouradvanced.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/d_how to start.txt b/website unimacro/source/1_installation/a_Install for python 27/d_how to start.txt deleted file mode 100644 index 8653566..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/d_how to start.txt +++ /dev/null @@ -1,71 +0,0 @@ -How to start? - - Start NatSpeak -After you did the configuration, at least enabled NatLink, and restarted Dragon the window _Messages from NatLink_ should show up, and give a couple of lines of text. If not, NatLink is not enabled properly. - - Vocola 2 - --In order to start with Vocola 2, consult the link("http://vocola.net/v2/default.asp", "Vocola website"). --There is now also support for several link(http://vocola.net/v2/NonEnglish.asp, Non-English Languages), and the use of English AND these other languages alternatively. - - Unimacro --Study the rest of this website... especially the link("/grammars/control/index.html", "*grammars section*"). - --In order to start more smooth with Unimacro, in this release a lot of grammars (python files, ending with *.py*) have been moved into the folder *DisabledGrammars*. So you do not get all grammars at once. - --Go to your Unimacro folder (the "UserDirectory"), which you configured in the GUI. See what grammars are on. You can also say "Show All Grammars" to get an overview of all active Unimacro grammars. Move away grammars you don't want. Toggle the microphone after you have finished this step. - --Note: there are also python files which must be left in this directory. Only move out python files that start with underscore "*_*", but leave *_control.py* always in the Unimacro directory. - - Folders grammar - -If you want to use for example the folders grammar just say *show folders* to get, in a text file, explanation on this grammar. If you want to edit things say *edit folders*. - - Active grammars - -Say *show active grammars* to get a window with all *active grammars of Unimacro*. Note, Vocola 2 grammars (like *_vocola_main*) are not in this window. - - All possible grammars - -Say *show all grammars*, and/or browse in the link("/grammars/control/index.html", "*grammars section*") of this website for more information on the different grammars. - -Go - in the windows explorer - to the *UserDirectory* of Unimacro(and NatLink), and move grammar files from the folder *DisabledGrammars* into this UserDirectory. Toggle the microphone and the grammar should be active. - - - Easy: -Grammars you can start with include link(/grammars/globalgrammars/tasks/index.html, *tasks*), link(/grammars/globalgrammars/folders/index.html, *folders*), link(/grammars/specificgrammars/firefoxbrowsing/index.html, *firefox browsing*). - - Medium: -When you're confident with these, try for example link(/grammars/globalgrammars/lines/index.html, *lines*), -link(/grammars/globalgrammars/keystrokes/index.html, *keystrokes*) - - More involved: -For more specialised things look in link(/grammars/globalgrammars/brackets/index.html, *brackets*) -, link(/grammars/globalgrammars/oops/index.html, *oops*) -, link(/grammars/globalgrammars/tags/index.html, *tags*) -, link(/grammars/globalgrammars/repeat/index.html, *repeat*). Some of these grammars need more documentation and more development. - - Introspection -An other way to look into the properties of a grammar, goes with *show grammar_name* (eg *show folders*). A temporary txt file will be opened with actual information, including words in all commands lists and the grammar rules. - -If you want to change general options or words in a commands list, *edit grammar_name* and edit the file that is then opened. - - Switching on or off - -In the [general] section, important is the *initial on* option. - -:CODE: -[general] -initial on = 1 -:: - -You can set this option to *1* or *T* to switch on, but also, more easy, with the command *switch on grammar_name*. - -The opposite is *switch off grammar_name*, with as result: - -:CODE: -[general] -initial on = 0 -:: - -See more on this in the link(/grammars/control/index.html, _control grammar). diff --git a/website unimacro/source/1_installation/a_Install for python 27/d_log of changes/index.txt b/website unimacro/source/1_installation/a_Install for python 27/d_log of changes/index.txt deleted file mode 100644 index cf37548..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/d_log of changes/index.txt +++ /dev/null @@ -1,35 +0,0 @@ -Important changes combined installer release 4.0. - -(for more details, read txt-files in (folder NatLink)/natlink/natlinkInstaller) - --Now installs version 2.7.2I of Vocola: - - * Changes in version 2.7.2 of Vocola: -- Workarounds for some Dragon bugs, including the DNS 11 bug where - using <_anything> prevents recognition of 0 to 9. -- see link(http://vocola.net/v2/VocolaVersions.asp) for Vocola 2.7.1 and - earlier release notes. - - * Unofficial installer modifications: -- built-in Vocola commands (e.g., "load commands") now available for - Spanish, French and German as well as the previous English and Dutch. -(see link(http://vocola.net/v2/NonEnglish.asp, Using Vocola Non-English Languages)). -- Unimacro.vch is automatically updated at start up if the "Vocola Takes - Unimacro Actions" option is enabled. - - * New in Unimacro: --new module spokenforms.py, which manages spoken forms for numbers. Enhancements for spelling letters, abbrevs will follow soon. Uses a per language config file (eg enx_spokenforms.ini). --many details in for example _tasks, _folders, _brackets - - - - * New in the combined NatLink/Vocola/Unimacro installer: --startup script config GUI and config functions now automatically in "elevated mode" - - * Changed in NatLink (for programmers only): --nsformat adapted to Dragon 11. --unittests adapted to Dragon 11. --word properties not supported any more. --order of loading modules can be influenced in natlinkmain (hard-coded) - - diff --git a/website unimacro/source/1_installation/a_Install for python 27/d_log of changes/logofchanges.ini b/website unimacro/source/1_installation/a_Install for python 27/d_log of changes/logofchanges.ini deleted file mode 100644 index 98973cd..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/d_log of changes/logofchanges.ini +++ /dev/null @@ -1,6 +0,0 @@ -[changesrelease4.0] -name = changesrelease4.0 - - -[index] -new index = 01 apr 2010 diff --git a/website unimacro/source/1_installation/a_Install for python 27/d_problems with NatLink.txt b/website unimacro/source/1_installation/a_Install for python 27/d_problems with NatLink.txt deleted file mode 100644 index be7c649..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/d_problems with NatLink.txt +++ /dev/null @@ -1,62 +0,0 @@ -Problems with the proper functioning of NatLink? - - NatLink does not seem to function at all - --The first check is whether the window "Messages from NatLink" comes up when Dragon starts. If that is not the case, NatLink is not enabled, or you have multiple instances of Dragon running: - -image(messages window.jpg, displayscale=0.7) - ---Sometimes more "instances" of Dragon (Dragon.exe) appear to be active. Kill all *natspeak.exe* * 32 processes in the task management window: - -image(task management.png, title=kill Dragon.exe in the task management window, displayscale=0.7)(see below). - ---and restart Dragon/Dragon. - --If the problem persists, try to (re)run the configuration program. This is done either from the link(/installation/configuration.ml, Start menu) or from the files itself in the subdirectory as pointed out below. - - Rerun the configure program from the files itself (not the Start menu): - --*You need to do this only if the procedure from the Start menu does not work* - --Go (in the Windows Explorer) to the *natlink\confignatlinkvocolaunimacro* subdirectory of your NatLink installation (often on *C:\NatLink*). --Double click on the file *start_configurenatlink.py* ("*.py*" may be hidden in your view of the Explorer) --The configure GUI program is started in "elevated mode". - --Likewise the Command Line Interpreter (CLI) can be run by double clicking on *start_natlinkconfigfunctions.py*. - - Commands are not recognised after opening another speech profile --This sometimes happens after switching from English to another language or vice versa. It seems Dragon 11 sometimes doesn't *callback* correct to NatLink if the user has changed. Solution: restart Dragon, possibly check for other Dragon instances (see next). Please report if this problem happens more often. - - - Dragon influences accuracy of dictate (issue solved??) - -This should not happen anymore in Dragon 12 and later. - -This is/was a very serious issue, which is the same time hard to test. Several users think this happened (including me, Quintijn, the maintainer of this website). The problem seems to have been solved in Dragon 12. - - - Vocola commands are not updated --When this is still an issue, please report this. - - How to revert to Dragon without NatLink: - - 1. Disable NatLink: --Disable NatLink (uninstall is NOT needed, just Disable)(in the Configure GUI of Configure CLI, run in elevated mode). --If this does not work, you can disable NatLink manually by removing the following 2 lines at or near the bottom of the file *nsapps.ini* (on my NatSpeak 10, Windows Vista installation located on -*C:\ProgramData\Nuance\NaturallySpeaking10*). I did not need to be there for quite a number of years. - -:CODE: -[.Natlink] -App Support GUID={dd990001-bb89-11d2-b031-0060088dc929} -:: - --Be sure no instances of Dragon are still running, see instructions at the top of this page. --When you restart Dragon the "Messages from NatLink" should not show up any more. - - - 2. If you still have problems with your speech profile/Dragon installation: --*Repair* your Dragon (Dragon NaturallySpeaking) installation, do not forget possible Service Packs. --*Import* your previously exported speech profiles (Manage Users -> Advanced -> Import...). --If you did not export your speech profiles before starting with NatLink, you can try to *Restore* your automatic Backup of your speech profiles (Manage Users -> Advanced -> Restore...). --As last resort make new speech profiles. - diff --git a/website unimacro/source/1_installation/a_Install for python 27/d_problems with installation.txt b/website unimacro/source/1_installation/a_Install for python 27/d_problems with installation.txt deleted file mode 100644 index 2e0f1b3..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/d_problems with installation.txt +++ /dev/null @@ -1,117 +0,0 @@ -Problems with installation? - - Correct python version -For Natlink, you need a 32-bit version of python, currently 3.7 or 3.8 (with preference to 3.8). So 37-32 or 38-32. - -When you have more python versions on your system, 2.7 or 64bit, or lower 3 versions, be sure you start your config script with one of the correct versions. - - - -witregel(2) - - Older problems: - The rest of this page is from the long python 2 history of Natlink, which gave some hard-to-tackle issues. Hopefully they will all be obsolete with the new python 3 version of Natlink. - - When configuring Natlink: - - Install of Dragon in a non-standard location -- You installed Dragon in a non standard location, eg you invented your own path, or you installed on another drive. The configure program should warn you about this and let you specify the path where Dragon is installed. This is done via the button *Change-d* in the info panel of the Natlink config GUI, or via the option *d* of the natlinkconfigfunctions. Possibly you need to restart the config program, before proceeding. -- It can also happen that you used Natlink before and specified the install path of Dragon. And now installed Dragon in a new location. In this case you should *Clear-D* the setting in the info panel or via the option *D* of the natlinkconfigfunctions program. - - - When starting Dragon after configuration several things can go wrong: - -witregel() - - Cannot load compatibility module support - --This is the most annoying, and sometimes hard to solve, problem, but the solution under 1. seems to fix the problem! --Dragon gives message: *Cannot load compatibility module support (GUID = {dd990001-bb89-1d2-b031-0060088dc929}))*. --This can also happen when you start the Congifure GUI program. It is this message: - -witregel() - -image(msvcr fault.png, title=error sometimes when starting Dragon with NatLink, displayscale=0.7) - -witregel() - - 1. "Microsoft Visual C++ 2010 Service Pack 1 Redistributable Package MFC Security Update" - -This error is reported again in the last year. It seems to be the most common cause of Natlink not starting when you start Dragon. - -Installing this package could help, it goto *https://www.microsoft.com/en-us/download/details.aspx?id=26999*. - - You need the file *vcredist_x86.exe*. - --You can install this package, but also uninstall again if it did not help or presented problems. --It is probably wise to restart your computer after an install of uninstall of this package. - --In february 2019, it was confirmed by Justin Hall that this install solved the problem, and in March 2019 again by Anatole M. Clubs (name correct?). - - 2. Possibly registering natlink.pyd failed. - --Remove natlink.py fro the core directory (eg. C:\Natlink\Natlink\MacroSystem\core). --Re-run the config program, hopefully this now works. - --If these steps fail, try to do it manually: - -=Close Dragon -=Go to the subdirectory PYD of the Core directory. -=Copy the correct file from the PYD subdirectory into the core directory, and rename the file to natlink.pyd. 2.5, 2.6 and 2.7 referring to the python version you use, and ANSI for Dragon up to version 11, UNICODE for Dragon 12, 13, 14, and Ver15 for version 15. -=Rename this file to natlink.pyd -This is the "dll" file with which NatLink communicates with Dragon. -=Manually tweak the natlinkstatus.ini file: the line *NatlinkPydRegistered = 27;15* should hold something like this, 27 being python2.7 and 15 being Dragon 15. - -=You can register this file to windows manually after you close Dragon. See the short video: - - - - Finally restart Dragon. Maybe your problem is solved. - -witregel() - - 3. Maybe there is something wrong with the dll file *msvcr100.dll* - -I believe above step should have solved this dll problem, correct me if I am wrong. - -If you suspect this, try the following steps: - -*Probably these steps are outdated, so try these only if you know what you are doing* ---goto the natlink core directory (eg C:\NatLink\NatLink\MacroSystem\core) and then ---goto the subdirectory msvcr100fix. ---read the README.txt - --Restart Dragon. Hopefully it works. - - - "No valid DNS INI files Dir found" --These should automatically found by the configure program. If not, they can be specified in the info panel of the configure GUI, or with the "c" option in the natlinkconfigfunctions.py program. Should not happen in recent versions of Dragon though. --The most probable path is *C:\ProgramData\Application Data\Nuance\NaturallySpeaking12* (Dragon 12) --This should be fixed with version 4.1quebec. - - Most grammar files do not start. - -You see this in the Messages window like: - -image(errors windows extensions not correct installed.jpg, title="natlink problem, windows extensions of python not correct installed", displayscale=0.5) - -A possible fix is running the script start_postinstallscript_pywin32.cmd in admin mode. You can find this file in the directory ...\natlink\natlink\confignatlinkvocolaunimacro. Right click on the file and Run as Administator. - - Actions.ini - --The file actions.ini cannot be found anywhere. See link(ini file strategy.html, the next page: Ini file strategy). - - Changed python version -If you changed your python version, *eg from 2.5 to 2.7* running the Config program should note this and do the necessary changes. --Take the Basic actions above, and check your python version in the info panel of the configure program. - - Configuration GUI or Configuration CLI do not run - --It can happen that the python shortcut has been changed. You can either: ---Open start_configurenatlink.py or start_natlinkconfigfunctions.py in IDLE and run from there ---Assign *python.exe* to the *start_configurenatlink.py* file (or any *.py* python file) by right clicking on the file (in an explorer window), and choose Open with, Choose default program, and then choose python.exe. - --A lot of effort has been put in working away at us and catching them properly. If this still prevents the configure program from running, please report. - - If nothing else works -You can manually disable NatLink by changing the file *nsapps.ini*. See page link(problemswithnatlink.html, problems with NatLink), near the bottom. diff --git a/website unimacro/source/1_installation/a_Install for python 27/disable active accessibility.png b/website unimacro/source/1_installation/a_Install for python 27/disable active accessibility.png deleted file mode 100644 index 5b789cb..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/disable active accessibility.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/e_Speech Model.txt b/website unimacro/source/1_installation/a_Install for python 27/e_Speech Model.txt deleted file mode 100644 index 8cc8065..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/e_Speech Model.txt +++ /dev/null @@ -1,35 +0,0 @@ -Problems with Speech Model BestMatch V - - NatLink functions poorly with Speech Model BestMatch V (Dragon 12) - --Note: this problem seems to have been only for Dragon 12. - -Dragon NaturallySpeaking versions 12 and onwards offer a new Speech Model, BestMatch V, by default on many machines. It is claimed that accuracy is improved with this Speech Model, although independent tests seem to indicate that the improvement often fades over time. - -Unfortunately, this new speech model handles even mildly-complicated command grammars very poorly: when using such grammars, it can take multiple seconds for your utterances to be typed or take effect, which is extremely frustrating. Accordingly, we recommend that if you use NatLink you stick with BestMatch IV, which has essentially the same accuracy and does not suffer from slow recognition. - -When starting up NatLink (together with Dragon) the speech model of the User Profile that is open is checked. A warning is given in the *Messages from NatLink* window, at start when you use the BestMatch V Speech model. This check is also performed when you change your User Profile. - - How to use BestMatch IV (or even BestMatch III) instead of BestMatch V? - -image(settingupbestmatchfournewuser.png, title=setting up a new User Profile, class=imageleft, displayscale=0.5) - -You should create a new User Profile. - - -With the Dragon option Profile, New User Profile, New or with Profile, Manage User Profiles, New you find this dialog window. - -break() - -image(createbestmatchfouradvanced.png, title=choose advanced options, class=imageleft, displayscale=0.5) - -After several screens in the setup wizard you come to this dialog. Choose the Advanced button! - -break() - -image(choosebestmatchfourinsteadofbestmatchfive.png, title=choose bestmatch iv option, class=imageleft, displayscale=0.5) - -Choose in this dialog for the BestMatch IV option that is closest to the BestMatch V option that was specified already. Note that BestMatch III is probably even faster if your work relies more on commands than on dicate. - -break() - diff --git a/website unimacro/source/1_installation/a_Install for python 27/error configuring natlink.png b/website unimacro/source/1_installation/a_Install for python 27/error configuring natlink.png deleted file mode 100644 index 03c2498..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/error configuring natlink.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/errors windows extensions not correct installed.jpg b/website unimacro/source/1_installation/a_Install for python 27/errors windows extensions not correct installed.jpg deleted file mode 100644 index 9b1620b..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/errors windows extensions not correct installed.jpg and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/f_ini file strategy.txt b/website unimacro/source/1_installation/a_Install for python 27/f_ini file strategy.txt deleted file mode 100644 index fa36d37..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/f_ini file strategy.txt +++ /dev/null @@ -1,57 +0,0 @@ -Ini file strategy - - -From the release unimacro2.6 on (and from natlink3.* releases), user link("/features/inifiles.html", "*ini files*") should never be overwritten by a new Unimacro release. Instead a folder *sample_ini* contains all the default ini files. If a user needs an ini file (actions.ini or a grammar configuration ini file), and it is not yet present, Unimacro tries to find it in the *sample_ini* folder and copy from there into your UnimacroUserDirectory. - - New releases problem: - -The drawback is that new entries, mainly improvements in actions.ini file or changed options in grammar configuration files are not updated with a new release. You can either - --Delete your own ini file, and the sample ini file will be found (possibly after restarting NatSpeak) and copied into the correct location. --Inspect the sample ini file and copy relevant lines into your own copy. - - actions.ini -A file *actions.ini* is needed for Unimacro actions. Is was (prior to natlink3.7) in the userDirectory of NatLink (where the unimacro grammar files are). - - -From natlink3.7 on this file is (expected) in the UnimacroUserDirectory, ie where the user ini files are. If after installation the file actions.ini is *not* in this directory, Unimacro tries to copy from: -- the userDirectory (if you upgrade from a previous version of Natlink it should be found there, the file in the userDirectory is removed!) -- the *sample_ini* directory of Unimacro (after a first install it should be found there). - -If these copy actions do not succeed, Unimacro grammars cannot start properly. -- Check in the Configuration GUI or CLI *if the userDirectory is set correct*! -- Check if you have a *sample_ini* directory in your *userDirectory*. -- As a last resort, try to find an actions.ini file and copy it into your UnimacroUserDirectory. - - spokenforms.ini -New in release 4.0 is the xxx_spokenforms.ini configuration file, where *xxx* is the language code of your speech profiles. So for English *enx_spokenforms.ini*, etc. - -A sample is copied automatically from the *sample_ini* directory of Unimacro, if needed. At the moment this configuration file is mainly used for getting spoken forms for numbers and lists. This process is done automatically, and fairly complex, so please report any issues that arise. - -For non-English languages please provide the community with the correct contents, if your language is not yet in the sample_ini directory. - -More information in link(/features/inifiles.html, *inifiles*) and link(/features/numbers/index.html, *numbers and spoken forms*) - - Updating -So, according to the remark above, from release *natlink3.7* on, the default file actions.ini is in the *sample_ini* directory. Changes you made yourself in your own copy are not overwritten when you install a newer NatLink/Vocola/Unimacro release. But you can miss default changes. So, if you encounter problems, check the differences of the *sample_ini/actions.ini* file and your own actions.ini file in the UnimacroUserDirectory. - - If you find empty sections in your inifiles, these are probably new due to a change in a grammar. Please compare carefully with the examples from the sample_ini directory! - - Example grammar _tasks -Recently (2010) the *taskotherdisplay* meta action has been changed. This means that in the file *_tasks.ini* the following should be changed: - -:CODE: -[taskaction] -(snip) -other display = <> -:: - - into: - -:CODE: -[taskaction] -(snip) -other display = TASKOD -:: - - diff --git a/website unimacro/source/1_installation/a_Install for python 27/g_Configure administrator rights.txt b/website unimacro/source/1_installation/a_Install for python 27/g_Configure administrator rights.txt deleted file mode 100644 index 40610ff..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/g_Configure administrator rights.txt +++ /dev/null @@ -1,15 +0,0 @@ -Configure with Administrator rights - -The Configure program must run in "elevated" mode, especially for the first time, when natlink.pyd is registered and some pythonpath variables are set (see below). When you run the config program though the buttons in the start menu (*start_configurenatlink.py* or start_natlinkconfigfunctions.py) you will be asked for starting this elevated mode. - - Elevated mode is especially needed for: --The correct python version from the *PYD* subdirectory copied to *natlink.pyd*. --*Natlink.pyd* needs to be registered --Some settings have to be done in the *HKLM* (HKEY_LOCAL_MACHINE) section of the registry. --You might need extra rights to write to the file *nsapps.ini*, which is done the first time you enable NatLink. - - Do NOT install on C:\Program Files - -Because the *Program Files directory* has often restricted rights for users (when outside "elevated mode"), installing NatLink in the Program Files directory can give problems. For example when Vocola wants to write its python grammar files in the "MacroSystem" subdirectory. - -So it seems better to install NatLink (including Vocola 2 and Unimacro) on *C:\NatLink* (or on another drive, like D:\NatLink). \ No newline at end of file diff --git a/website unimacro/source/1_installation/a_Install for python 27/h_Setting HOME/advancedsettings.jpg b/website unimacro/source/1_installation/a_Install for python 27/h_Setting HOME/advancedsettings.jpg deleted file mode 100644 index 1b26fc3..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/h_Setting HOME/advancedsettings.jpg and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/h_Setting HOME/homeinenvironmentvariables.jpg b/website unimacro/source/1_installation/a_Install for python 27/h_Setting HOME/homeinenvironmentvariables.jpg deleted file mode 100644 index 224d4de..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/h_Setting HOME/homeinenvironmentvariables.jpg and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/h_Setting HOME/index.txt b/website unimacro/source/1_installation/a_Install for python 27/h_Setting HOME/index.txt deleted file mode 100644 index 0e203cc..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/h_Setting HOME/index.txt +++ /dev/null @@ -1,30 +0,0 @@ -Configure environment variables - -For some grammars and for some configure tricks in the configure program (not the config GUI though) you can use environment variables. - -The most important one is *HOME*, also the shorthand notation *~* is used. - --When HOME is not set explicitly, the value of *PERSONAL* is taken, on my system for example pointing to "C:\Users\Quintijn\Documents" - - Setting your HOME variable - --When you want to set *HOME* to a user independent directory, you need to set the HOME environment variable, see below (the pictures are from a Dutch Windows 7 computer): - --Go to the *System properties* (Press Windows+Break key): - -image(systemproperties.jpg, displayscale=0.7) - --Click on *Advanced Settings* and in the next dialog click on *Environment variables* - -image(advancedsettings.jpg, displayscale=0.7) - - --Note HOME can be configured already, like in this example: - -image(homeinenvironmentvariables.jpg, displayscale=0.7) - --If it is not, click on *New*, and edit like: - -image(makenewenvironmentvariable.jpg, displayscale=0.7) - -Now you can, probably after a restart of Dragon, use *~* or *%HOME%* for your HOME directory! \ No newline at end of file diff --git a/website unimacro/source/1_installation/a_Install for python 27/h_Setting HOME/makenewenvironmentvariable.jpg b/website unimacro/source/1_installation/a_Install for python 27/h_Setting HOME/makenewenvironmentvariable.jpg deleted file mode 100644 index 703ba48..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/h_Setting HOME/makenewenvironmentvariable.jpg and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/h_Setting HOME/settinghome.ini b/website unimacro/source/1_installation/a_Install for python 27/h_Setting HOME/settinghome.ini deleted file mode 100644 index e69de29..0000000 diff --git a/website unimacro/source/1_installation/a_Install for python 27/h_Setting HOME/systemproperties.jpg b/website unimacro/source/1_installation/a_Install for python 27/h_Setting HOME/systemproperties.jpg deleted file mode 100644 index 96c0f80..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/h_Setting HOME/systemproperties.jpg and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/info python 2.6.png b/website unimacro/source/1_installation/a_Install for python 27/info python 2.6.png deleted file mode 100644 index a006400..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/info python 2.6.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/initial message natlink 4.0.png b/website unimacro/source/1_installation/a_Install for python 27/initial message natlink 4.0.png deleted file mode 100644 index ae10cac..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/initial message natlink 4.0.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/installforpython27.ini b/website unimacro/source/1_installation/a_Install for python 27/installforpython27.ini deleted file mode 100644 index 31e3203..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/installforpython27.ini +++ /dev/null @@ -1,30 +0,0 @@ -[configuration] -name = configuration - - -[configureadministratorrights] -name = configureadministratorrights - - -[howtostart] -name = howtostart - - -[inifilestrategy] -name = inifilestrategy - - -[installationstableversionpython2] -name = installationstableversionpython2 - - -[problemswithinstallation] -name = problemswithinstallation - - -[problemswithnatlink] -name = problemswithnatlink - - -[speechmodel] -name = speechmodel diff --git a/website unimacro/source/1_installation/a_Install for python 27/message after disabling python 2.5.png b/website unimacro/source/1_installation/a_Install for python 27/message after disabling python 2.5.png deleted file mode 100644 index 847e049..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/message after disabling python 2.5.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/message error configuring natlink.png b/website unimacro/source/1_installation/a_Install for python 27/message error configuring natlink.png deleted file mode 100644 index b2f06d5..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/message error configuring natlink.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/more python versions.png b/website unimacro/source/1_installation/a_Install for python 27/more python versions.png deleted file mode 100644 index af87c6f..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/more python versions.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/msvcr fault.png b/website unimacro/source/1_installation/a_Install for python 27/msvcr fault.png deleted file mode 100644 index 18c96fd..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/msvcr fault.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/natlinkandinstallation.ini b/website unimacro/source/1_installation/a_Install for python 27/natlinkandinstallation.ini deleted file mode 100644 index f612b79..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/natlinkandinstallation.ini +++ /dev/null @@ -1,37 +0,0 @@ -[index] -lastmod = 2008-02-04 -new index = 04 feb 2008 - - -[inifilestrategy] -lastmod = 2008-02-04 -new page = 04 feb 2008 - - -[knownproblems] -lastmod = 2008-02-04 -new page = 04 feb 2008 - - -[logofchanges] -lastmod = 2008-02-04 -new page = 04 feb 2008 - - -[natlinkmain] -lastmod = 2008-02-04 -new page = 04 feb 2008 - - -[natlinkutils] -lastmod = 2008-02-04 -new page = 04 feb 2008 - - -[newinstallernatlinkproposed] -new menu = 04 feb 2008 - - -[problemswithinstallation] -lastmod = 2008-02-04 -new page = 04 feb 2008 diff --git a/website unimacro/source/1_installation/a_Install for python 27/new version python.png b/website unimacro/source/1_installation/a_Install for python 27/new version python.png deleted file mode 100644 index 6603202..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/new version python.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/pipinstall.txt b/website unimacro/source/1_installation/a_Install for python 27/pipinstall.txt deleted file mode 100644 index 6f29f75..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/pipinstall.txt +++ /dev/null @@ -1,26 +0,0 @@ -Installing wxPython via pip: - - (pip is the easiest way to install python modules) - - (open a command prompt in admin mode, Start menu, type cmd, right click on cmd.exe and choose Run as administrator; - - (first go to the Scripts directory of python2.7: - -C:\WINDOWS\system32>cd \python27\Scripts - - (then get the version of pip, which should be python 2.7) -C:\Python27\Scripts>pip --version -pip 18.1 from c:\python27\lib\site-packages\pip (python 2.7) - - (then install or upgrade wxPython) - (if it is the first time install, leave away --upgrade) - -C:\Python27\Scripts>pip install --upgrade wxPython -Requirement already up-to-date: wxPython in c:\python27\lib\site-packages (4.0.3) -Requirement already satisfied, skipping upgrade: PyPubSub in c:\python27\lib\site-packages (from wxPython) (4.0.0) -Requirement already satisfied, skipping upgrade: six in c:\python27\lib\site-packages (from wxPython) (1.11.0) -Requirement already satisfied, skipping upgrade: typing in c:\python27\lib\site-packages (from PyPubSub->wxPython) (3.6.6) - - (this listing shows my wxPython is uptodate) - -C:\Python27\Scripts> diff --git a/website unimacro/source/1_installation/a_Install for python 27/python 2.5 to 2.6.png b/website unimacro/source/1_installation/a_Install for python 27/python 2.5 to 2.6.png deleted file mode 100644 index 8c72d31..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/python 2.5 to 2.6.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/pywin32 fix.png b/website unimacro/source/1_installation/a_Install for python 27/pywin32 fix.png deleted file mode 100644 index 698d975..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/pywin32 fix.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/reregister natlink.png b/website unimacro/source/1_installation/a_Install for python 27/reregister natlink.png deleted file mode 100644 index 4e8af52..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/reregister natlink.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/reregister succeeded.png b/website unimacro/source/1_installation/a_Install for python 27/reregister succeeded.png deleted file mode 100644 index ee1a165..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/reregister succeeded.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/run as administrator.png b/website unimacro/source/1_installation/a_Install for python 27/run as administrator.png deleted file mode 100644 index 981de49..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/run as administrator.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/search postpywin32install.png b/website unimacro/source/1_installation/a_Install for python 27/search postpywin32install.png deleted file mode 100644 index 6fb9e4b..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/search postpywin32install.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/settingupbestmatchfournewuser.png b/website unimacro/source/1_installation/a_Install for python 27/settingupbestmatchfournewuser.png deleted file mode 100644 index 2209215..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/settingupbestmatchfournewuser.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/start menu run as administrator.png b/website unimacro/source/1_installation/a_Install for python 27/start menu run as administrator.png deleted file mode 100644 index c60b996..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/start menu run as administrator.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/task management.png b/website unimacro/source/1_installation/a_Install for python 27/task management.png deleted file mode 100644 index e80fad7..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/task management.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/tortoise login.jpg b/website unimacro/source/1_installation/a_Install for python 27/tortoise login.jpg deleted file mode 100644 index 21b47ee..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/tortoise login.jpg and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/unimacro in natlinkfolder.jpg b/website unimacro/source/1_installation/a_Install for python 27/unimacro in natlinkfolder.jpg deleted file mode 100644 index 28a419e..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/unimacro in natlinkfolder.jpg and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/unimacro in other place.jpg b/website unimacro/source/1_installation/a_Install for python 27/unimacro in other place.jpg deleted file mode 100644 index c16778c..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/unimacro in other place.jpg and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/a_natlinkstatus.txt b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/a_natlinkstatus.txt deleted file mode 100644 index a34408a..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/a_natlinkstatus.txt +++ /dev/null @@ -1,174 +0,0 @@ -Natlinkstatus module - -This module holds "status" information about NatLink (new around 2008, version 3.7). It is in the core folder of NatLink. Both *natlinkmain* and the NatLink install functions (*natlinkconfigfunctions*)can make use of the status info in the same way. - -In a grammar a *status* instance can be got: - -:CODE: -import natlinkstatus -status = natlinkstatus.NatlinkStatus() -:: - -and the functions can be called accordingly with eg: - -:CODE: - userDir = status.getUserDirectory() -:: - -So, most data are collected through this instance "status" of the NatlinkStatus class. - -Up to version 3.8 most of these data were stored and retrieved in the registry, HKCU\software\NatLink (HKEY_CURRENT_USER). Only the username and the folder of the speech profile of the current user is collected when the user changes, and is maintained in this class, as a class variable. - -Starting with version 3.9 the user settings are stored in a configuration file (*natlinkstatus.ini*), which is created on first use in the *Core* directory. When migrating from a previous version, the registry settings are copied into this natlinkstatus.ini file. - -:CODE: -The functions below are in class NatlinkStatus. The natlinkconfigfunctions -can subclass this class. -:: - - The following functions manage information that partly can change at changeCallback time -(when a new user opens) - -:CODE: - -setUserInfo(args) put username and directory of speech profiles of the last opened user in this class. -getUserName: get active username (only if NatSpeak/NatLink is running) -getDNSuserDirectory: get directory of user speech profile (only if NatSpeak/NatLink is running) -:: - - - The functions below should not change anything in settings, only get information. - -:CODE: -getDNSInstallDir: - returns the directory where NatSpeak is installed. - if the registry key NatspeakInstallDir exists(CURRENT_USER/Software/NatLink), - this path is taken (if it points to a valid folder) - Otherwise one of the default paths is taken, - %PROGRAMFILES%\Nuance\... or %PROGRAMFILES%\ScanSoft\... - It must contain at least a Program subdirectory - -getDNSIniDir: - returns the directory where the NatSpeak Inifiles are located, - notably nssystem.ini and nsapps.ini. - If the registry key NatspeakIniDir exists (CURRENT_USER/Software/NatLink), - and the folder exists and the needed inifiles are in this folder this path is returned. - Otherwise it is looked for in %COMMON_APPDATA%\Nuance\... or %COMMON_APPDATA%\Scansoft\... - -getDNSVersion: - returns the in the version number of NatSpeak, as an integer. So 9, 8, 7, ... (???) - note distinction is made here between different subversions. - -getWindowsVersion: - see source below - -getLanguage: - returns the 3 letter code of the language of the speech profile that - is open (only possible when NatSpeak/NatLink is running) - -getPythonVersion: - returns, as a string, the python version. Eg. "2.3" - If it cannot find it in the registry it returns an empty string - -getUserDirectory: get the NatLink user directory, Unimacro will be there. If not return '' - -getVocolaUserDirectory: get the directory of Vocola User files, if not return '' - -NatlinkIsEnabled: - return 1 or 0 whether NatLink is enabled or not - returns None when strange values are found - (checked with the Ini file settings of NSSystemIni and NSAppsIni) - -getNSSYSTEMIni(): get the path of nssystem.ini -getNSAPPSIni(): get the path of nsapps.ini - -getBaseModelBaseTopic: - return these as strings, not ready yet, only possible when - NatSpeak/NatLink is running. - -getDebugLoad: - get value from registry, if set do extra output of natlinkmain at (re)load time -getDebugCallback: - get value from registry, if set do extra output of natlinkmain at callbacks is given - -getVocolaTakesUnimacroActions -getVocolaTakesLanguages: additional settings for Vocola - -more: see source... -:: - -When run the module in IDLE or Pythonwin on my desktop (Quintijn) I get: - -:CODE: -UserDirectory: D:\natlink\unimacro -inserted in sys.path: D:\natlink\unimacro ----NatLink is enabled - CoreDirectory D:\natlink\natlink\MacroSystem\core - InstallVersion 3.8 ----Vocola is enabled - VocolaUserDirectory D:\Documenten\vocolaqh - VocolaTakesLanguages 1 ----Unimacro is enabled - UserDirectory D:\natlink\unimacro - UnimacroUserDirectory D:\Documenten\unimacroqh - UnimacroIniFilesEditor C:\Program Files\ActiveState Komodo IDE 5\komodo.exe -other NatLink info: - DebugLoad - - DebugCallback - - NatlinkDebug - -system information: - DNSInstallDir C:\Program Files\Nuance\NaturallySpeaking9 - DNSIniDir C:\Documents and Settings\All Users\Application Data\Nuance\NaturallySpeaking9 - DNSVersion 9 - WindowsVersion XP - PythonVersion 2.5 -remaining information: - DNSFullVersion 9.51.200.282 - NatlinkDllRegistered 1 - IncludeUnimacroInPythonPath - -:: - - Expanding Environment Variables - -This was described already in link(natlinkcorefunctions). But via natlinkstatus, this expansion mechanism can also use a few *Natlink* related variables. Note the variables are *case sensitive*. - -Usage example: -:CODE: -import natlinkstatus - -short = "~/Quintijn" -expanded = natlinkstatus.expandEnvVars(short) -print 'Some directory in home:', expanded - -# the Dragon directory: -short = "%PROGRAMFILES%/Nuance" -expanded = natlinkstatus.expandEnvVars(short) -print "The dragon directory: %s"% expanded -# the Dragon ini files directory: -short = "%COMMON_APPDATA%/Nuance" -expanded = natlinkstatus.expandEnvVars(short) -print "The dragon config files: %s"% expanded - -# log files in Unimacro: -short = "%UNIMACROUSERDIRECTORY%/enx_log" -expanded = natlinkstatus.expandEnvVars(short) -print "log files directory Unimacro: %s"% expanded - -# My VocolaUserDirectory: -short = "%VOCOLAUSERDIRECTORY%" -expanded = natlinkstatusexpandEnvVars(short) -print "My VocolaUserDirectory: %s"% expanded - -:: - -prints for example: - -:CODE: -Some directory in home: C:\Documenten\Quintijn -The dragon directory: C:\Program Files (x86)\Nuance -The dragon config files: C:\ProgramData\Nuance -My UnimacroUserDirectory: C:\Documenten\unimacro_qh\enx_log -My VocolaUserDirectory: C:\Documenten\vocola_qh -:: - -Read more about these extended environment variables in link(/grammars/globalgrammars/folders/environmentvariables.html, grammar folders). diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/b_natlinkconfigfunctions.txt b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/b_natlinkconfigfunctions.txt deleted file mode 100644 index 5f2c3d8..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/b_natlinkconfigfunctions.txt +++ /dev/null @@ -1,125 +0,0 @@ -NatLink Configuration Functions - -This module *natlinkconfigfunctions.py* is in the same directory as the configure GUI. It contains the necessary functions for the configuration procedure. If run direct, use --IDLE (right click on the file, Edit with IDLE and press F5. (at exit (q) some strange message may show up, just ignore) --python (right click on the file, Open with, python) --PythonWin (right click on the file, Edit with PythonWin; Press F5) - -When the CLI starts, and also the config GUI, some checks are performed as to the current installation: --It must find the coreDirectory to be in the same directory tree as the calling module. If this fails, something strange is happening. --The path of the coreDirectory is compared with settings in registry of the PythonPath section. If something differs, you started the CLI or config GUI from another location as before. You are asked to either: ---(re)register NatLink.dll, and setting the correct paths in the registry. Quit the program and restart NatSpeak. Note you loose previous settings of eg VocolaUserDirectory. ---quit this program and rerun from the location you used before for configuring NatLink. - - - The current commands of the CLI are: - -:CODE: -i - info, print information about the NatLink status -I - settings, print information about the natlinkstatus.ini settings -j - print PythonPath variable - -[NatLink] - -e/E - enable/disable NatLink - -y/Y - enable/disable debug callback output of natlinkmain -x/X - enable/disable debug load output of natlinkmain - -d/D - set/clear DNSInstallDir, the directory where NatSpeak/Dragon is installed -c/C - set/clear DNSINIDir, where NatSpeak/Dragon INI files are located - -[Vocola] - -v/V - enable/disable Vocola by setting/clearing VocolaUserDirectory, the user - directory for Vocola Command Files (.vcl) (~ or %HOME% allowed, see below). - -b/B - enable/disable distinction between languages for Vocola user files -a/A - enable/disable the possibility to use Unimacro actions in Vocola - -[Unimacro] - -o/O - enable/disable Unimacro, by setting/clearing the UnimacroUserDirectory, where - the Unimacro User (Ini) Files are located, and several other directories (~ or %HOME% allowed, see below) -f/F - force Unimacro directory to be in the python path, even if - Unimacro is disabled (-F: do not force this) -p/P - set/clear path for program that opens Unimacro User (Ini) Files (if cleared, notepad is used) -l - copy header file Unimacro.vch into Vocola User Directory -m/M - insert/remove an include line for Unimacro.vch in all Vocola - command files - -[UserDirectory] -n/N - enable/disable UserDirectory, the directory where - User NatLink grammar files are located (e.g., ...\Documents\NatLinkUserDirectory) - (see Note below on the change in October 2015) - -[Repair] -r/R - register/unregister NatLink, the natlink.pyd (natlink.pyd) file - (should not be needed) -z/Z - silently enables NatLink and registers natlink.pyd / disables NatLink - and unregisters natlink.pyd. -[AutoHotkey] -h/H - set/clear the AutoHotkey exe directory. -k/K - set/clear the User Directory for AutoHotkey scripts. -[Other] - -u/usage - give this list -q - quit - -help : give more explanation on -:: - - Using ~ or %USERNAME%, %PROGRAMFILES% etc. -Using these variables (*~* is equal to *%HOME%*), variable paths can be set for the various directories. This can only be done by using the CLI, or using the natlinkconfigfunctions in batch mode. *This trick cannot be used in the config GUI*. See the link(/installation/settinghome/index.html, Setting HOME Variable) page for more explanation. - - enable/disable NatLink -The commands *e* to enable and *E* to disable should be enough. - - enable/disable Vocola -Assume *_vocola_main.py* is in the baseDirectory of NatLink, eg C:\NatLink\NatLink\MacroSystem. You should not worry about this directory. - -Vocola will be enabled when a valid VocolaUserDirectory is set with the *v* option. The path can be something like ~\VocolaUser. Your Vocola Command Files will be located in this directory. - -When this directory is cleared (*V*) Vocola is disabled and will not load when NatLink starts at Dragon startup. - - enable/disable Unimacro -This is done by setting a UnimacroUserDirectory (option *o*), the path can be for example: ~/UnimacroUser). User Ini Files will be located in this directory. The grammar files of Unimacro are in the NatLink tree, eg C:\NatLink\Unimacro. - -Disable by clearing this directory (option *U*). - - Special Vocola option: use different languages -If enabled (*b*), Vocola will look and put its Command Files into a subdirectory "xxx" of -VocolaUserDirectory IF the language code of -the user speech profiles is different from "enx". - -So for English users this option will have no effect, the Command Files are in ~\VocolaUser, but... - --Dutch will go in *~\VocolaUser\nld*, --French in *~\VocolaUser\fra* --German in *~\VocolaUser\deu* --Italian in *~\VocolaUser\ita* --Spanish in *~\VocolaUser\esp* - -But as soon as you switch off this option (*B*) Vocola will get and put all Command Files from/in the VocolaUserDirectory (in our example: ~\VocolaUser). - - - Python versions --Natlink.pyd is still compiled for python 2.5, but only for Dragon up to version 11.5. - --For both Dragon <= 11.5 and for Dragon 12 and above there are now natlink.pyd versions for python 2.6 and python 2.7. - - - Older versions of Dragon NaturallySpeaking -Older versions of Dragon should be working with Python 2.5, 2.6 and 2.7. - -If you have an older version of Dragon NaturallySpeaking, try to configure the --DNSInstallDir (option *d*) and --DNSIniDir (option *c*). - - PythonPath strategy - -How Dragon finds natlink: - --The coreDirectory is inserted in the python path by defining them in the registry(eg for python 2.7) HKLM\SOFTWARE\Python\PythonCore\2.7\PythonPath\NatLink (HKLM stands for HKEY_LOCAL_MACHINE). This is the way Dragon can find natlink.pyd. --The BaseDirectory, UnimacroDirectory and the UserDirectory, whenever active, are set by natlinkmain.py into the PythonPath variable, when Dragon starts. - diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/b_natlinkcorefunctions.txt b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/b_natlinkcorefunctions.txt deleted file mode 100644 index 78b7fc3..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/b_natlinkcorefunctions.txt +++ /dev/null @@ -1,41 +0,0 @@ -NatLink Core Functions - -This module *natlinkcorefunctions.py* is in the *Core* directory. - -The functions are used by natlinkstatus.py, -and can also used by other modules. - -The most important are: - - getExtendedEnv - -You can use this function for expanding *~* or *%HOME%* to your personal home directory, or for other%XXXX% variables. - -Note: By default for *~* or *%HOME%* the value of *%PERSONAL%* is taken, which points to the default documents directory of the user that is logged in (*%USERPROFILE%\Documents*). If you want another value for *%HOME%* (and therefore for *~*), you can specify this via the Environment Variables menu in the System Properties program. See an link(https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/sysdm_advancd_environmnt_addchange_variable.mspx, example). - -Starting September 2015 also the actual NatLink directories can be expanded, with a similar function in *natlinkstatus.py*. For usage and examples, please see link(natlinkstatus). - - Functions of natlinkcorefunctions: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:function -:COL:description - -:ROW: -getBaseFolder -:COL: returns the folder from the calling module (a function like this should be copied into other modules that need this facility) -:ROW:fatalError -:COL:raises error again, if new_raise is set, otherwise continues executing (for this module only) -:ROW:*getExtendedEnv(env)* -:COL:gets from os.environ, or from window system calls (CSIDL_...) the -environment. If HOME is not set (see above), take PERSONAL for HOME and ~. - -Run the module in order to see all the possibilities. -:ROW:getAllFolderEnvironmentVariables -:COL:get a dict of all possible HOME and CSIDL variables, -that result in a valid folder path -:ROW:substituteEnvVariableAtStart -:COL:substitute back into a file/folder path an environment variable -:: - - diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/c_configure GUI.txt b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/c_configure GUI.txt deleted file mode 100644 index bb7e813..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/c_configure GUI.txt +++ /dev/null @@ -1,9 +0,0 @@ -Configure GUI - -The configure GUI is now part of the installer. If you choose *Configure NatLink via GUI* from the start menu after you install NatLink from the .exe installer, this GUI is opened. - -The necessary elevated mode is automatically started when you use the scripts from the start menu: - -- The "Configure Natlink with GUI" link opens start_configurenatlink.py, this python program does the rest (thanks to Mark) - - diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/checkout Voicecode.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/checkout Voicecode.png deleted file mode 100644 index e60c819..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/checkout Voicecode.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/checkout natlink.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/checkout natlink.png deleted file mode 100644 index e2074b8..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/checkout natlink.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/checkout unimacro.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/checkout unimacro.png deleted file mode 100644 index d220bbd..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/checkout unimacro.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/d_batch mode for configuration.txt b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/d_batch mode for configuration.txt deleted file mode 100644 index d989df8..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/d_batch mode for configuration.txt +++ /dev/null @@ -1,23 +0,0 @@ -Batch mode for configuration - -Batch mode can be used in order to automate the configuration. The examples below show this, with absolute paths for my (Quintijn) configuration of python and NatLink. - -Save the code into a *.bat* file, and run in elevated mode (Windows Vista and Windows 7). - - Disable: -:CODE: -rem -E disable natlink -C:\python25\python.exe D:\natlink\natlink\confignatlinkvocolaunimacro\natlinkconfigfunctions.py -E -:: - - - Enable in a standard way: -:CODE: -rem -e enable natlink -rem -n set userdirectory to path -rem -o set unimacro user directory (for user ini files) -rem -v enable vocola with user files in path -rem note: ~ is identical to %HOME% -C:\python25\python.exe D:\natlink\natlink\confignatlinkvocolaunimacro\natlinkconfigfunctions.py -e -n D:\natlink\unimacro -v %HOME%/vocolaqh -o ~\unimacroqh -:: - diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/d_installer.txt b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/d_installer.txt deleted file mode 100644 index c352e60..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/d_installer.txt +++ /dev/null @@ -1,31 +0,0 @@ -Installer - -Using the installer program (with inno setup) is not very difficult. It is controlled from the python script -*setupnatlinkwithinno.py*, which resides in *NatLink/natlinkInstaller*. - -You need the program link("http://www.jrsoftware.org/isdl.php", "*inno setup*") on your computer, and you need to have both NatLink and Unimacro files via subversion (SVN). - - - Local actions: - -Do the following steps: --change __version__ in natlinkstatus (Core directory) --Update Unimacro and NatLink --Commit NatLink --Export (a SVN command) both Unimacro and NatLink into a new folder (eg *D:\NatLink\releases\natlink4.0*) --This folder then has subfolders *NatLink* and *Unimacro*! --Run the script *setupnatlinkwithinno.py* from the file in this directory (*D:\NatLink\releases\natlink4.0\NatLink\natlinkInstaller*) - -The resulting setup....exe will be created in a directory *dist* (*D:\NatLink\releases\natlink4.0\dist*) and will be called -*setup-NatLink-4.0.exe* (*4.0* being the release number). - - Going to sourceforge - --Next you must go to *http://sourceforge.net*. --Login and search for *natlink*. --Go to the files section and follow the instructions. --Upload the *.exe* file. --You also need a *README.txt* file, which shows a short instruction on the relevant download page. - - - diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/d_natlinkmain_vocola_main.txt b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/d_natlinkmain_vocola_main.txt deleted file mode 100644 index 7ea4967..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/d_natlinkmain_vocola_main.txt +++ /dev/null @@ -1,27 +0,0 @@ -natlinkmain and _vocola_main - -Natlinkmain controls the calling back at the beginning of each utterance (beginCallback) and after each change of microphone state or change of user (speech profile) (changeCallback, of type "mic" or of type "user"). - - beginCallback -This function is called *before* all the grammar files (in the *userDirectory* - for example Unimacro grammars - and in the *baseDirectory* - _vocola_main.py and grammars that are generated by Vocola) are called back in gotBegin. - -Vocola needs a special action at this moment, because when a Vocola user file has been changed, Vocola must run the *vcl2py* procedure in order to produce the appropriate python grammar file. - -In order to do this *natlinkmain* calls the function *_vocola_main.vocolaBeginCallback*. This function can see if anything has been changed. If so runs the *vcl2py* procedure and reports back if a new python grammar file has been made (*2*) or an existing python grammar file has been changed (*1*). If nothing was changed it simply returns _None_. *Natlinkmain* takes the appropriate action in checking grammar files or loading the new grammar files. - - changeCallback -When a new user is opened this natlinkmain function runs. All grammar files are unloaded, and loaded again. In this procedure *_vocola_main* goes first. It deletes all grammar files that were generated before, and runs *vcl2py* to make new grammar files. After this step all the grammar files are loaded. - - What if Vocola is not running -If Vocola is not active (see in link("natlinkconfigfunctions.html", "configuration procedure")), it should have an instance variable *vocolaEnabled* set to None. If Vocola is active this variable should be *1*. - -So in order to have natlinkmain work correct, _vocola_main.py should be valid and do it least above things. - - - Checking for changed Vocola command files - -By default checking for changed Vocola command files is performed at each utterance. - - - - diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/directory layout after subversion checkout.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/directory layout after subversion checkout.png deleted file mode 100644 index d728294..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/directory layout after subversion checkout.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/index.txt b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/index.txt deleted file mode 100644 index 7856e6b..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/index.txt +++ /dev/null @@ -1,13 +0,0 @@ -Technical details - -The pages in this section provides more details about some technical issues. They will be revised when time goes. - - Dragon 11 - -With Dragon 11 several changes made quite a few adaptations in NatLink and Unimacro necessary. The details can be found in the different unittest programs (in the PyTest directory of NatLink). -But the most important changes are: - --Word properties are no longer returned by NatLink, but... --A new word format makes extracting a lot of properties possible (see link(/installation/technicaldetails/nsformat.html, *nsformat*)). --The imported rules <dgnletters> and <dgnwords> are no longer recognized. Only <dgndictation> remains. (This is the equivalent of <_anything> in Vocola.) - diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/installationtechnicaldetails.ini b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/installationtechnicaldetails.ini deleted file mode 100644 index 8e4cf0e..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/installationtechnicaldetails.ini +++ /dev/null @@ -1,46 +0,0 @@ -[batchmodeforconfiguration] -new page = 27 nov 2009 - - -[configuregui] -new page = 21 aug 2008 - - -[index] -new index = 21 aug 2008 - - -[installer] -new page = 21 aug 2008 - - -[natlinkconfigfunctions] -new page = 21 aug 2008 - - -[natlinkmain] -new page = 21 aug 2008 - - -[natlinkmain_vocola_main] -new page = 21 aug 2008 - - -[natlinkstatus] -new page = 21 aug 2008 - - -[natlinkutils] -new page = 21 aug 2008 - - -[nsformat] -name = nsformat - - -[testingnatlink] -name = testingnatlink - - -[workingwithsubversion] -new page = 08 sep 2008 diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/newinstallernatlinkproposed.ini b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/newinstallernatlinkproposed.ini deleted file mode 100644 index 6167fc5..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/newinstallernatlinkproposed.ini +++ /dev/null @@ -1,40 +0,0 @@ -[buginregistrydict] -new page = 23 jan 2008 - - -[configuregui] -new page = 22 jan 2008 - - -[index] -new index = 22 jan 2008 - - -[installer] -new page = 04 feb 2008 - - -[natlinkconfigfunctions] -new page = 23 jan 2008 - - -[natlinkinstallfunctions] -lastmod = 2008-01-22 -new page = 22 jan 2008 - - -[natlinkmain] -new page = 07 feb 2008 - - -[natlinkmain_vocola_main] -new page = 05 feb 2008 -nice name = natlinkmain versus _vocola_main - - -[natlinkstatus] -new page = 22 jan 2008 - - -[natlinkutils] -new page = 07 feb 2008 diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/p_natlinkmain.txt b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/p_natlinkmain.txt deleted file mode 100644 index 83d59f6..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/p_natlinkmain.txt +++ /dev/null @@ -1,89 +0,0 @@ -Changes in natlinkmain.py - -Quite a few changes in this basic file in the course of the years. - --August 2011: function reorderKeys to influence the order of loading the grammars. Needed for some Unimacro grammars. - - Below the details of the changes: - - Global variables (see also link("/features/grammarclasses/natlinkutilsqh/index.html", " natlinkutilsqh module ")) - -:TABLE firstcoldifferent=1, border=1: - -:HEADING colspan=2: Most of them taken from status (natlinkstatus) -:HEADING: variable -:COL: meaning -:ROW:DNSdirectory -:COL:holds the NatSpeak folder -:ROW:DNSversion -:COL:holds the version (5??,6??, 7??, 8, 9) as an integer -:ROW:WindowsVersion -:COL:holds the current windows version -:ROW:DNSmode -:COL:can hold the mode (1 for dictate, 2 for command etc), not used currently -:ROW:language -:COL: the language code of the NatSpeak speech profile (*enx*, *nld* etc) , -:ROW:BaseModel -:COL: the acoustic model of the current user -:ROW:BaseTopic -:COL: the topic of the current user (vocabulary) -:ROW:checkForGrammarChanges -:COL:set initially 0, can be set to one, see below, but not needed -:: - - Some functions of natlinkmain -(collect values of status through natlinkstatus or (in Unimacro) through wrapper functions in natlinkutilsqh.py) - -:TABLE firstcoldifferent=1, border=1: -:HEADING colspan=2: some of the functions are mentioned here, consult the source file also -:HEADING:function -:COL:comment -:ROW:setCheckForGrammarChanges -:COL:Sets the variable checkForGrammarChanges, should be called from the identical function in natlinkutilsqh. This function is used in the grammar *control*, see below, that is in other cases probably not needed. -:ROW:beginCallback -:COL:An optional parameter *checkAll* is added, and also the value of*checkForGrammarChanges*is checked. See below, -Also a special arrangement for _vocola_main has been made. - -:ROW:changeCallbackLoadedModules -:COL:This function ensures an extra *changeCallback* function in each grammar can be called, in order to switch off exclusive modes when the microphone is toggled. Used presently in the Unimacro grammars *oops*, *control* and *repeat*, -:: - - Debug possibilities: - -The following variables at the top of the file can be set to 1, if you want to have more in the back output. Restart natspeak in that case (this is now in the configuration functions) - -:TABLE firstcoldifferent=1, border=1: -:HEADING:Variable -:COL:comment -:ROW:debugLoad -:COL:Print extra information at load time (can be configured in configuration procedure) -:ROW:debugCallback -:COL:Print lots of information at callback time (can be configured in configuration procedure) -:ROW:debugTiming -:COL:Print some information when natpython checks for changed global grammar file (not much used, check if you want) -:: - - The automatic checking for changed grammars - -This feature has been turned off in this version of natlinkmain! Originally Joel Gould designed to system to check for changed grammar files at each speech utterance. This saves a delay of *0.01 to 0.02 seconds* each utterance. - -With this version of natlinkmain, only when the microphone toggles, the complete check is performed. - -BUT the global variable *checkForGrammarChanges* can be set in the natlinkmain.py file. The Unimacro grammar *control* sets this variable as soon as you call *edit grammar grammarname* for some grammarname. So as soon as you call through the Unimacro system that you want to change a grammar file, the automatic checking for grammar files is turned on, through the function *setCheckForGrammarChanges*. - -And... if _vocola_main reports changes of user files at beginCallback also the grammars will be checked once. - -When the natpython macrosystem restarts, most often when restarting NatSpeak, the automatic checking is switched off again. - - Search order of python modules -If the userDirectory of NatLink is set (most often Unimacro is on then), this directory is inserted at the front off *sys.path*. When modules are loaded, this directory goes first. - --The order of the modules can be hardcoded in the function _reorderKeys_. See source code. --The Unimacro grammar "_control" (if present) is loaded last. Because it can then fill the lists with introspection commands in the correct away. --For some special applications in the grammar _lines the _tasks grammar is called, so _task goes first in the loading order (after _vocola_main) - - - Allowed application names -the regular expression for searching application-specific grammars has been generalised. I believe all characters can now appear in the programme name, like *++* (in Notepad++). There is one exception: a leading *_* (underscore) as this is for global grammars. - - Order of loading diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/q_natlinkutils.txt b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/q_natlinkutils.txt deleted file mode 100644 index 320f3e5..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/q_natlinkutils.txt +++ /dev/null @@ -1,144 +0,0 @@ -Changes in natlinkutils.py - - - January, 2014: a change with the python statement *import* - - -The following statement is changed, which can cause problems in NatLink grammar files: - -:CODE: -from natlink import * -:: - -has been changed to: -:CODE: -import natlink -:: - -Therefore variables, functions or exceptions from natlink (the natlink.pyd file) could be (often were) called in a confusing way: - -:CODE: -## previous: -import natlinkutils -# and use functions or exceptions from natlink as -# if they were taken from natlinkutils: - natlinkutils.recognitionMimic(....) - try: - ... - except natlinkutils.BadWindow: - ... -:: - -or even names from natlink could be called unqualified, residing in the global namespace: - -:CODE: -## previous: -from natlinkutils import * - -# and use functions or exceptions from natlink as -# if they were in the global namespace - recognitionMimic(....) - try: - ... - except BadWindow: - ... -:: - - The preferred way to call these names: - -As the use of bold(from ... import *) is now considered bad programming practice, we advise the following way: - -:CODE: -import natlinkutils -import natlink - natlink.recognitionMimic(....) - try: - ... - except natlink.BadWindow: - ... -:: - - Earlier changes: - -Only a few minor changes, as addition to Scott Weinstein's installation are made. - --"moddle" has been changed to "middle" --in the function *activateSet* a *[:]* is added, in order to make copy of the list of activeRules. - -This file should come in the core folder of the NatLink system. - - Change January 2012 (Quintijn) --at callback time now also *self.wordsByRule* is provided. This dictionary is identical to the output of the utility function *convertResults* (in natlinkutils). - - Example (also see unittestNatlink.py, around line 2530): - -Consider the grammar (the list *{furniture}* containing "table" and "chair". - -:CODE: - exported = test [+] {colors}+ ; - = very | small | big; - = {furniture}; -:: - -The recognition *test very big blue chair* will go through the rules: - -:TABLE: -:HEADING:rule -:COL:words -:COL:prevRule -:COL:nextRule -:COL:prevWords -:COL:nextWords -:ROW:run -:COL:[test] -:COL:None -:COL:optional -:COL:[] -:COL:["very", "big"] - -:ROW:optional -:COL:["very", "big"] -:COL:run -:COL:run -:COL:["test"] -:COL:["blue"] - -:ROW:run -:COL:["blue"] -:COL:optional -:COL:extra -:COL:["very", "big"] -:COL:["chair"] - -:ROW:extra -:COL:["chair"] -:COL:run -:COL:None -:COL:["blue"] -:COL:[] -:: - - The additional helper variables are: - -:TABLE: -:HEADING:variable -:COL:contents -:ROW:self.fullResults -:COL:[('test', 'run'), ('very', 'optional'), ('big', 'optional'), ('blue', 'run'), ('chair', 'extra')] -:ROW:self.seqsAndRules -:COL:[(['test'], 'run'), (['very', 'big'], 'optional'), (['blue'], 'run'), (['chair'], 'extra')] -:ROW:self.wordsByRule -:COL:{'optional': ['very', 'big'], 'run': ['test', 'blue'], 'extra': ['chair']} -:: - - Changes March 2010 (Quintijn) --added *deactivateSet()* function in GrammarBase --added *exceptlist* optional variable to *activateAll* method of GrammarBase --added *callRuleResultsFunctions* in resultsCallback, so the calling of -the rule result functions can be overloaded (for DocstringGrammar) --through this function the instance variables _self.prevRule_, _self.prevWords_, _self.nextRule_ and _self.nextWords_ are maintained, to facilitate looking forward and looking back one step in a recognition. --Preventing the detailed gotResults functions to execute: -In a rare case it was needed to prevent the rule functions to execute. This is the case if *self.doOnlyGotResultsObject* is set to 1 or True. Only the gotResultsObject function is called in this case. - - Subclasses -For the more practical subclasses of GrammarBase see the link(/features/grammarclasses/index.html, Grammar classes) section. diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/q_nsformat.txt b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/q_nsformat.txt deleted file mode 100644 index 54d78f7..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/q_nsformat.txt +++ /dev/null @@ -1,74 +0,0 @@ -nsformat - -This module was written by Joel Gould a few years after the initial release of NatLink. It is in the *MacroSystem/Core* directory of NatLink. - -The purpose is to do formatting of the dictated words in a window/control (*VDct*) was replaced by a DictGramBase subclass. By this DictGramBase all dictated words are caught, but not formatted. - -Nsformat can also be used to format words that are called by the *dgndictation* imported rule, also called *_anything* in Vocola. - -In NatSpeak versions up to 10 the word properties of each dictated word were extracted and with these word properties the words were formatted. - -Starting with Dragon 11 the word properties cannot be extracted by NatLink anymore, but a new mechanism of *category* is introduced in dictated words. Like: - -:CODE: -@\at-sign\at_sign -.\period\period -.\period\full stop -.\dot\dot -.\point\point -,\comma\comma -K\letter -L\letter\Lima -a\spelling-letter\A (in spell mode) -l\spelling-letter\Lima (in spell mode) -a\determiner -:: - -With these categories the formatting properties are constructed in the updated version of nsformat (with release 4.0 of NatLink). - - Use - -The essential call to nsformat is: - -:CODE: -import nsformat -(...) - def gotResults_dgndictation(self, words, fullResults): - formattedOutput, outputState = nsformat.formatWords(words, state=-1) # no capping, no spacing -:: - --Note the output is a tuple of length 2, the output text and the output state, the latter can be used in a subsequent call of nsformat. --This example comes (a bit adapted) from the grammar *_brackets.py*, see there for more implementation details. --Do not forget *dgndictation imported;* in your grammar specification. If you use the DocstringGrammar subclass (like *_brackets.py*), you can define *importedrule_dgndictation* instead. - - - - State -The state to start with can be given as *None* (default), as integer or as tuple. - -:TABLE firstcoldifferent=1, border=1: -:HEADING width=20%:state -:COL:comment - -:ROW:None (default) -:COL:no space next, active cap next (like beginning of dictation box) -:ROW:0 -:COL: no properties set, will start with a space and lowercase -:ROW: -1 -:COL:no space, starting with lowercase -:ROW:positive integer -:COL:extract properties according to bit positions -:ROW:tuple of integers -:COL:these are the "extracted properties", examples: -:ROW:(8, 11) -:COL:no space at start, capitalize all words -:ROW:(8, 12) -:COL:no space at start, uppercase all words -:ROW:(13, 14) -:COL:no spacing, all lowercase (eg for dictating email address) - -:: - -See more details in the source file, *nsformat.py*, and in the unittest file *unittestNsformat.py* (in the PyTest directory of NatLink). - - diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/q_testing natlink.txt b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/q_testing natlink.txt deleted file mode 100644 index e7e2a0e..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/q_testing natlink.txt +++ /dev/null @@ -1,20 +0,0 @@ -Testing natlink - -The testing of the proper functioning of NatLink (the basics) is not quite easy. - -The original script was *testnatlink.py*. - -Newer tests are in *unittest* procedures, of which *unittestNatlink.py* is the central one. - --It should operate on a (preferably clean) US User speech profile. --It should be run from a command prompt or in IDLE. - -For *nsformat* there is a new unit test program, which tests different in different versions of Dragon/NatSpeak. - -Presently often the starting and killing of DragonPad windows presents problems. It is tried (new, March 2011) to additional bring the Dragon Bar in focus, relying on the hotkey _{NumKey*}_. - -It is best to restart the computer after doing the tests. - -See the instructions at the top of the python file for more instructions. Also for details of failing tests in different (newer) versions. - -Unimacro has its own link(/grammars/unimacrotest/index.html, tests). \ No newline at end of file diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/a_checkout example.txt b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/a_checkout example.txt deleted file mode 100644 index f7f24b9..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/a_checkout example.txt +++ /dev/null @@ -1,128 +0,0 @@ -Working with subversion (SVN) - - Migration to new repositories - - Summary - -The new repositories for the projects NatLink, Unimacro and Voicecode are: --NatLink: https://svn.code.sf.net/p/natlink/code --Unimacro: https://svn.code.sf.net/p/unimacro/code --Voicecode: https://svn.code.sf.net/p/voicecode/code - -In all three cases you will be prompted for username (sourceforge id) and password. I am not aware of an anonymous login possibility. - -Below, first see more detailed instructions on how to change the repository in case you were already on subversion for (some of these) projects. - -Then there is more explanation for new subversion users. - - Unimacro - -Unimacro has on February 12, 2013 been moved to a new location. See new address above and more details below. For those who were on subversion forUnimacro before can simply do a "relocate": - -image(subversion relocate.png) - -Then enter the new location (please type in, no paste): *https://svn.code.sf.net/p/unimacro/code* - - - NatLink - -NatLink has been moved to a new location (10 March 2013). Subversion update seems to work as normal, but when you commit things you will get the following message (assuming you use TortoiseSVN): - -image(subversion error message natlink.png, title=NatLink subversion error message) - -You can do a simple subversion relocate to: - -image(subversion natlink relocate.png) - -Then enter the new location (please type in, no paste): *https://svn.code.sf.net/p/natlink/code* - - - VoiceCode - -The same for voicecode (10 March 2013). Do a subversion relocate, and choose: - - https://svn.code.sf.net/p/voicecode/code - -When all is succesfull, after having been prompted for your sourceforge password, you will get the following message: - -image(voicecode relocation succesfull.png, title=end of subversion relocate for voicecode repository) - - - Why and how to work with subversion - - -If you want more recent versions of files than the latest release, or if you want to contribute to NatLink, possibly Vocola, or Unimacro, you should get your files from SourceForge with subversion. - --First you need a sourceforge id (USERNAME and password), as far as I know no anonymous checkout is possible. Goto link(http://sourceforge.net/, sourceforge) and click on *join* top right. - --Then get Tortoise SVN from link("http://tortoisesvn.net", "tigris tortoisesvn"). - --Now remove the subdirectories of *Unimacro* and *NatLink* (in case of getting both with SVN) or either one of them. Leaving you in *C:\NatLink*. (Another starting point, like D:\NatLink is also possible and even recommended.) - -These were the preliminaries. Now proceed: - --So now assume the root of NatLink is in *C:\NatLink*. And you have removed one or both subdirectories *NatLink* and *Unimacro*. - NatLink - --For *NatLink*: right click on *C:\NatLink* and choose *SVN checkout*. --Fill in for URL of repository (please type in, no paste): *https://svn.code.sf.net/p/natlink/code* --choose for checkout directory *C:\NatLink\NatLink* --you are probably prompted twice for loging (sourceforge id) and password - -image("checkout NatLink.png",alt="checking out NatLink with SVN (subversion)") - - Unimacro - --For *Unimacro*: also right click on *C:\NatLink* and choose *SVN checkout*: --Fill in as repository (please type in, no paste): *https://svn.code.sf.net/p/unimacro/code*, --choose as checkout directory *C:\NatLink\Unimacro*, --you are probably prompted twice for loging (sourceforge id) and password - -image("checkout Unimacro.png",alt="checking out Unimacro with SVN (subversion)") - - Voicecode - --Similar actions are needed to get Voicecode: right click on *C:\NatLink* and choose *SVN checkout*: --Fill in as repository (please type in, no paste): *https://svn.code.sf.net/p/voicecode/code*, --choose as checkout directory *C:\NatLink\Voicecode*, --you are probably prompted twice for loging (sourceforge id) and password - -image("checkout Voicecode.png",alt="checking out Voicecode with SVN (subversion)") - -Note: checking out Voicecode takes quite some time, you will be seeing the following for some time: - -image("voicecode checkout takes some time.png",alt="checking out Voicecode takes some time") - - - Directory layout - -After checking out NatLink (which includes Vocola), Unimacro and Voicecode (only for voice coders), you will see the following directory layout: - -image("directory layout after subversion checkout.png",alt="directory layout after subversion checkout") - - - Vocola: -Note the Vocola files are in the NatLink repository. - - Update - -For updating you can right click on one of the folders and choose *SVN update*. You should do a separate Update for each of the three folders (if you checked them out). - - Contribute: Commit - -If you want to commit changes (contribute to one of the projects): --You probably are registered at link("http://sourceforge.net/account/registration/", "SourceForge.net") by now, --You need to get permission from one of the repository administrators to do so. Mail to Quintijn, see email link at the bottom of this page. - -If that has been done, you can also commit -changes by right clicking on the correct folder and choose *commit*. Your password for SourceForge will be asked once. - - How to find *configurenatlink.py* or *natlinkconfigfunctions.py* - -In case you checked out things in different folders, or didn't install the .exe installer before you took above steps, you will have to find the configure GUI or the configure command line interface in the Windows explorer. - -Go to *C:\NatLink\NatLink\confignatlinkvocolaunimacro*. - --With the python file *start_configurenatlink.py* you can start the config program, in "elevated" mode. Just run this python file --With the file *start_natlinkconfigfunctions.py* you start the command line interface, also in elevated mode. (See link(/installation/technicaldetails/natlinkconfigfunctions.html, "instructions on natlinkconfigfunctions"). - diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/b_relocate example.txt b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/b_relocate example.txt deleted file mode 100644 index f7f24b9..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/b_relocate example.txt +++ /dev/null @@ -1,128 +0,0 @@ -Working with subversion (SVN) - - Migration to new repositories - - Summary - -The new repositories for the projects NatLink, Unimacro and Voicecode are: --NatLink: https://svn.code.sf.net/p/natlink/code --Unimacro: https://svn.code.sf.net/p/unimacro/code --Voicecode: https://svn.code.sf.net/p/voicecode/code - -In all three cases you will be prompted for username (sourceforge id) and password. I am not aware of an anonymous login possibility. - -Below, first see more detailed instructions on how to change the repository in case you were already on subversion for (some of these) projects. - -Then there is more explanation for new subversion users. - - Unimacro - -Unimacro has on February 12, 2013 been moved to a new location. See new address above and more details below. For those who were on subversion forUnimacro before can simply do a "relocate": - -image(subversion relocate.png) - -Then enter the new location (please type in, no paste): *https://svn.code.sf.net/p/unimacro/code* - - - NatLink - -NatLink has been moved to a new location (10 March 2013). Subversion update seems to work as normal, but when you commit things you will get the following message (assuming you use TortoiseSVN): - -image(subversion error message natlink.png, title=NatLink subversion error message) - -You can do a simple subversion relocate to: - -image(subversion natlink relocate.png) - -Then enter the new location (please type in, no paste): *https://svn.code.sf.net/p/natlink/code* - - - VoiceCode - -The same for voicecode (10 March 2013). Do a subversion relocate, and choose: - - https://svn.code.sf.net/p/voicecode/code - -When all is succesfull, after having been prompted for your sourceforge password, you will get the following message: - -image(voicecode relocation succesfull.png, title=end of subversion relocate for voicecode repository) - - - Why and how to work with subversion - - -If you want more recent versions of files than the latest release, or if you want to contribute to NatLink, possibly Vocola, or Unimacro, you should get your files from SourceForge with subversion. - --First you need a sourceforge id (USERNAME and password), as far as I know no anonymous checkout is possible. Goto link(http://sourceforge.net/, sourceforge) and click on *join* top right. - --Then get Tortoise SVN from link("http://tortoisesvn.net", "tigris tortoisesvn"). - --Now remove the subdirectories of *Unimacro* and *NatLink* (in case of getting both with SVN) or either one of them. Leaving you in *C:\NatLink*. (Another starting point, like D:\NatLink is also possible and even recommended.) - -These were the preliminaries. Now proceed: - --So now assume the root of NatLink is in *C:\NatLink*. And you have removed one or both subdirectories *NatLink* and *Unimacro*. - NatLink - --For *NatLink*: right click on *C:\NatLink* and choose *SVN checkout*. --Fill in for URL of repository (please type in, no paste): *https://svn.code.sf.net/p/natlink/code* --choose for checkout directory *C:\NatLink\NatLink* --you are probably prompted twice for loging (sourceforge id) and password - -image("checkout NatLink.png",alt="checking out NatLink with SVN (subversion)") - - Unimacro - --For *Unimacro*: also right click on *C:\NatLink* and choose *SVN checkout*: --Fill in as repository (please type in, no paste): *https://svn.code.sf.net/p/unimacro/code*, --choose as checkout directory *C:\NatLink\Unimacro*, --you are probably prompted twice for loging (sourceforge id) and password - -image("checkout Unimacro.png",alt="checking out Unimacro with SVN (subversion)") - - Voicecode - --Similar actions are needed to get Voicecode: right click on *C:\NatLink* and choose *SVN checkout*: --Fill in as repository (please type in, no paste): *https://svn.code.sf.net/p/voicecode/code*, --choose as checkout directory *C:\NatLink\Voicecode*, --you are probably prompted twice for loging (sourceforge id) and password - -image("checkout Voicecode.png",alt="checking out Voicecode with SVN (subversion)") - -Note: checking out Voicecode takes quite some time, you will be seeing the following for some time: - -image("voicecode checkout takes some time.png",alt="checking out Voicecode takes some time") - - - Directory layout - -After checking out NatLink (which includes Vocola), Unimacro and Voicecode (only for voice coders), you will see the following directory layout: - -image("directory layout after subversion checkout.png",alt="directory layout after subversion checkout") - - - Vocola: -Note the Vocola files are in the NatLink repository. - - Update - -For updating you can right click on one of the folders and choose *SVN update*. You should do a separate Update for each of the three folders (if you checked them out). - - Contribute: Commit - -If you want to commit changes (contribute to one of the projects): --You probably are registered at link("http://sourceforge.net/account/registration/", "SourceForge.net") by now, --You need to get permission from one of the repository administrators to do so. Mail to Quintijn, see email link at the bottom of this page. - -If that has been done, you can also commit -changes by right clicking on the correct folder and choose *commit*. Your password for SourceForge will be asked once. - - How to find *configurenatlink.py* or *natlinkconfigfunctions.py* - -In case you checked out things in different folders, or didn't install the .exe installer before you took above steps, you will have to find the configure GUI or the configure command line interface in the Windows explorer. - -Go to *C:\NatLink\NatLink\confignatlinkvocolaunimacro*. - --With the python file *start_configurenatlink.py* you can start the config program, in "elevated" mode. Just run this python file --With the file *start_natlinkconfigfunctions.py* you start the command line interface, also in elevated mode. (See link(/installation/technicaldetails/natlinkconfigfunctions.html, "instructions on natlinkconfigfunctions"). - diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/checkout Voicecode.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/checkout Voicecode.png deleted file mode 100644 index aab34fa..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/checkout Voicecode.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/checkout natlink.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/checkout natlink.png deleted file mode 100644 index e2074b8..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/checkout natlink.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/checkout unimacro.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/checkout unimacro.png deleted file mode 100644 index d220bbd..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/checkout unimacro.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/crash with new compile with zipped python25 files.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/crash with new compile with zipped python25 files.png deleted file mode 100644 index 00fbf72..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/crash with new compile with zipped python25 files.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/directory layout after subversion checkout.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/directory layout after subversion checkout.png deleted file mode 100644 index d728294..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/directory layout after subversion checkout.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/index.txt b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/index.txt deleted file mode 100644 index 2dc54f3..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/index.txt +++ /dev/null @@ -1,123 +0,0 @@ -Working with subversion (SVN) - - Migration to new repositories - - Summary - -The new repositories for the projects NatLink, Unimacro and Voicecode are: --NatLink: https://svn.code.sf.net/p/natlink/code --Unimacro: https://svn.code.sf.net/p/unimacro/code --Voicecode: https://svn.code.sf.net/p/voicecode/code - -and in all three repositories the *trunk* is used. - -In all three cases you will be prompted for username (sourceforge id) and password. I am not aware of an anonymous login possibility. - - - Unimacro - -Unimacro has on February 12, 2013 been moved to a new location. See new address above and more details below. For those who were on subversion for Unimacro before can do a "relocate" to *https://svn.code.sf.net/p/unimacro/code* and then click on the three dots and choose *trunk*. See link(relocateexample.html, example). - - NatLink - -NatLink has been moved to a new location (10 March 2013). Subversion update seems to work as normal, but when you commit things you will get the following message (assuming you use TortoiseSVN): - -image(subversion error message natlink.png, title=NatLink subversion error message) - -You can do a subversion relocate to: - -image(subversion natlink relocate.png) - -Then enter the new location (please type in, no paste): *https://svn.code.sf.net/p/natlink/code* and then click on the three dots and choose *trunk*. See link(relocateexample.html, example). - - - VoiceCode - -The same for voicecode (10 March 2013). Do a subversion relocate, and choose: *https://svn.code.sf.net/p/voicecode/code* and then click on the three dots and choose *trunk*. See link(relocateexample.html, example). - -When all is succesfull, after having been prompted for your sourceforge password, you will get the following message: - -image(voicecode relocation succesfull.png, title=end of subversion relocate for voicecode repository) - - - Why and how to work with subversion - - -If you want more recent versions of files than the latest release, or if you want to contribute to NatLink, possibly Vocola, or Unimacro, you should get your files from SourceForge with subversion. - --First you need a sourceforge id (USERNAME and password), as far as I know no anonymous checkout is possible. Goto link(http://sourceforge.net/, sourceforge) and click on *join* top right. - --Then get Tortoise SVN from link("http://tortoisesvn.net", "tigris tortoisesvn"). - --Now remove the subdirectories of *Unimacro* and *NatLink* (in case of getting both with SVN) or either one of them. Leaving you in *C:\NatLink*. (Another starting point, like D:\NatLink is also possible and even recommended.) - -These were the preliminaries. Now proceed (and study the link(checkoutexample.html, example)): - --So now assume the root of NatLink is in *C:\NatLink*. And you have removed one or both subdirectories *NatLink* and *Unimacro*. - -NatLink - --For *NatLink*: right click on *C:\NatLink* and choose *SVN checkout*. --Fill in for URL of repository (please type in, no paste): *https://svn.code.sf.net/p/natlink/code* --click on the three dots and choose *trunk*-choose for checkout directory *C:\NatLink\NatLink* --you are probably prompted twice for loging (sourceforge id) and password - -image("checkout NatLink.png",alt="checking out NatLink with SVN (subversion)") - - Unimacro - --For *Unimacro*: also right click on *C:\NatLink* and choose *SVN checkout*: --Fill in as repository (please type in, no paste): *https://svn.code.sf.net/p/unimacro/code*, --click on the three dots and choose *trunk*-choose for checkout directory *C:\NatLink\NatLink* --choose as checkout directory *C:\NatLink\Unimacro*, --you are probably prompted twice for loging (sourceforge id) and password - -image("checkout Unimacro.png",alt="checking out Unimacro with SVN (subversion)") - - Voicecode - --Similar actions are needed to get Voicecode: right click on *C:\NatLink* and choose *SVN checkout*: --Fill in as repository (please type in, no paste): *https://svn.code.sf.net/p/voicecode/code*, --click on the three dots and choose *trunk*-choose for checkout directory *C:\NatLink\NatLink* --choose as checkout directory *C:\NatLink\Voicecode*, --you are probably prompted twice for loging (sourceforge id) and password - -image("checkout Voicecode.png",alt="checking out Voicecode with SVN (subversion)") - -Note: checking out Voicecode takes quite some time, you will be seeing the following for some time: - -image("voicecode checkout takes some time.png",alt="checking out Voicecode takes some time") - - - Directory layout - -After checking out NatLink (which includes Vocola), Unimacro and Voicecode (only for voice coders), you will see the following directory layout: - -image("directory layout after subversion checkout.png",alt="directory layout after subversion checkout") - - - Vocola: -Note the Vocola files are in the NatLink repository. - - Update - -For updating you can right click on one of the folders and choose *SVN update*. You should do a separate Update for each of the three folders (if you checked them out). - - Contribute: Commit - -If you want to commit changes (contribute to one of the projects): --You probably are by now registered at link("http://sourceforge.net/account/registration/", "SourceForge.net") by now, --You need to get permission from one of the repository administrators to do so. Mail to Quintijn, see email link at the bottom of this page. - -If that has been done, you can also commit -changes by right clicking on the correct folder and choose *commit*. Your password for SourceForge will be asked once. - - How to find *configurenatlink.py* or *natlinkconfigfunctions.py* - -In case you checked out things in different folders, or didn't install the .exe installer before you took above steps, you will have to find the configure GUI or the configure command line interface in the Windows explorer. - -Go to *C:\NatLink\NatLink\confignatlinkvocolaunimacro*. - --With the python file *start_configurenatlink.py* you can start the config program, in "elevated" mode. Just run this python file by double clicking on it in an explorer window. --With the file *start_natlinkconfigfunctions.py* you start the command line interface, also in elevated mode. (See link(/installation/technicaldetails/natlinkconfigfunctions.html, "instructions on natlinkconfigfunctions"). - diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/natlink relocate choose trunk.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/natlink relocate choose trunk.png deleted file mode 100644 index 62359ef..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/natlink relocate choose trunk.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/relocate natlink succesful.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/relocate natlink succesful.png deleted file mode 100644 index 1f398f8..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/relocate natlink succesful.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/relocate natlink.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/relocate natlink.png deleted file mode 100644 index b76e3c5..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/relocate natlink.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/subversion error message natlink.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/subversion error message natlink.png deleted file mode 100644 index 72f165a..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/subversion error message natlink.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/subversion natlink relocate.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/subversion natlink relocate.png deleted file mode 100644 index 07bb2a9..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/subversion natlink relocate.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/subversion relocate.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/subversion relocate.png deleted file mode 100644 index 993e8b8..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/subversion relocate.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/voicecode checkout takes some time.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/voicecode checkout takes some time.png deleted file mode 100644 index 0e3eb05..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/voicecode checkout takes some time.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/voicecode relocate choose trunk.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/voicecode relocate choose trunk.png deleted file mode 100644 index 570e828..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/voicecode relocate choose trunk.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/voicecode relocate three dots.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/voicecode relocate three dots.png deleted file mode 100644 index 7596540..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/voicecode relocate three dots.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/voicecode relocation succesfull.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/voicecode relocation succesfull.png deleted file mode 100644 index 66d54d9..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/voicecode relocation succesfull.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/workingwithsubversion.ini b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/workingwithsubversion.ini deleted file mode 100644 index 6d67c5f..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/s_Working with subversion/workingwithsubversion.ini +++ /dev/null @@ -1,6 +0,0 @@ -[checkoutexample] -name = checkoutexample - - -[relocateexample] -name = relocateexample diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/subversion error message natlink.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/subversion error message natlink.png deleted file mode 100644 index 72f165a..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/subversion error message natlink.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/subversion natlink relocate.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/subversion natlink relocate.png deleted file mode 100644 index 07bb2a9..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/subversion natlink relocate.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/subversion relocate.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/subversion relocate.png deleted file mode 100644 index 993e8b8..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/subversion relocate.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/technicaldetails.ini b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/technicaldetails.ini deleted file mode 100644 index 0d95d75..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/technicaldetails.ini +++ /dev/null @@ -1,51 +0,0 @@ -[batchmodeforconfiguration] -name = batchmodeforconfiguration - - -[configuregui] -name = configuregui - - -[installer] -name = installer - - -[natlinkconfigfunctions] -name = natlinkconfigfunctions - - -[natlinkcorefunctions] -name = natlinkcorefunctions - - -[natlinkmain] -name = natlinkmain - - -[natlinkmain_vocola_main] -name = natlinkmain_vocola_main -obsolete = 03 mrt 2021 - - -[natlinkmainvocolamain] -name = natlinkmainvocolamain - - -[natlinkstatus] -name = natlinkstatus - - -[natlinkutils] -name = natlinkutils - - -[nsformat] -name = nsformat - - -[testingnatlink] -name = testingnatlink - - -[workingwithsubversion] -name = workingwithsubversion diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/uitleg natlinkconfigfunctions.txt b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/uitleg natlinkconfigfunctions.txt deleted file mode 100644 index 2107666..0000000 --- a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/uitleg natlinkconfigfunctions.txt +++ /dev/null @@ -1,64 +0,0 @@ -baseFolder from argv: C:\NatLink\NatLink\confignatlinkvocolaunimacro -checking PythonPathAndRegistry -Type 'u' for a usage message - -NatLink/Vocola/Unimacro config> u ------------------------------------------------------------- -Use either from the command line like 'natlinkconfigfunctions.py -i' -or in an interactive session using the CLI (command line interface). - -[Status] - -i - info, print information about the NatLink status -I - settings, print information about the natlinkstatus.ini settings -j - print PythonPath variable - -[NatLink] - -e/E - enable/disable NatLink - -y/Y - enable/disable debug callback output of natlinkmain -x/X - enable/disable debug load output of natlinkmain - -d/D - set/clear DNSInstallDir, the directory where NatSpeak/Dragon is installed -c/C - set/clear DNSINIDir, where NatSpeak/Dragon INI files are located - -[Vocola] - -v/V - enable/disable Vocola by setting/clearing VocolaUserDir, the user - directory for Vocola user files (~ or %HOME% allowed). - -b/B - enable/disable distinction between languages for Vocola user files -a/A - enable/disable the possibility to use Unimacro actions in Vocola - -[Unimacro] - -o/O - enable/disable Unimacro, by setting/clearing the UnimacroUserDirectory, where - the Unimacro user INI files are located, and several other directories (~ or %HOME% allowed) -p/P - set/clear path for program that opens Unimacro INI files. -l - copy header file Unimacro.vch into Vocola User Directory -m/M - insert/remove an include line for Unimacro.vch in all Vocola - command files - -[UserDirectory] -n/N - enable/disable UserDirectory, the directory where - User NatLink grammar files are located (e.g., ...\My Documents\NatLink) - -[Repair] -r/R - register/unregister NatLink, the natlink.pyd (natlink.pyd) file - (should not be needed) -z/Z - silently enables NatLink and registers natlink.pyd / disables NatLink - and unregisters natlink.pyd. -[AutoHotkey] -h/H - set/clear the AutoHotkey exe directory. -k/K - set/clear the User Directory for AutoHotkey scripts. -[Other] - -u/usage - give this list -q - quit - -help : give more explanation on - -============================================================ - -NatLink/Vocola/Unimacro config> \ No newline at end of file diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/voicecode checkout takes some time.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/voicecode checkout takes some time.png deleted file mode 100644 index 0e3eb05..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/voicecode checkout takes some time.png and /dev/null differ diff --git a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/voicecode relocation succesfull.png b/website unimacro/source/1_installation/a_Install for python 27/z_technical details/voicecode relocation succesfull.png deleted file mode 100644 index 291dd68..0000000 Binary files a/website unimacro/source/1_installation/a_Install for python 27/z_technical details/voicecode relocation succesfull.png and /dev/null differ diff --git a/website unimacro/source/1_installation/b_installation experimental version python3.txt b/website unimacro/source/1_installation/b_installation experimental version python3.txt deleted file mode 100644 index e156caa..0000000 --- a/website unimacro/source/1_installation/b_installation experimental version python3.txt +++ /dev/null @@ -1,61 +0,0 @@ -Installation of Natlink/Vocola 2/Unimacro Experimental Release with Python 3 -Vocola and Unimacro work well on the development branch but you are may come across the odd bug. - -(-Download and install the latest 3.8 32-bit Python from link(https://www.python.org/downloads/windows/299, "Python 3.8 latest version"): Note there is now a Python 3.9 version, but please stick to 3.8. - -(Select "Add to path" install option, and "Install FOR ALL USERS". Save -yourself some grief and install it at the root of your c: drive, like *c:\python38-32*). If you already have a python 3.7 32 bit installation you can use that. -(At this time, do not create a link(https://docs.python.org/3/tutorial/venv.html) Virtual Environment. They do not work with Natlink.) - - --Packages are now all in the dictation-toolbox in github. For packages that are not packaged for a pip install, -we recommend cloning the wanted repositories in one base directory, for example *C:\DT* -Instructions below install the source from GIT. Select a folder to host your natlink, unimacro, dragonfly, etc. Below the example is *C:\DT* but it can be anything. - --Exit dragon - -- Download the source from GIT - ---bold(git clone git@github.com:dictation-toolbox/natlink.git) (In your preferred directory eg *C:\DT\Natlink*. We will assume C:\DT in the instructions below. ) ---If you want Unimacro: git clone git@github.com:dictation-toolbox/unimacro.git (into *C:\DT\Unimacro*) ---If you want Vocola: git clone git@github.com:dictation-toolbox/vocola2.git (into *C:\DT\Vocola*) (Vocola2 being the Vocola version for Dragon/Natlink) ---If you want the development branch of Dragonfly and Caster, clone from their git repositories. Otherwise install them using pip (see below). - --Install the python package prequisistes: ---Start menu -> cmd (Command prompt) and *Run as administrator*). Powershell also will work. ---Change directory to *C:\DT\Natlink\ConfigureNatlink* ---This will install the python prerequisites for natlink, vocola, and unimacro: *pip install -r requirements.txt* - ---This will instal the prerequisites for caster and dragonfly. You can skip this when you install those with pip: -*pip install -r caster_requirements.txt* - - - Main install instructions, targeted to Caster (as given by LexiconCode): - --When you have no Command prompt yet: Start menu -> cmd (Command prompt) -> *Run as Administrator* - - --Probably you can now go to: *cd C:\DT\Natlink\ConfigureNatlink* and run start_configurenatlink.py, by typing *python start_configurenatlink.py*. --In the config GUI: ---Click enable Natlink ---Click enable UserDirectory ---Choose Caster directory as user directory ---Quit the GUI - --When the wxpython GUI window doesn't want to start: run the script natlinkconfigfunctions.py by typing *python natlinkconfigfunctions.py* (when you are already in elevated mode) or *python start_natlinkconfigfunctions.py* (elevation is asked for). --In the natlinkconfigfunctions: ---press *e* (enable Natlink) ---sometimes you need *r* (reregister Natlink) ---press *n caster_directory* for enabling the UserDirectory and setting it to the Caster directory ---press *q* to quit - --Then restart dragon --- In some rare cases a reboot is required. - - - - Vocola and Unimacro: - --In the config GUI or natlinkconfigfunctions.py (CLI) enable these packages. (With the CLI, type *u* for Usage). - - diff --git a/website unimacro/source/1_installation/c_log of changes Python 3.txt b/website unimacro/source/1_installation/c_log of changes Python 3.txt deleted file mode 100644 index 5dd60f5..0000000 --- a/website unimacro/source/1_installation/c_log of changes Python 3.txt +++ /dev/null @@ -1,23 +0,0 @@ -Changes with new Python 3 release of Natlink - --Registry setting, in the Python area of registry, pointing to the path where natlinkmain.py is found, is no longer needed. It will be removed at first run of the config program. --Directory layout of the Natlink Core directory has been changed: most things now reside in the *natlinkcore* directory, which is directly in the site-packages after pip install. ---The ConfigureNatlink directory is a subdirectory of *natlinkcore*. ---The configure scripts are in the Python Scripts directory, and these scripts can be started from the Windows Start Menu. ---Schematic directory layout: -:CODE: -(python)\Lib\site-packages\natlinkcore - - natlinkmain.py - - natlinkstatus.py - - ... - - natlink.pyd (after the config program did run) - - PYD: subdirectory where the different natlink....pyd files are kept. - For Python38-32 and Dragon 15, natlink_3.8_Ver15.pyd is taken - (copied to natlinkcore/natlink.pyd and registered as dll/pyd) - - ConfigureNatlink: the scripts that configure natlink, with GUI or with and CLI (Command Line Interface) -:: - -- When importing natlink in a grammar file, use *from natlinkcore import natlink* (instead of import natlink) - - - diff --git a/website unimacro/source/1_installation/index.txt b/website unimacro/source/1_installation/index.txt deleted file mode 100644 index dbed2cd..0000000 --- a/website unimacro/source/1_installation/index.txt +++ /dev/null @@ -1,17 +0,0 @@ -Installing and Configuring Natlink, including Unimacro and Vocola - -Please read the pages in this section of the website and follow the install and configure instructions. - -You have two choices: - --The link(/installation/installationstableversionpython2.html, stable release with python2.7) - --The link(/installation/installationexperimentalversionpython3.html, experimental release with python 3.7 or 3.8) - - And then: - -After you installed the version you want, proceed with the link(Configuration). - -If problems arise, please read through the other pages in the left menu. - -If problems persist, ask mailto(q.hoogenboom@antenna.nl, Quintijn Hoogenboom). \ No newline at end of file diff --git a/website unimacro/source/1_installation/installation.ini b/website unimacro/source/1_installation/installation.ini deleted file mode 100644 index ba4756e..0000000 --- a/website unimacro/source/1_installation/installation.ini +++ /dev/null @@ -1,85 +0,0 @@ -[administratorrights] -name = administratorrights -obsolete = 03 mrt 2021 - - -[changelog] -name = changelog -obsolete = 03 mrt 2021 - - -[changes] -lastmod = 2006-12-12 -obsolete = 03 mrt 2021 - - -[configureadministratorrights] -name = configureadministratorrights -obsolete = 03 mrt 2021 - - -[configureadministratorrights-kopie] -name = configureadministratorrights-kopie -obsolete = 03 mrt 2021 - - -[index] -obsolete = 15 nov 2018 - - -[installationexperimentalversionpython3] -name = installationexperimentalversionpython3 - - -[installationstableversionpython2] -name = installationstableversionpython2 -obsolete = 03 mrt 2021 - - -[installingonvista] -nice name = Installing on Vista or Windows 7 -obsolete = 03 mrt 2021 - - -[knownproblems] -lastmod = 2008-02-07 -obsolete = 03 mrt 2021 - - -[logofchangespython3] -name = logofchangespython3 - - -[natlinkmain] -lastmod = 2008-02-07 -obsolete = 03 mrt 2021 - - -[natlinkutils] -lastmod = 2008-02-07 -obsolete = 03 mrt 2021 - - -[oldinstallationprocedure] -lastmod = 2006-12-12 -obsolete = 03 mrt 2021 - - -[problemswithinstallation] -nice name = Problems with installation? -obsolete = 03 mrt 2021 - - -[problemswithnatlink] -nice name = Problems with NatLink? -obsolete = 03 mrt 2021 - - -[questionsfortesters] -name = questionsfortesters -obsolete = 03 mrt 2021 - - -[speechmodel] -name = speechmodel -obsolete = 03 mrt 2021 diff --git a/website unimacro/source/2_features/b_Numbers/a_other spokenform sections.txt b/website unimacro/source/2_features/b_Numbers/a_other spokenform sections.txt deleted file mode 100644 index 2013e48..0000000 --- a/website unimacro/source/2_features/b_Numbers/a_other spokenform sections.txt +++ /dev/null @@ -1,28 +0,0 @@ -Order spokenforms Sections - -For characters, abbreviations, file name extenstions and punctuation there are also provisions in the spokenforms module. They are stored in the next set of instance variables. - -:CODE: - char2spoken = {} # characters of radio alphabet possibly extended, got from [alphabet] section - spoken2char = {} - abbrev2spoken = {} # lists of spoken forms, got from [abbrevs] sections - spoken2abbrev = {} - ext2spoken = {} # file extensions (without the dot) (got from [extensions] section) - spoken2ext = {} - punct2spoken = {} # punctuation, from section [punctuationreverse] (other way round!) - spoken2punct = {} -:: - - Characters -As can be seen in the grammar _keystrokes, the radio alphabet is used via the [alphabet] section of the xxx_spokenforms.ini file. - -The grammar list {character} is filled with a call to the function *self.setCharactersList('character')*. - -At recognition time, the value (character) is retrieved with the function *self.getCharacterFromSpoken()*. See _keystrokes.py. - - Punctuation -Also in the grammar _keystrokes the punctuation is used. The functions are *self.setPunctuationList('punctuation')* -and *self.getPunctuationFromSpoken()*. - -These four functions are defined in the IniGrammar class in natlinkutilsbj.py. - diff --git a/website unimacro/source/2_features/b_Numbers/index.txt b/website unimacro/source/2_features/b_Numbers/index.txt deleted file mode 100644 index b950021..0000000 --- a/website unimacro/source/2_features/b_Numbers/index.txt +++ /dev/null @@ -1,174 +0,0 @@ -Numbers and spoken forms - -With the module *spokenforms.py* grammar lists of numbers can be converted to a list of spoken forms. These lists are used in the grammars. The configuring of the spoken forms lists is done with link(/features/inifiles.html, *ini files*), see this page for a description of the most important sections. - -The central class in this module is the class *SpokenForms*, which is instantiated automatically in all IniGrammar and DocstringGrammar grammars. The instance variable is then *self.spokenforms*. - - Definition time - -When a grammar is initialized, lists of numbers, see below, are automatically converted into spoken forms. - -This is done either --automatically, functionality in *natlinkutilsbj.py*, see function *fillGrammarLists* or --in the *initialize* function of the grammar class. Call like: - -:CODE: - self.taskCounts = range(1, self.maxTaskNumber+1) - self.setNumbersList('taskcount', self.taskCounts) -:: - -where 'taskcount' is the name of the list in the grammar definition, and self.taskCounts the list of numbers that should be recognized. --note: in this second case you need to define lists that are not caught automatically in the automatic procedure, like: -:CODE: - iniIgnoreGrammarLists = ['windowcount', 'iconcount', 'taskcount'] -:: - - Recognition time - -At recognition time the spoken forms can be converted back into numbers. - -:CODE: - countBack = self.getNumberFromSpoken(countOrApp, self.taskCounts) # returns a string or None -:: --Here countOrApp is the word that was recognized, for example '3'. --The second parameter is optional. If you leave it away, among all known spoken forms will be searched. - - - Function and Class of the module spokenforms.py - - Class --SpokenForms. As pointed out above this class is automatically called in all *IniGrammar* and *DocstringGrammar* grammars. - - Functions - - function getNumberList(specification) - -If the specification meets one of the global variables in the spokenforms module this list is returned, currently this is only: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:variable -:COL:contents: -:ROW:number1to99stripped -:COL:[1, 2, ..., 19 , 20, 30, 40, ..., 90] -:: - -*Other specifications* must start with *n* or *number* and separate two numbers by a *-* or by *to*. - -Lists with larger values return only multiples of 10. Do not go beyond *100* with this trick (yet) - -Examples: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:specification -:COL:returns: -:ROW:n1-9 -:COL:[1, 2, 3, ..., 9] -:ROW:number1-99 -:COL:[1, 2, 3, ..., 99] -:ROW:number10to90 -:COL:[10, 20, 30, ..., 90] -:ROW:n0to90 -:COL:[0, 1, 2, 3, ..., 90] - -:: - - class SpokenForms: - -This class is tested as good as possible in *unimacro_test/unittestSpokenForms.py*. See there also for examples. - -Each instances takes a language as variable, like *enx* for English and *nld* for Dutch, called *xxx* below. - -A .ini file called *xxx_spokenforms.ini* is expected (if not present, taken from one of the possible sample directory's). - - -Internally at first call (first instance) the dictionary's *n2s* and *s2n* are filled. Hopefully all instances have the same language, otherwise the system goes dada. - - getMixedList(List) - -Input is a list of numbers (also strings representing number may be given) -Output is a list of the spoken forms. If the spoken form is not found in n2s (from numbers.ini) the string representation of the number is taken (also the case when an empty numbers.ini file is used). - - getNumberFromSpoken(word, originalList=None, asStr=None) -In a recognition the words of the recognition can be converted back into the origating number ('two' into 2). - -When you pass the *originalList*, the result is checked with this list as well. Not needed in most cases. - -When you pass *asStr=1*, a string ('2') is returned, otherwise a int (like 2) is returned. - - getNumbersFromSpoken(words, originalList=None, asStr=None) - -If the *words* is a list, a list of number recognitions is returned. -Example: input is the recognition ['example', 'one', 'and', 'thirteen'], then this function will return [1, 13] - - Use in a grammar nearly automatic (example IniGrammar grammar): -(See also grammars _tasks.py, _lines.py) - - Definition -Define the number lists as {n1-20} etc., example: - -:CODE: - = word | {n2-20} words; -:: - - At recognition time -In the callback function retrieve the number (or numbers) with above functions, which however can be called through wrappers in the IniGrammar class: - -:CODE: - def gotResults_wordspec(self,words,fullResults): - print "wordspec, got: ", words - countList = self.getNumbersFromSpoken(words) - if countList: - count = countList[0] - else: - count = 1 # no count words found in recognition - print 'count: %s'% count -:: - -alternatively you can code: - -:CODE: - def gotResults_wordspec(self,words,fullResults): - print "wordspec, got: ", words - count = self.getNumberFromSpoken(words[0]) or 1 - print 'count: %s'% count -:: - - - Use in a grammar, more specific : -(See also grammars _tasks.py, this example is coded as a DocstringGrammar rule) - -:CODE: - def rule_taskswitch(self, words): - """#commands for switching tasks: - (task)({taskcount}|{application}|Back) - """ - #switch to a task by number, application or Back - count = words[1] - countBack = self.getNumberFromSpoken(count, self.taskCounts) # returns a string or None - - if countBack: - pass # a number is found - else: - pass # proceed with count, which can be one of the applications defined else or "Back" -:: - -At the top of the grammar the following line is inserted, which means the definition and activation of the mentioned lists is done in the grammar module itself: -:CODE: - iniIgnoreGrammarLists = ['windowcount', 'iconcount', 'taskcount'] -:: - -In the initialize function you define the lists yourself (in the function setNumbersList the connection with the numbers module is established) - -:CODE: - def initialize(self): - self.load(self.gramSpec) - self.switchOnOrOff() - self.maxTaskNumber = 20 - self.taskCounts = range(1, self.maxTaskNumber+1) - self.setNumbersList('taskcount', self.taskCounts) -:: - - - Large numbers -These are handled in special grammar rules, see link(/grammars/globalgrammars/number/index.html, _number.py) - \ No newline at end of file diff --git a/website unimacro/source/2_features/b_Numbers/numbers.ini b/website unimacro/source/2_features/b_Numbers/numbers.ini deleted file mode 100644 index f324ffc..0000000 --- a/website unimacro/source/2_features/b_Numbers/numbers.ini +++ /dev/null @@ -1,10 +0,0 @@ -[index] -new index = 08 nov 2010 - - -[menu] -nice name = Numbers and Spoken Forms - - -[otherspokenformsections] -name = otherspokenformsections diff --git a/website unimacro/source/2_features/b_Unimacro and Vocola/a_elevator view.txt b/website unimacro/source/2_features/b_Unimacro and Vocola/a_elevator view.txt deleted file mode 100644 index de1810a..0000000 --- a/website unimacro/source/2_features/b_Unimacro and Vocola/a_elevator view.txt +++ /dev/null @@ -1,65 +0,0 @@ -Elevator view of Vocola 2 and Unimacro - -In order to position these two "packages" inside the NatLink package, "elevator views" are presented here, as proposed by Mark Lillibridge. - - -:TABLE firstcoldifferent=0: -:HEADING:Unimacro -:COL:Vocola 2 - -:ROW width=50%: -Some important voice macros (e.g., switching between tasks(windows) by number or name, typing multiple keystrokes at once) and acting based on which windows appear during a macro require sophisticated and lengthy programming and/or grammars. Currently, power users reinvent the wheel or don't get around to developing all of the useful macros of this kind, and nonpower users go without. Even when power users make available powerful macros, they're often incompatible with each other or insufficiently customizable by nonprogrammers. - -Unimacro is dedicated to changing this. Unimacro is an attempt to bring together many power users to build a set of reusable power macros that can also be customised by nonprogrammers using configuration files. Unimacro is thus about software reuse of power macros. - -The unit of modularity in Unimacro is the grammar, which specifies a grammar for a mini voice language and the meanings of each of the commands, which may involve more complicate implementations. Making these sort of mini languages, most of them being global (valid in each application), also encourages defining consistent and easy to remember sets of commands. Functions doing more complicated things can be reused in grammar files and often in user-defined commands. - -Grammars are already available for: --typing multiple keystrokes --selecting/copying/moving by line numbers --switching between tasks --continuously repeating an action until stopped --switching to files/folders/websites --correcting commands - -The basic Unimacro infrastructure supports customizing the words used by grammars via configuration files, allowing nonpower users to translate grammars to different languages. As soon as a translation is written it can be incorporated in the next release so other non-English users can profit. - -In keeping its emphasis on code reuse, Unimacro also emphasizes creating *meta-actions* like <<savefile>> that produce the same effect in different applications even though different keystrokes are required; this allows writing a macro only once that can work across different applications. Also different Windows (language) versions can be adapted to more quickly. - - - -:COL width=50%: -Vocola 2 is a system like NatLink and DNS's advanced scripting language that allows you to create voice commands; unlike those systems, it emphasizes ease of learning and ease of use rather than the ability to create complicated and powerful commands. It does this primarily through introducing a simple new macro writing language optimized for doing the most common macro tasks in a concise manner. Compare the oneliner: - - as (thumbnails=h | tiles=s | icons=n | list=l | details=d) = {alt+v} $1; - - -Vs. the DNS version (the three pieces below are entered and kept separately): - - as - - - Sub Main - SendDragonKeys "{alt+v}" + Left$(ListVar1, InStr(ListVar1+"\","\")-1) - End Main - - - : - h\thumbnails - s\tiles - n\icons - l\list - d\details - - -Note the lack of boilerplate and "black magic" in the Vocola 2 version. - -Vocola 2 also makes it easier to organize, browse, and edit commands. -Unlike DNS which insists on alphabetizing your commands and only lets you see the definition of one command at a time, Vocola 2 lets you arrange commands (including their definitions) anyway you want using your favorite text editor. For example, you can group all your Emacs buffer change commands together. You can use this to factor out the common comments/code using user-defined functions, something which is hard to do in DNS. I find myself writing many more macros with Vocola 2 than DNS because the process is so much faster and easier. - -Although Vocola 2 is substantially less powerful than the other systems -- for example, it's only control structure is to repeat a series of actions an integer number of times -- it suffices for 95% of the macros you want to write. You need to write the remaining macros in one of the other systems, all of which Vocola 2 happily coexists with. In practice, the nonpower user is unable to do this and either does without or uses code they don't understand provided by someone else. - - - - -:: diff --git a/website unimacro/source/2_features/b_Unimacro and Vocola/b_Unimacro Shorthand Commands.txt b/website unimacro/source/2_features/b_Unimacro and Vocola/b_Unimacro Shorthand Commands.txt deleted file mode 100644 index 58e9dde..0000000 --- a/website unimacro/source/2_features/b_Unimacro and Vocola/b_Unimacro Shorthand Commands.txt +++ /dev/null @@ -1,72 +0,0 @@ -Unimacro Shorthand Commands - -All sophisticated link(/features/actions/shorthandcommands.html, bold(Unimacro shorthand commands)) can be called from Vocola 2, like - --*Unimacro("WINKEY e")* for starting the explorer --*Unimacro("U Delta")* for printing the Greek DELTA on your screen --*Unimacro(KW)* for killing a window (skipping the yes/no question) --*Unimacro(MDOWN)* for pressing the mouse button and --*Unimacro(ENDMOUSE)* for releasing the mouse button - -For most of these commands a helper function is included in the Vocola include file *Unimacro.vch*. This file should be copied into the Vocola Commands File Directory. Your Vocola User Files then need an include line. These functions are performed by the NatLink configure program (GUI or CLI). (Button *Vocola compatibility* of CLI functions *l* and *m*.) - -The result is that above functions can be called directly, like Vocola 2 functions: --*WINKEY(e)* --*U(Delta)* --*KW()* --*MDOWN()* --*ENDMOUSE()* - -You can browse through all the possibilities in the include file *Unimacro.vch*. Also consult: -link(/features/actions/shorthandcommands.html, *the page on this site*) - -Note the function calls that go through Vocola 2 expect a fixed number of parameters. For example the *WINKEY* function expects one parameter, a letter (*e*) or a keystroke (*{f1}*). If you just want to call the Windows key, you can use either *Unimacro(WINKEY)* or (in this example) WINKEY0(). The latter being defined in the include file *Unimacro.vch*. - - - Example relative mouse positions - -Next example lets the mouse visit the corners of the screen, active window or the client area of the active window. It remembers the previous mouse position and returns there after the excursion. (Instead of *0* as fourth parameter in the *RMP* function also *noclick* can be given.) - -:CODE: -include "Unimacro.vch"; - - := (world = 0 | window = 1 | client area = 5 ); - -travel around the = -RM() - RMP($1, 0, 0, 0) VW() - RMP($1, -0.01, 0, 0) VW() - RMP($1, -0.01, -0.01, 0) VW() - RMP($1, 0, -0.01, 0) VW() - RMP($1, 0, 0, 0) VW() -CANCELMOUSE(); -:: - - Example moving the mouse around - -Next example lets the mouse move in *pixels*, *steps* or *jumps*, relative to the current position. These commands only work on the primary screen only (in case you work with mulptiple screens). - -:CODE: -include "Unimacro.vch"; - - := (pixels=1 | steps=10 | jumps=50); - -mouse left 1..20 = MP(2, Eval(-$1*$2), 0, 0); -mouse right 1..20 = MP(2, Eval($1*$2), 0, 0); -mouse up 1..20 = MP(2, 0, Eval(-$1*$2), 0); -mouse down 1..20 = MP(2, 0, Eval($1*$2), 0); -:: - -A different approach is to make one range, which increases the "gaps", in order to remain maintainable by NatSpeak: - -:CODE: - := (1|2|3|4|5|6|7|8|9|10| - 11|12|13|14|15|16|17|18|19|20| - 25|30|35|40|45|50|60|70|80|90|100| - 125|150|175|200| - 250|300|350|400|450|500); -mouse left = MP(2, Eval(-$1), 0, 0); -mouse right = MP(2, $1, 0, 0); -mouse up = MP(2, 0, Eval(-$1), 0); -mouse down = MP(2, 0, $1, 0); -:: diff --git a/website unimacro/source/2_features/b_Unimacro and Vocola/d_Meta actions.txt b/website unimacro/source/2_features/b_Unimacro and Vocola/d_Meta actions.txt deleted file mode 100644 index 00be35e..0000000 --- a/website unimacro/source/2_features/b_Unimacro and Vocola/d_Meta actions.txt +++ /dev/null @@ -1,121 +0,0 @@ -Unimacro meta actions - -These *meta actions* are most useful in global command files. A meta action like *<<filesaveas>>* can be defined in one (global) command. The action can differ for different programs/Windows. These are resolved at runtime, when a command has been recognised. Configuration of these meta actions are done in a user configurable ini file: *actions.ini*. - -Note this file is in the Unimacro release. Please consult the link(/installation/inifilestrategy.html, page on inifile strategy) if you make changes to the file *actions.ini*. - - Calling meta actions in Vocola User Files: -The meta actions should be called like *Unimacro(<<filesaveas>>)*. As they have no spaces inside, quoting is not needed. - - Defining/changing the meta actions - -You can use meta actions that are already there, but you can also invent your own. Just open the file *actions.ini* ( by calling the Unimacro command -*Edit actions*. - -Type in the *[default]* section the *wantedname = default action*. - -For specific applications that behave different, you can specify in the section of that application again *wantedname* = *specifiec action*. - -For more information see link(/features/actions/metaactions.html, page on meta actions in Unimacro). - - Which application? - -You can get the name of the foreground program with the command *give window info* of the grammar link(/grammars/globalgrammars/general/index.html, _general). - -:xx: - Example highlight text - -A local Vocola command could be, for some application: -:CODE: -highlight <_anything> = {ctrl+f} $1 {enter}; -:: - -The keystrokes to start the search and to finish the search can be different in different applications. When you make a global Vocola command: - -:CODE: -highlight <_anything> = Unimacro(<>) $1 Unimacro(<>); -:: - -You can then rely on default actions for *startsearch* and *searchgo*, or overrule them in *actions.ini*: - - -:CODE: -[default] -startsearch = {ctrl+f} -searchgo = {enter} - -[emacs] -startsearch = {ctrl+s} - -[excel] -searchgo = {enter}{esc} - -[notepad] -searchgo = {enter}; {esc} - -[winword] -searchgo = {enter}{esc} - - -[wordpad] -searchgo = {enter}{esc} - -[outlook] -startsearch = {f4} -searchgo = {enter}{esc} -:: - -:en: - - Example filesaveas (in the file actions.ini): - -:CODE: -[default] -filesaveas = {f12} - -[emacs] -filesaveas = {ctrl+x}{ctrl+w} - -[pythonwin] -filesaveas = {alt+f}a -:: - - Example save close (window|document): - -It is possible to use Vocola variables inside a Unimacro meta action. Defined are the meta actions <filesave>, <documentclose> and <windowclose>. A combined command for *save close document* and *save close window* is now: - -:CODE: -save close (document | window) = Unimacro(<>) W() Unimacro(<<$1close>>); -:: - -or ( making use of a complete Unimacro actions string): - -:CODE: -save close (document | window) = Unimacro("<>; W; <<$1close>>"); -:: - -The file *actions.ini* Contains the following lines: - -(for most applications the keys to send for these meta actions are *default*, but there are some exceptions. In this case for *emacs*, *psp* (PaintShopPro) and *cmd* (the DOS command window). - -:CODE: -[default] -documentclose = {ctrl+f4} -filesave = {ctrl+s} -windowclose = {alt+f4} - - -[emacs] -documentclose = {ctrl+x}k; {enter} -filesave = {ctrl+x}{ctrl+s} -windowclose = {ctrl+x}{ctrl+c} - -[psp] -filesave = SSK {ctrl+s} - -[cmd] -windowclose = {alt+space}c - -:: - - diff --git a/website unimacro/source/2_features/b_Unimacro and Vocola/e_include file Unimacro_vch.txt b/website unimacro/source/2_features/b_Unimacro and Vocola/e_include file Unimacro_vch.txt deleted file mode 100644 index 9777215..0000000 --- a/website unimacro/source/2_features/b_Unimacro and Vocola/e_include file Unimacro_vch.txt +++ /dev/null @@ -1,34 +0,0 @@ -Unimacro.vch - -This include file must be in the Vocola User Directory, in order to facilitate the use of many Unimacro Shorthand Commands in Vocola. Also consult this file for working examples, together with link(/features/unimacroandvocola/unimacroshorthandcommands.html, explanation of use of Unimacro Shorthand Commands in Vocola) and -link(/features/actions/shorthandcommands.html, A listing of the Unimacro Shorthand Commands) - - -Starting with Release 4.0 the include file *Unimacro.vch* is copied into the Vocola UserDirectory automatically from the sample in the Unimacro\vocola_compatibility directory. This is also happens whenever the sample file is changed (for example in a new release of NatLink/Vocola/Unimacro), so do not edit the include file for normal use. - -If things do not work as expected, see the following instructions: - - Include line in the command files -Moreover in each Vocola file there should be a line: - -:CODE: -include Unimacro.vch; -:: - -or, for language versions *other than English* and with the option *Vocola takes multi languages* switched on: - -:CODE: -include ..\Unimacro.vch; -:: - - Refreshing the include file - -In most cases: --updates of the include file *Unimacro.vch* are copied into your Vocola UserDirectory when the sample file is changed (so newer). --the correct *include* line is put in your Vocola Command Files automatically. - -If not, you can try the dialog which appears after you click on *Vocola compatibility* in the *Configure GUI Program*: - -image(reload unimacro.vch.png, alt=illustration reload unimacro.vch) - - diff --git a/website unimacro/source/2_features/b_Unimacro and Vocola/index.txt b/website unimacro/source/2_features/b_Unimacro and Vocola/index.txt deleted file mode 100644 index d7e3368..0000000 --- a/website unimacro/source/2_features/b_Unimacro and Vocola/index.txt +++ /dev/null @@ -1,50 +0,0 @@ -Vocola 2 and Unimacro - -The position of these two "packages" inside NatLink may be confusing in the beginning. Please first read about the -link(elevator view.html, *Elevator view*) in order to understand more about these two. - -Next, it is good to distinguish between *Global grammars* and *Local grammars*. - - -:TABLE firstcoldifferent=0: -:HEADING:Unimacro -:COL:Vocola 2 - -:ROW width=50%: -Unimacro focuses on global grammars, commands being on all the time or most of the time. -Through the link(metaactions.html, *<<meta-actions>> mechanism*) the actions that commands have to perform can be made specific for different Windows/applications. - -:COL: -Vocola 2 focuses on local command files, commands being specific for some application. With the command *Edit commands* you can view/edit these local commands. - -:ROW: -There are exceptions of course. The grammar _Firefox browsing_ for example is application-specific, but part of Unimacro. - -:COL: -But it is also possible to have global commands in Vocola 2: you view/edit them by the command *Edit global commands*. -:ROW: -Unimacro has quite a few specific functions (link(Unimacro shorthand commands.html, *Unimacro Shorthand Commands*)), which can now also be used in Vocola User Files. - -:COL: -Vocola 2 has the possibility to define functions in its Vocola User Files, for more specific functionality. These functions cannot be used in Unimacro grammars. - -:ROW: -The link(metaactions.html, *<<meta-actions>> mechanism*) can be used in Vocola User Files. - - -:COL: -This can be most useful in Vocola 2 global commands! -:: - - - Unimacro -So Unimacro can be used for a lot of *Global command grammars*, like -link(/grammars/globalgrammars/keystrokes/index.html,doing continuous keystrokes), -link(/grammars/globalgrammars/tasks/index.html,switching to tasks), -link(/grammars/globalgrammars/folders/index.html, switching to folders, open files and websites), -link(/grammars/globalgrammars/repeat/index.html,repeating previous utterances (continuously)). The grammars are ready for use, and can be configured through ini files (configuration files) in any normal text editor. Some grammars need maintenance though. This is an open source project... - - Vocola 2 - -Vocola 2 can be used for all application-specific (local) commands that you find convenient to define. Moreover you can also define global commands that you didn't find (or didn't want to find) in one of the Unimacro grammars. - diff --git a/website unimacro/source/2_features/b_Unimacro and Vocola/reload unimacro.vch.png b/website unimacro/source/2_features/b_Unimacro and Vocola/reload unimacro.vch.png deleted file mode 100644 index 5e98530..0000000 Binary files a/website unimacro/source/2_features/b_Unimacro and Vocola/reload unimacro.vch.png and /dev/null differ diff --git a/website unimacro/source/2_features/b_Unimacro and Vocola/unimacroandvocola.ini b/website unimacro/source/2_features/b_Unimacro and Vocola/unimacroandvocola.ini deleted file mode 100644 index 325965c..0000000 --- a/website unimacro/source/2_features/b_Unimacro and Vocola/unimacroandvocola.ini +++ /dev/null @@ -1,23 +0,0 @@ -[elevatorview] -new page = 20 apr 2009 - - -[includefileunimacro_vch] -nice name = Include file Unimacro.vch -obsolete = 03 mrt 2021 - - -[includefileunimacrovch] -name = includefileunimacrovch - - -[index] -new index = 20 apr 2009 - - -[metaactions] -new page = 20 apr 2009 - - -[unimacroshorthandcommands] -new page = 20 apr 2009 diff --git a/website unimacro/source/2_features/b_actions/a_shorthand commands.txt b/website unimacro/source/2_features/b_actions/a_shorthand commands.txt deleted file mode 100644 index 3952632..0000000 --- a/website unimacro/source/2_features/b_actions/a_shorthand commands.txt +++ /dev/null @@ -1,526 +0,0 @@ -Unimacro Shorthand Commands - -All these commands are in capitals, and they can perform ordinary things, which can be done in advanced script commands of NaturallySpeaking as well, but also more specialised things. - -See link(/features/unimacroandvocola/unimacroshorthandcommands.html, "section on Vocola and Unimacro) when you want to use Unimacro Shorthand Commands in Vocola. - -Read the notes on link(/features/unimacroandvocola/index.html, Vocola and Unimacro) if you want to use these functions in a Vocola User File. - -Note: Also consult the file *Unimacro.vch*. This file contains more detailed information about quite a few of the functions below. - - AutoHotkey support: - -When you have installed link(/features/autohotkey/index.html, AutoHotkey), you can call ahk scripts with this Unimacro Shorthand Command. - -:TABLE firstcoldifferent=1, border=1: -:HEADING:Unimacro -:COL:Vocola -:COL:result - -:ROW:AHK script -:COL:AHK(script) -:COL:Do a autohotkey script file (name.ahk) or script text (just the text of the script) -:: - - Bringup: - -See also link("/grammars/globalgrammars/tasks/index.html", "tasks grammar") - -Many applications are handled nicely with the *AppBringUp* command of NaturallySpeaking. - -But in some cases extra work or tuning has to be done. - -Previous BringUps are remembered, so repeated bringups can be handled more quickly. - -Configuration through the file *actions.ini* (called by *edit actions*). - -:TABLE firstcoldifferent=1, border=1: -:HEADING:Unimacro -:COL:Vocola -:COL:result - -:ROW:BRINGUP app -:COL:BRINGUP(app) -:COL:Brings app in front (see also *tasks grammar*) - -:ROW:BRINGUP idle -:COL:BRINGUP(idle) -:COL: The IDE idle from Python -:ROW:BRINGUP voicecoder -:COL:BRINGUP(voicecoder) -:COL:starts command prompt, mediator, emacs and voicecode. Switches to the correct user if needed. - -When called repeatedly only the necessary actions are done. -:: - - - - - - Pressing the Windows modifier key. - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command/examples -:COL:Vocola -:COL:result - -:ROW:WINKEY e -:COL:WINKEY(e) -:COL:Opens an Explorer window -:ROW:WINKEY b -:COL:WINKEY(b) -:COL:Moves focus to the icon tray -:ROW:WINKEY -:COL:WINKEY0() -:COL:Opens the Windows start menu -:: - - - - Entering (really pasting) Unicode characters into your screen: - -First puts the given character on the clipboard and then tries to -paste it into the current application via {ctrl+v}. Attempts to -not disturb the clipboard by saving it beforehand and restoring it -afterwards. - -(see link("unicodecharacters.html","list of known unicode characters")) - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:result - -:ROW:U Delta -:COL:U(Delta) -:COL:paste a Greek letter Delta (Δ) - -:ROW:U 916 -:COL:U(916) -:COL:same (decimal 916 is the Unicode number for the above letter) - -:ROW:U 040A -:COL:U(040A) -:COL:same, but specified in hexadecimal (0x040a == 916) -:: - - Typing ASCII characters by their decimal character number: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:result -B -:ROW:A 66 -:COL:A(66) -:COL:types "B" - -:ROW:A 10 -:COL:A(10) -:COL:types a newline character ({ctrl+j}) - -:: - - - Here is the list of the simple things: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:Vocola -:COL:explanation - -:ROW:HW -:COL:HW() -:COL:HeardWord or RecognitionMimic - -:ROW:SSK -:COL:SSK() -:COL:Shortcut name for SendSystemKeys - -:ROW:S -:COL:S() -:COL:Shortcut name for SendKeys. - -Do this with a *{shift}* in front, in order to try workaround a bug in Dragon (idea from Frank Olaf Sem-Jacobsen) - - -:ROW:W -:COL:W () -:COL:Wait some time (default 0.1 seconds) - -:ROW:W time -:COL:W1( time ) -:COL:Wait some specified time (in seconds) - -:ROW:SW -:COL:SW() -:COL:Wait a shorter time - -:ROW:LW -:COL:LW() -:COL:Wait a longer time - -:ROW:VW -:COL:VW() -:COL:Does a visible wait, so the user can see things happening -:: - - - But also: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:Vocola -:COL:explanation - -:ROW:KW -:COL:KW() -:COL:kill window: answers 'no' to the question if a document must be saved -:ROW:KW {ctrl+f4} -:COL:KW1({ctrl+f4}) -:COL:kill window with other key, for example killing a document window inside Excel (close document command) - -:ROW:RW -:COL:RW() -:COL:remember window, can be used afterwards by - -:ROW:WTC -:COL:WTC() -:COL:wait for title change (in this way you do not have to specify the waiting time - -:ROW:WWT window title -:COL:WWT("window title") -:COL:wait for window title (with a title specified) (note the quotes for Vocola!) - -:ROW:RTW -:COL:RTW() -:COL:return to window (which was remembered by RW) - -:ROW:SEARCH -:COL:not applicable -:COL:start search for a text, which parameters direction and optional search text, also -see link("/grammars/globalgrammars/repeat/searching.html", "the commands that use this search command") -:: - -(Note: for *KW* see also specification of link(/features/actions/actionsconfigurationfile.html, *top behaves like child*) - - Some actions for a mouse: (a bit more documentation and below) - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:Vocola -:COL:explanation - -:ROW:MP ... -:COL:MP(...) -:COL: go to an absolute mouse position and click (parameters: --screenorwindow(0,1,2,3,4,5, see below) (3 and 4 added, November 2017) --x --y --clicking (see below) -:ROW:RMP ... -:COL:RMP(...) -:COL:relative mouse position, values x and y between -1 and 1. -(parameters: --screenorwindow(0,1,3,4,5), see below) (3 and 4 added, November 2017) --x --y --clicking (see below) - -:ROW:PRMP -:COL:PRMP() -:COL:print relative mouse positions (see below) - -:ROW:PMP -:COL:PMP() -:COL:print absolute mouse positions' (see below) - -:ROW:PRMP 1 or PMP 1 -:COL:PALLMP() -:COL:print all relative and absolut mouse positions (see below) - -:ROW:RM -:COL:RM() -:COL:remember mouse, for cancelling mouse actions - -:ROW:MDOWN -:COL:MDOWN() -:COL:push down the mouse, after that you can freely drag by hand without pushing the button -:ROW:CANCELMOUSE -:COL:CANCELMOUSE() -:COL:cancel a mouse down button and return to remembered mouse position (with RM) -:ROW:ENDMOUSE -:COL:ENDMOUSE() -:COL:release the mouse button if it was pressed down before (by a MDOWN for example) - - - Screenorwindow values of the *MP* and *RMP* commands (first parameter in the call) - -:TABLE firstcoldifferent=1, border=1: - -:HEADING:screenorwindow -:COL:explanation - -:ROW:0 -:COL:complete screen -:ROW:1 -:COL:active window -:ROW:2 -:COL:relative to the current position (only for *MP*) -:ROW:3 -:COL:relative to the current monitor (added November 2017) -:ROW:4 -:COL:relative to the current monitor work area (excluding eg windows task bar of Dragon bar (added November 2017) -:ROW:5 -:COL:relative to the client area of or window (eg the body of an e-mail) -:: - - To click or not to click: - -By default after a mouse command a single click is performed, but Vocola ALWAYS expects 4 parameters. The fourth parameter (*clicking*) can be: - -:TABLE firstcoldifferent=1, border=1: - -:HEADING:clicking -:COL:comment -:ROW:noclick -:COL:only move to a position, keep the mouse pressed if it was before -:ROW:[{left|right|middle}][{click|double|down|up|release}] -:COL:do with one of the buttons one of the actions -:ROW:left -:COL:the default clicking for "left" is "leftclick" -:ROW:double -:COL:the default button for a click action is "left", so "leftdouble" in this example -:ROW:down or leftdown -:COL:push left button down -:ROW:release or up -:COL:after a push down, release the button (see also *MDOWN()* and *ENDMOUSE()* and *CANCELMOUSE()*) -:: - - Examples without clicking: - - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:Vocola -:COL:comment - -:ROW:MP 1, 10, 10, 0 -:COL:MP(1, 10, 10, noclick) -:COL:positions the mouse near the top left corner of the active window (Note: *0* or *noclick* is equivalent) - -:ROW:RMP 5, 0.5, 0.5, 0 -:COL:RMP(5, 0.5, 0.5, noclick) - -:COL:positions the mouse in the centre of the "client area" -:: - - - Examples with clicking: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:Vocola -:COL:comment -:ROW:MP 2, 0, 0, left -:COL:MP(2, 0, 0, click) -:COL:no move, only a click (left and click are equivalent) - -:ROW:MP 0,10, 10, right -:COL:MP(0,10, 10, right) -:COL:right clicking in top left corner - -:ROW:RMP 0, 0.01, -0.01, left, 2 -:COL:RMP(0, 0.01, -0.01, double) -:COL:bottom left corner, double click (Note: *leftdouble* is also correct) -:: - -The commands *MP* and *RMP* are *wrappers* around the function *doMouse* in natlinkutilsqh. - - Tasks and Icons - -(See link("/grammars/globalgrammars/tasks/index.html", "grammar tasks") for use of these and install instructions) - -:TABLE firstcoldifferent=1, border=1: -:HEADER:command -:COL:Vocola -:COL:action/explanation - -:ROW:TASK n -:COL:not applicable -:COL:Go to the specified task on the taskbar (see grammar tasks) - -(n is the task number) -:ROW:TASKOD -:COL:TASKOD() -:COL:Send the task to the other display (monitor) (applicable when you have 2 monitors) - -Leaves task in maximized or restored state. The restore position is calculated in proportion with the monitor dimensions. -:ROW:TASKMAX -:COL:TASKMAX() -:COL:Maximize the task -:ROW:TASKMIN -:COL:TASKMIN() -:COL:Minimize the task -:ROW:TASKRESTORE -:COL:TASKRESTORE() -:COL:Put task in Restore position. If restore area falls outside the current monitor, it is brought inside the monitor area. - -:ROW:TOCLOCK n -:COL:not applicable -:COL:Goes to the taskbar clock position --n = 0 or not given: no click --n = left: left click (or not given) --n = right: right click --by left clicking (TOCLOCK left) you get focus on the system tray. --by right clicking on the clock in the system tray you get the taskbar menu (TOCLOCK right) --TOCLOCK (without parameters) just positions the mouse above the clock in the system tray -:: - - - Getting a mouse position - -A list of the different MP and RMP actions for an actual mouse - position can be obtained by the following global commands (from the *commands* grammar in an English speech profile provided you didn't change the commands). The list is printed in the python messages window. - -:TABLE firstcoldifferent=1, border=1: -:HEADING:Voice command -:COL:Shorthand command -:COL:in Vocola - -:ROW:print absolute mouse position -:COL:PMP -:COL:PMP() - -:ROW:print relative mouse position -:COL:PRMP -:COL:PRMP() - -:ROW:print all mouse positions -:COL:PMP 1 -:COL:PALLMP() - -:: - - Clipboard - -:TABLE firstcoldifferent=1, border=1: -:HEADER:command -:COL:Vocola -:COL:action/explanation - -:ROW:CLIPSAVE -:COL:CLIPSAVE() -:COL: save the clipboard for later restore - -:ROW:CLIPRESTORE -:COL:CLIPRESTORE() -:COL: restores the previous saved clipboard - -:ROW:CLIPISNOTEMPTY -:COL:see below -:COL: this command returns true if the clipboard is not empty, so the actions can continue. - -If the clipboard IS empty *False* is returned and the command will break off. As a side effect *CLIPRESTORE* is called. - -:ROW:SCLIP text -:COL:SCLIP(text) -:COL: sends the text by putting it on the clipboard and then press *ctrl+v*. This can possibly circumvent problems with different language keyboards, like the German keyboard layout. - -The previous content of the clipboard is saved before this action and restored after. - -:ROW colspan=3: - -so these commands should go together: - -*CLIPSAVE; do something; optional CLIPISNOTEMPTY; continue if clip is not empty; CLIPRESTORE* - -in Vocola: -Unimacro("CLIPSAVE; do something; optional CLIPISNOTEMPTY; continue if clip is not empty; CLIPRESTORE"); - - -In each case the saved clipboard is restored. -:: - - Date and Time -:TABLE firstcoldifferent=1, border=1: -:HEADER:command -:COL:Vocola -:COL:action/explanation - -:ROW:DATE -:COL:DATE() -:COL: Type (print) or Read (see parameter *what*) the current date - -Default format is the *%m%d*, and by this default extra zeroes are stripped (eg *01/07* becomes *1/7* (being January 7) -:ROW:DATE format -:COL:DATE1(format) -:COL: Specify the format of your date eg -- *%m/%d* (default for print, but leaves zero's (like *01/07*) -- *%B %d* (long month day) (*default for speak* see below, eg *January 7*) -- *%m-%d-%Y* (month-day-long year eg (01-22-2010) -- you can specify *0* for default, also for the next case - -:ROW:DATE format, what -:COL:DATE2(format, what) - -:COL: By setting *what* to *speak*, the date is spoken on your speakers/headset. -- You can take the default format by entering *0* -- You can optionally specify *what* as *print* or as *0*, taking the default (*print*) -- See the file *Unimacro.vch* for Vocola examples, see SPEAK below for speaking other text. - -:ROW:TIME -:COL:TIME() -:COL: Type or Read (see parameter *what*) the current time - -:ROW:TIME format -:COL:TIME1(format) -:COL: specify the format of your time eg -- *%H:%M* meaning "hour:minute" (default) -- you can specify *0* for default, also for the next case -:ROW:TIME format, what -:COL:TIME2(format, what) - -:COL: By setting *what* to *speak*, the time is spoken on your speakers/headset. -- You can leave the format to *0*, taking the default format -- You can opionally specify *what* as *print* or as *0* -- See the file *Unimacro.vch* for Vocola examples -:: - - - Miscellaneous commands - - :TABLE firstcoldifferent=1, border=1: -:HEADER:command -:COL:Vocola -:COL:action/explanation - -:ROW:SPEAK text -:COL:SPEAK(text) -:COL:the computer speaks *text* (with TTSPlayString) on your speaker or headset - -:ROW:PRINT text -:COL:PRINT(text) -:COL:print text to the Messages of Python Macros windowyour speaker or headset - -:ROW:MSG text -:COL:MSG(text) -:COL rowspan=2: gives a message on the screen, with *OK* to answer. - - - -:ROW:MESSAGE text -:COL:MESSAGE(text) - - -:ROW:YESNO text -:COL:Unimacro("YESNO do you want to proceed; actions only if yes was answered"); -:COL:Asks a question. If *No* is answered it will return false and the rest of the actions will not be executed. - -Note: The microphone is switched ON if it was "off" or "sleeping". It should NOT be switched off while answering (either with the mouse or by voice). Otherwise a *UserWarning* exception is raised and the performing macro is stopped. - -:ROW:T and F -:COL:T () and F () -:COL:return True and False respectively, for testing mainly - - - -Note: All these shorthand commands can be used inside a grammar and (see the examples and *Unimacro.vch*) in Vocola commands. diff --git a/website unimacro/source/2_features/b_actions/actions.ini b/website unimacro/source/2_features/b_actions/actions.ini deleted file mode 100644 index 1df0151..0000000 --- a/website unimacro/source/2_features/b_actions/actions.ini +++ /dev/null @@ -1,26 +0,0 @@ -[actionclassesforapplications] -name = actionclassesforapplications - - -[actionsconfigurationfile] -new page = 23 nov 2010 - - -[bringupdetails] -new page = 25 May 2007 - - -[index] -new index = 14 Feb 2006 - - -[metaactions] -new page = 21 apr 2009 - - -[shorthandcommands] -new page = 14 Feb 2006 - - -[unicodecharacters] -new page = 30 Jul 2006 diff --git a/website unimacro/source/2_features/b_actions/b_meta actions.txt b/website unimacro/source/2_features/b_actions/b_meta actions.txt deleted file mode 100644 index 2ffc135..0000000 --- a/website unimacro/source/2_features/b_actions/b_meta actions.txt +++ /dev/null @@ -1,74 +0,0 @@ - Meta actions -(Parts of) actions in can be defined as *meta action*. The actions module recognises such a string, and tries to resolve the meta action through the specifications in the *ini file actions.ini* (see below). Meta actions can be nested. As soon as actions are different across different programs/Windows, a meta action is appropriate: commands can be kept global, the actions can be different for different applications. - -Most meta actions are now written without spacing, so -*<<filesaveas>>* instead of -<<file save as>>. - -This mechanism is made because several commands (like *"file save as"*) can have different keystrokes (or other actions) in different windows. -It can be defined as a global command, either Unimacro or as Vocola command. The default action will do for most applications, and some applications require different actions, for example another keystroke sequence. - - - Actions with a count -Some actions, *exclusively called from grammars*, can have a optional count. If the last letter of the meta action is "n", - - - ini files -The meta action mechanism is controlled by the user by the file *actions.ini*, and can be called with commands *show actions* and *edit actions* (commands from the grammar *_control*. - -"Show actions" gives information about the window from which it was called, which ini files sections are active, and which actions are taken from which section. - -"Edit actions" gives you the complete ini file. On the left side of the _*=*_ is the meta action, on the right side the actual action to be performed. See below for program and window specific actions. - -Edit your own actions in the [default] section or in the appropriate section of your program. If you want to add a new action for a program that is not in the file yet, make a new section. If you do not know the name of the program, look at the top of the text that is shown with the command *show actions*, or give the command *give window info* (from the grammar *_general*). - - program and window specific meta actions - -Specific actions can even be defined for specific window titles inside the program, for example in [outlook html] (if your window title contains "html"). If your window title does not contain "html" only the section [outlook] is taken. - - - Examples - -In the description the use of link(/features/unimacroandvocola/metaactions.html, meta actions in Vocola), you'll find examples of *file save as* and of *save|close window|document*. - -A short example goes about highlighting (searching) for dictated text. It is in the grammar link(/grammars/globalgrammars/general/index.html, *_general*). - -The keystrokes to start the search and to finish the search can be different in different applications. They are controlled by the *meta actions* *<<startsearch>>* and *<<searchgo>>*. - -Often you can then rely on default actions for *startsearch* and *searchgo*, which are (probably, check your own *actions.ini* file): - - -:CODE: -[default] -startsearch = {ctrl+f} -searchgo = {enter} -:: - -For several applications you have to change one or both of these meta actions in order to get things work: - -:CODE: -[emacs] -startsearch = {ctrl+s} - -[excel] -searchgo = {enter}{esc} - -[notepad] -searchgo = {enter}; {esc} - -[winword] -searchgo = {enter}{esc} - -[wordpad] -searchgo = {enter}{esc} - -[outlook] -startsearch = {f4} -searchgo = {enter}{esc} -:: - - Section == application name - -One detail: how do you know which application you are working in, the application name must be filled in between the []. Well, the command *give window info* (a command of the grammar *_general* again), gives you the required information. - -A few examples are given in the link(/features/unimacroandvocola/metaactions.html, Unimacro and Vocola section). \ No newline at end of file diff --git a/website unimacro/source/2_features/b_actions/c_BRINGUP details.txt b/website unimacro/source/2_features/b_actions/c_BRINGUP details.txt deleted file mode 100644 index 90a027a..0000000 --- a/website unimacro/source/2_features/b_actions/c_BRINGUP details.txt +++ /dev/null @@ -1,103 +0,0 @@ -The BRINGUP Unimacro shorthand command - -Many BringUp's this way simply go through the *AppBringUp* execScript command of NaturallySpeaking. -So bringing up a new task like *calc* works this way. - -BUT there is more: brought up tasks are remembered, so repeated switching just brings the previous task in focus. - -For some applications that were started without the BRINGUP Unimacro shorthand command a new instance will be started. This new instance will subsequently be switched to repeatedly when called. - - Tasks grammar -The BRINGUP Unimacro shorthand command is extensively used in the link("/grammars/globalgrammars/tasks\index.html", "*tasks grammar*"). Tasks you want to be able to call should be defined in the *task.ini* configuration file (opened by calling *edit tasks*). A sample: - -:CODE: -[application] -pythonwin = pythonwin -idle = idle -calc = calc -calculator = calc -command = cmd -edit = edit -emacs = emacs -email = outlook -excel = excel -firefox = firefox -internet = iexplore -voice code = voicecode -voice coder = voicecode -word = winword -messages = messages -dragonpad = dragonpad - -:: - -On the left-hand side are the spoken forms, sometimes for better recognizability. --Note on this level also *edit = uedit32* could be defined, but this tuning can also be done as described below. When doing it this way, the *BRINGUP edit* action can also be called from other places. --Note also the windows explorer is not called here, because bringing up folders can better be done with the grammar *folders*. - - More tuning -Some of the applications (on the right hand side) need more tuning. This can be done in 2 levels: - --through the link(/features/actions/actionsconfigurationfile.html, *actions.ini* configuration file); --through special coding in python: *actions.py*. - - 1. Configuring through actions.ini - -By calling *edit actions* you open this configuration file. A sample: - -:CODE: -[bringup emacs] -path = D:/emacs-21.3/bin/runemacs.exe - -[bringup edit] -name = uedit32 - -[bringup dragonpad] -name = natspeak - -[bringup email] -name = outlook - -[bringup internet] -name = iexplore - -[bringup idle] -path = C:\Python23\pythonw.exe -args = C:\Python23\Lib\idlelib\idle.pyw - -[bringup ibmrad] -name = javaw -title = Java - Rational -args = -product com.ibm.rational.rad.product.v75.ide -path = C:\Program Files\IBM\SDP\eclipse.exe - -:: - --The last example added by Jerome for Eclipse (apparently "Java" environment). The title does not act (yet). Should be worked at. - --Some programs (email, internet) can be configured by giving it the proper executable *name* (outlook, iexplore). - --Also for *edit* some suitable text editor can be defined (eg *name = uedit32*). - --Emacs needs the complete *path*, as it is not installed in one of the windows standard folders. - --The python IDE *idle* is a subprogram of *pythonw* (requiring the complete path here), having the argument in the variable *args*. - - 2. Configure in python: actions.py: - -This is done presently for voicecode and for messages. - - voicecode - -A variable *voicecodeApp = 'emacs'* is defined, and a special function *def voicecodeBringUp()*. - -These two ensure first emacs is brought up and after that the VoiceCode things are started (mediator, voicecode-mode), and the VoiceCode user is switched to. - - messages - -This one has a special function *def messageBringUp()*, which brings the *Messages from NatLink* window to the front. - - - - - \ No newline at end of file diff --git a/website unimacro/source/2_features/b_actions/f_unicode characters.txt b/website unimacro/source/2_features/b_actions/f_unicode characters.txt deleted file mode 100644 index 4cc5617..0000000 --- a/website unimacro/source/2_features/b_actions/f_unicode characters.txt +++ /dev/null @@ -1,106 +0,0 @@ -Unicode characters - -With the Unimacro shorthand command *U* you can paste most *unicode characters* to your screen, like *Alpha*, *eacute* etc. In this way with Dragon NaturallySpeaking Unicode characters can be printed in virtually any program. - -In Vocola you can choose between quotes (*"U delta"*) or parenthesis: *U(delta)*. - - See link(/features/unimacroandvocola/unimacroshorthandcommands.html, "section on Vocola and Unimacro) when you want to use Unimacro Shorthand Commands in Vocola. - - -Simply put in aVocola commands file: *"U delta"* or *U(delta)*. - -Or put in some action in some grammar: *action('U delta')*. - -As a test put the following in your local (for example Word) or global commands file: - -:CODE: -test command = -"{enter}Delta (as 0394): " U(0394) -"{enter}Delta (as 394):" U(394) -"{enter}Delta (as Delta):" U(Delta) -"{enter}alpha (as alpha):" U(alpha) -"{enter}alpha (as 03B4):" U(03B1) -"{enter}Pi (as 03A0):" U(03A0) -"{enter}Pi (as 3a0):" U(3a0) -"{enter}Pi (as Pi):" U(Pi) -"{enter}wrong spades (??, other font?):" U(2660) -"{enter}Cyrillic capital letter NJE:" U(040A) -"{enter}eacute:;" U(eacute) -"{enter}unicode ETH (as U ETH):;" U(ETH) -"{enter}ascii ETH (as A 208):;" A(208) -"{enter} ETH (as U d0):;" U(d0) -"{enter} ETH (as U 00D0):;" U(00D0) -"{enter}"; -:: - - Note the bottom 5 examples stop at eacute. This is a little mistake which will be corrected in the next version of Unimacro. - - Graham Cole contributed the following list. It (or part of it) can be included in a Vocola commands file (say *edit global commands* or *edit commands* for some application) - -:CODE: -Greek alpha = U(alpha); -Greek beta = U(beta); -Greek big beta = U(Beta); -Greek delta = U(delta); -Greek big Delta = U(Delta); -Greek epsilon = U(epsilon); -Greek gamma = U(gamma); -Greek big gamma = U(Gamma); -Greek lambda = U(lambda); -Greek micro = U(micro); -Greek omega = U(omega); -Greek big omega = U(Omega); -Greek pi = U(pi); -Greek big pi = U(Pi); -Greek psi =U(psi); -Greek rho = U(rho); -Greek sigma = U(sigma); -Greek big sigma = U(Sigma); -Greek tau = U(tau); -Greek theta = U(theta); -Greek big theta = U(Theta); -Greek zeta = U(zeta); -Euro sign = U(euro); -Euro abbreviation = EUR; -Equivalent sign = U(equiv); -fraction one half = U(frac12); -fraction one third = U(2153); -fraction one fourth = U(frac14); -fraction one five = U(2155); -fraction one six = U(2159); -fraction five six = U(215A); -fraction one eight = U(215B); -fraction three eight = U(215C); -fraction five eight = U(215D); -fraction seven eight = U(215E); -fraction two third = U(2154); -fraction two fifth = U(2156); -fraction three quarter = U(frac34); -fraction three fifth = U(2157); -fraction four fifth = U(2158); -Right Arrow Sign = U(rarr); -Double Right Arrow = U(rArr); -Left Arrow Sign = U(larr); -Double Left Arrow = U(lArr); -Down Arrow Sign = U(darr); -Double Down Arrow = U(dArr); -Up Arrow Sign = U(uarr); -Double Up Arrow = U(uArr); -Paragraph Mark = U(para); - -:: - - Combining with other things - -Next example shows how you can surround the Right Arrow Sign by spaces: - -:CODE: -Right Arrow Sign = {space} U(rarr) {space}; -:: - - HtmlEntityRefs - - Codes that are also known as "htmlentityrefs" for html are presented here: - -getEntityDefs() - diff --git a/website unimacro/source/2_features/b_actions/h_actions configuration file.txt b/website unimacro/source/2_features/b_actions/h_actions configuration file.txt deleted file mode 100644 index 1d7f29d..0000000 --- a/website unimacro/source/2_features/b_actions/h_actions configuration file.txt +++ /dev/null @@ -1,66 +0,0 @@ -Actions.ini, the actions configuration file - -This file holds configurable parameters that can be used in different other grammars. They are speech profile (user language) independent, that the parameters can vary with different Windows systems, especially with other language systems (like Dutch). - - Meta actions -Most sections of the *actions.ini* file are devoted to the so-called meta actions. - -For all sorts of meta actions there is a default section (*[default]*), but each meta action can be overruled for a program by making specific secions like *[excel]* or *[firefox]*. - -See also: link(/features/unimacroandvocola/metaactions.html, examples of meta actions). - -If the action is empty, it will be skipped. For example a fairly obscure meta action *afterlines* is normally empty: - -:CODE: -[default] -afterlines = -:: - -For emacs there is a very special treatment (which does something with toggling line numbers): - -:CODE: -[emacs] -afterlines = {alt+x}setnu-mode{enter}; {alt+x}setnu-mode{enter} -:: - -The other way round (set in the *[default]* section, but empty in some program section) is also possible. - - - - Changing child and top behaviour - -For some grammars and commands you need to know if a window is a top window (normally has a button on the taskbar) or a child window (like a open or file save as dialog window). - -In some cases the standard return of the function *isTopWindow* doesn't match what you want: - --The Dragon bar itself should be treated as top window, but is reported as *child* window, this can be confusing especially in the link(/grammars/globalgrammars/folders/index.html, *_folders grammar*); --In Komodo popup windows like *Find* and Yes/No windows (with title *Komodo*) are reported as *top* windows, but should behave as a child window. This should be configured for the *killWindow* function or the -(link(/features/actions/shorthandcommands.html, *KW* Unimacro shorthand command)). - - -In the section *[general]* of the *actions.ini* file these two types of behavior can be specified, see example: - -:CODE: -[general] -child behaves like top = natspeak: dragon-balk, dragonbar -top behaves like child = komodo: find, komodo -:: - -Note that unlike other window title comparisons, here the whole title must match one of the words specified by a comma (and all titles are converted to lowercase). - -(For NatSpeak, the Dragon bar, we have a language dependency, because the window title changes with another language speech profile.) - - Bringup sections -For the different bringup commands, mainly used in the grammar *_taks*, several sections are used for specifying how a program should be called. Please see -link(/features/actions/bringupdetails.html, the separate section) on this. - - Example Messages from NatLink window -In order to close the messages window, you can simply say now *task messages close* (ie the messages window is brought in front and closed) - -In order to refresh the messages window you can insert in the file *actions.ini* the following section: - -:CODE: -[natspeak messages] -taskrefresh = <>; PRINT new messages window -:: - diff --git a/website unimacro/source/2_features/b_actions/index.txt b/website unimacro/source/2_features/b_actions/index.txt deleted file mode 100644 index da4958e..0000000 --- a/website unimacro/source/2_features/b_actions/index.txt +++ /dev/null @@ -1,33 +0,0 @@ -The action mechanism - - Also see link(/features/unimacroandvocola/unimacroshorthandcommands.html, section on Vocola and Unimacro) when using Unimacro Shorthand Commands and/or meta actions in Vocola - - Actions and Keystrokes -These can be compared with keystroke dvc commands and script dvc commands. They can be exploited in user defined grammars. Also Vocola can make use of these features, see next section. - - - Actions -The actions as called in a user grammar or in a ini file (see below) can be: --Keystrokes: a keystroke sequence eg. {alt+f4} for close window --a shorthand command in capitals, like HW (for HeardWord), SSK (for SendSystemKeys). -See the link(/features/actions/shorthandcommands.html, full list of them). --an ExecScript command, being one of the official NatSpeak commands, like "ClearDesktop". Capitalisation of these words should be exactly as in the NatSpeak manual. --a link(metaactions.html, meta action), like <<file save as>> --any combination of above possibilities, separated by ";" (semi colon) or a new line. - -If parts of an action are separated with a ";" or a newline, a short pause is done. So there is a subtle difference between the keystroke sequences _abc_ and _a; b; c_. - - - Keystrokes -This seems to be identical to NatLink.playString(). But there is more: through the ini file keystroke behaviour can be defined. Keys that need "hard" keystrokes (SendSystemKeys) can be defined, or it can be defined that ALL keystrokes in a specific application must be "hard". Also can be defined they optional pause between keystrokes. In current window applications this seems to be not necessary any more. - - - Using actions in a user defined grammar -The actions can be called from any user defined grammar. If you extensively use actions and/or a keystrokes it is easiest to import from the action module like - - from actions import doAction as action - from actions import doKeystroke as keystroke - -If you want to execute a action simply call _action("...")_. If you only want to do some keystroke combination calling _keystroke("...")_ has the same result as the call to action (but is slightly faster). - - diff --git a/website unimacro/source/2_features/b_actions/k_action classes for applications.txt b/website unimacro/source/2_features/b_actions/k_action classes for applications.txt deleted file mode 100644 index 6dd9a2b..0000000 --- a/website unimacro/source/2_features/b_actions/k_action classes for applications.txt +++ /dev/null @@ -1,40 +0,0 @@ -Action classes for specific applications - -For specific tasks, that cannot be performed with simple actions (keystrokes), meta-actions or Unimacro Shorthand Commands, it now is possible to define an application specific actions class. -With this action class actions can be done, like jumping to a line in a file, but also information from the application can be retrieved, like the line number the cursor is on. - - Example: win32pad -The easiest example is link(www.gena01.com/win32pad, *win32pad*), the notepad lookalike with line numbers. In the file *win32pad-actions.py*, in the *actionclasses* subdirectory of Unimacro, the class *Win32padActions* is defined. - -The needed actions go through *windows message functions* (see link(/features/globaldictation/index.html, page about global dictation), but also the module *messagefunctions.py* in the Unimacro directory. -With these messages function, as called in the class MessageActions (found in actionbases.py), information about a window can be retrieved. - -In the example the function getCurrentLineNumber is used to give the line number the cursor is on. This is used in the grammar _lines.py for doing line numbers modulo 100. - - Example: ultra edit -The program uedit32, link(http://www.ultraedit.com/, *UltraEdit*), which is not free software, does the same trick. Some more effort was needed here to find the foreground tab in this multitab IDE. - - Example: komodo -With my favourite IDE, link(http://www.activestate.com/komodo-ide, *Komodo*), also not free software, I did not succeed to implement a class that does the same trick. As Komodo can execute python programs, a dialogue via TCP-IP could be setup to retrieve the necessary information. This would be the same strategy as voicecode uses with Emacs. - - Example: excel -Connection with Excel is made via a so-called *COM object*. One of the functions is again *getCurrentLineNumber*, so the grammar *_lines.py* can also here use the *line numbers modulo hundred* option. - -Moreover via this class more information is retrieved from the Excel instance, like sheet names. The program specific grammar *excel.py* also use this this module to get and set information. - - - Usage: _lines.py -In the grammar *_lines* use of these functions is made as soon as a valid program specific actions module is found, as in the examples above. Then the grammar lines can use to current line number in order to perform a line number switch modulo 100, has also is established with Emacs through Vocola commands. - -When the option *line numbers modulo hundred* is not set, this grammar this no attempts to get an instance of this program specific actions modules. - - - Usage: Excel -As described above, the grammar Excel can use this actions class *excel-actions.py* for doing several specific commands. - - Implementation -care has been taken that the load for Unimacro is as little as possible. Therefore in the module *actions.py* in specific cases the program specific actions modules are instantiated, and the results are kept in a dictionary with the window handles as keys. This means that when an application is visited more often, the instance can be retrieved through this dictionary. - -For details about the calling, please study the file *_lines.py*. - -For details about the implementation of this program specific actions class this look into the *actionclasses* directory of Unimacro. diff --git a/website unimacro/source/2_features/c_tracing.txt b/website unimacro/source/2_features/c_tracing.txt deleted file mode 100644 index 393cbeb..0000000 --- a/website unimacro/source/2_features/c_tracing.txt +++ /dev/null @@ -1,14 +0,0 @@ -The tracing mechanism - -Tracing can be exploited for debugging things. Presently I use it most if actions are not working well. - -Use the command: - - Trace Actions (On | Off | 1 to 9) - -Each number gives more information and longer pauses between each action/part of the action (including keystrokes). - -If things continue to go too slow, do not forget to switch off the trace again. - - - \ No newline at end of file diff --git a/website unimacro/source/2_features/f_inifiles.txt b/website unimacro/source/2_features/f_inifiles.txt deleted file mode 100644 index 224699c..0000000 --- a/website unimacro/source/2_features/f_inifiles.txt +++ /dev/null @@ -1,61 +0,0 @@ -ini files - -A lot of configuration is done through *configuration files*, here called *ini files*. - -A ini file can be edited in many programs e.g. notepad, textpad, win32pad (like notepad, but with line numbers), emacs etc. In many situations there is a Unimacro command with which the appropriate ini file is opened automatically (in program associated with the extension _.ini_). - -Inifiles have sections (between square brackets), and each section has key value combinations, separated by "=". Whitespace around values is ignored (stripped). - -A sample: - -:CODE: -[section] -key = action -second key = another action - -[section two] -key = action of section two -:: - - - Actions - -These are defined in a file *actions.ini*. A lot of grammars and commands use so-called meta actions, which can have different behaviours in different windows. - -See link("actions/index.html", "pages on actions"). The _actions.ini_ file can be opened by the command (from the grammar control) *edit actions*. All the active actions for a program/windowtitle can be shown by the command *show actions*. - - Numbers and other Spoken Forms - -Starting with release 4.0 spoken forms for numbers are put in *xxx_spokenforms.ini*. *xxx* being the language code of your speech profile. See link(numbers, Numbers and Spoken Forms). - -Samples are (hopefully) to be found in the sample_ini directory of Unimacro. Call *edit spoken forms* for opening this file. Also see link(/features/numbers/index.html, Numbers and Spoken Forms) for more programming instructions and examples. - --Alternative values may be separated by a *,*, *;* or a *|*. - -At the moment only some sections are really used, especially for numbers spoken forms: --*[numbers]*: keys are numbers, values are the spoken forms. At least the numbers *0* to *99* should be filled, and also *100*, *1000*. If in doubt, see the English example. Note in some functions only the first alternative will be taken if the lists are getting too long. --*[prefixes]*: synonyms for *hundred* and *thousand*. Also a possible synonym for *dot* in file or url extensions. - - Other spoken forms lists - --*[alphabet]*: keys are the letters, values the spoken forms. At startup possible alternatives will be taken, they have to be valid dictation words, for better recognition. Tf in doubt the alternatives with or without capitalization will be checked. If no valid alternatives are found for a spoken form, the spoken form will nevertheless be accepted. Used in eg the grammar _keystrokes.py. - --*[abbrevs]*: possibility to define abbreviations, which will be used when making spoken forms for file names or folder names (*_folders* grammar). Keys are the abbreviations, values are the spoken forms. If capitalized letters are taken, the *.* is added or removed depending on the NatSpeak/Dragon version. (up to NatSpeak 10, the *.* is compulsory, starting with Dragon 11 they are forbidden.) - --*[extensions]*: file extensions, without the *.* (dot). - --*[punctuationreverse]*: This section is (July 2015) used for getting a list of non character symbols in spoken forms, which are here on the left side of the *=*. So the other way around as all the other lists. Used in the grammar _keystrokes.py. - - - Configuration of grammars - -All grammars that derive from the class IniGrammar can use the ini file mechanism. Parameters can be set and inspected. - - -For example: _edit folders_ gives the inifile for the grammar __folders_. The values can be edited and are automatically read into the grammar. With _show folders_ information on the lists that are active in the grammar (plus the grammar definition) are showing on your screen (through a temporary .txt file) - - - Sample ini files - -In a folder *sample_ini* default ini files for different tasks (actions.ini, configuration files of grammars) are kept and copied for a user if needed. See also link("/installation/inifilestrategy.html", "notes in the installation pages"). - diff --git a/website unimacro/source/2_features/features.ini b/website unimacro/source/2_features/features.ini deleted file mode 100644 index a364d76..0000000 --- a/website unimacro/source/2_features/features.ini +++ /dev/null @@ -1,38 +0,0 @@ -[actions] -new page = 21 Dec 2004 - - -[cooperationwithvoicecoder] -new menu = 16 May 2006 - - -[grammarclasses] -new menu = 20 jan 2008 - - -[index] -new index = 21 Feb 2006 - - -[inifiles] -new page = 21 Dec 2004 - - -[numbers] -new menu = 08 nov 2010 - - -[tracing] -new page = 21 Dec 2004 - - -[translations] -new menu = 15 May 2006 - - -[unimacroandvocola] -new menu = 20 apr 2009 - - -[unittesting] -new menu = 22 May 2007 diff --git a/website unimacro/source/2_features/g_translations/a_how to start.txt b/website unimacro/source/2_features/g_translations/a_how to start.txt deleted file mode 100644 index 2bb8d2c..0000000 --- a/website unimacro/source/2_features/g_translations/a_how to start.txt +++ /dev/null @@ -1,35 +0,0 @@ -How to start translations - -Note: for Italian the right language code is not present yet. The language will be called *xxx*. This is no reason for not going on. - -Note: for Dutch the grammars are translated already. You can correct or alter things by calling the commands *toon alle grammaticaas*, *toon naam_van grammatica* of *bewerk naam_van_grammatica*. - -Assume the language you translate to is called *xxx*. - -First move away from your Unimacro folder all the grammars that you do not need except for *_control.py* (files that start with "_") . Start NaturallySpeaking. - --If you are lucky the configuration file (*xxx_inifiles/_control.ini*) opens automatically. Otherwise open this file manually. --Change the name, in the section *[grammar name]*, *name = ...*. --Change the different grammar words in the section *[grammar words]*. (After the *=* sign of each word.) --Save the file, and do one or two miscellaneous utterances. - -Now try to say your translation of the command *Show all grammars*. The special *All grammars* Windows should show up. You can also try *Show control* or *Edit control*, of course in your translation. - -Check if the grammar rules look correct. - --In the *All grammars* view the grammar is not shown literally, (but all the grammar words and word lists are given). --In the view you get with *Show grammar_name* you get the grammar exactly as it goes into the NatLink system. --If you say *Edit grammar_name* you (again) get the configuration file (ini file) in which you can alter the translations. --If there are duplicate words, try to invent a synonym for one of these (sometimes a dummy one). --Sometimes synonyms break the grammar, sometimes not. --Each time you need one or two utterances before the new grammar is reloaded. If not, exit and restart NaturallySpeaking. Examine the Messages window. --Occasionally this reloading seems to take a long time. It is not clear why. - - Other grammars - -If this step was okay, you can control the showing and editing of your grammars. Now try one by one to place back the other grammar files. After they are in the Unimacro folder, you have to toggle the microphone. Each grammar should show up with its ini file. You can edit the grammar name and the grammar words. After two utterances you can then ask for showing or editing the grammar and hopefully use the grammar. - -Good luck, let me know of your experiences. - - - diff --git a/website unimacro/source/2_features/g_translations/c_callback logic.txt b/website unimacro/source/2_features/g_translations/c_callback logic.txt deleted file mode 100644 index c1f42a7..0000000 --- a/website unimacro/source/2_features/g_translations/c_callback logic.txt +++ /dev/null @@ -1,40 +0,0 @@ -Programming logic in callback functions - -When some grammar rule has been found, sometimes the words in the rule must be checked for several cases. For example the following utterances from the grammar *solitaire* (*pasjans* in Dutch), corresponding with the module *sol.py*: - - english: card 6 to stack 1 - dutch: kaart 6 naar stapel 1 - -Both utterances come back into a callback function (*gotResults_cardnumto*) with inside lines like: - - if self.hasCommon(words, 'card'): - .... - -because 'card' is the original word in the grammar file. With other language versions these words can be changed, but they are still recognised by above function - -The method *hasCommon* checks for a word or a list of words, against a word or a list of words. - -The first variable can often be simply *words*, being the list of words that are returned in the callback function. - -If you want only checked the first word you could also do: - - if self.hasCommon(words[0], 'card'): - .... - - -The second variable can also be a string (word) or a list of strings (words), so above examples can also be written as: - - if self.hasCommon(words, ['card']): - .... - -or - - if self.hasCommon(words[0], ['card', 'something else']): - .... - - - -The word or words are not only checked literally against the second input variable(s) (*card*), but also against possible translations or synonyms, because this function also searches in variable *self.gramWords*, which contains all translation words or synonyms. So with above programming logic translations or synonyms are caught automatically. The keys in the inifile and so in the variable *self.gramWords* all converted to lower case internally. - - - diff --git a/website unimacro/source/2_features/g_translations/d_keystrokes.txt b/website unimacro/source/2_features/g_translations/d_keystrokes.txt deleted file mode 100644 index 04f21bd..0000000 --- a/website unimacro/source/2_features/g_translations/d_keystrokes.txt +++ /dev/null @@ -1,7 +0,0 @@ -Keystrokes grammar - -In the grammar link("/grammars/globalgrammars/keystrokes/index.html", "*keystrokes*") special attention is given to *context menu*. In order to translate these words, a dummy rule has been made which contains the words *context menu*. This rule is never recognised, but you can translate it. - -The translation (eg *snel menu* in Dutch) must be identical to the entry in the section *[norepkey]* which defines this action. Use the command *edit keystrokes* (Dutch *toon toetsen*) for editing this. - -When all goes well you can call your translation of *here context menu ...*. For *...* you can dictate your own keystrokes, this grammar is designed for *continuous keystrokes*. \ No newline at end of file diff --git a/website unimacro/source/2_features/g_translations/index.txt b/website unimacro/source/2_features/g_translations/index.txt deleted file mode 100644 index 121be79..0000000 --- a/website unimacro/source/2_features/g_translations/index.txt +++ /dev/null @@ -1,81 +0,0 @@ -Translating grammars into other languages - -See the link(http://youtu.be/DvYL780_-l4, "*demo movie*"), in this example the tasks grammar is translated into Dutch. (Note this translation has already been done, it is only meant as an example.) - -The Unimacro grammar words can easily be translated into other speech recognition languages like Dutch, German, French, Italian, etc. - -But in the same way also grammar keywords can be customised to your taste (synonyms). - -The basics are as follows: - -In the link("/features/inifiles.html", "inifiles") of the grammar (to be opened (in English) with *edit grammarname*, and inspected with *show grammarname*, (both being commands of the grammar link("/grammars/control/index.html", "*control*")): --The section *[grammar name]* defines the spoken form of the grammar name. --The section *[grammar words]* holds the words of the grammar. After each word you can give your own synonym or translation. In many cases even more words can be given, separated by *;*. If your synonyms have spaces inside, these are automatically quoted in the grammar specification. - - Example from grammar *repeat*: - -Consider the rules: - -:CODE: - = [much] (faster | slower); - = [very] (fast|slow) | normal | steady; -:: - - -The words much, faster, slower, very, fast, slow, normal, steady can all be changed into your translations or synonyms. If you want to include the word *standard speed* additional to *normal*, and *a lot* instead of *much* you can include in the grammar words section: - -:CODE: -[grammar words] -... -much = a lot -normal = normal; standard speed -... -:: - -The rules then result in: - -:CODE: - = ['a lot'] (faster | slower); - = [very] (fast|slow) | normal|'standard speed' | steady; -:: - - - Warning: - -In some cases making more synonyms can result in invalid rules, although most grammars are designed to prevent this. - -Consider the following rule from the grammar *lines* (_lines.py): - -:CODE: - = line | - {count} lines | - (previous|next|this|these) (line | {count} lines); -:: - -If you want to make synonyms for the grammar words *line* and *lines*, like: - -:CODE: -[grammar words] -... -line = line; lying -lines = lines; lyings -... -:: - -The rule results in: - -:CODE: - = line|lying | - {count} lines|lyings | - (previous|next|this|these) (line|lying | {count} lines|lyings); -:: - -Which gives unwanted results. However most grammars will be designed to prevent these errors. - - Changing the order of words - -This translation trick is only meant for literal words. So first get confident with the simple trick. Note: the names of rules and lists remain unchanged! - -If you want to change your grammar with another word order, you have to copy your grammar specification into the python file for your specific language. It can be done but possibly more work has to be done to interpret correct recognition results in the callback functions. (Example of this in the grammar *_repeat.py* for the Dutch case). - - diff --git a/website unimacro/source/2_features/g_translations/translations.ini b/website unimacro/source/2_features/g_translations/translations.ini deleted file mode 100644 index c585c22..0000000 --- a/website unimacro/source/2_features/g_translations/translations.ini +++ /dev/null @@ -1,14 +0,0 @@ -[callbacklogic] -new page = 23 May 2006 - - -[howtostart] -new page = 24 May 2006 - - -[index] -new index = 15 May 2006 - - -[keystrokes] -new page = 24 May 2006 diff --git a/website unimacro/source/2_features/h_cooperation with voicecoder/cooperationwithvoicecoder.ini b/website unimacro/source/2_features/h_cooperation with voicecoder/cooperationwithvoicecoder.ini deleted file mode 100644 index 0241255..0000000 --- a/website unimacro/source/2_features/h_cooperation with voicecoder/cooperationwithvoicecoder.ini +++ /dev/null @@ -1,2 +0,0 @@ -[index] -new index = 16 May 2006 diff --git a/website unimacro/source/2_features/h_cooperation with voicecoder/index.txt b/website unimacro/source/2_features/h_cooperation with voicecoder/index.txt deleted file mode 100644 index 6ca285d..0000000 --- a/website unimacro/source/2_features/h_cooperation with voicecoder/index.txt +++ /dev/null @@ -1,21 +0,0 @@ -Voicecoder - -I'm trying to do some interaction with voicecoder. - --See link(http://youtu.be/AIdwPayCiy0, "demo movie on this interaction Unimacro with voicecoder") - - --calling emacs from the native IDE of for example python (eg Pythonwin) for some lines of code. Edit with voicecoder and return, pasting back the results. --doing some actions inside emacs with Unimacro commands, which are easier than some voicecoder commands. Leaving voicecoder for the real dictation part. - -On the activation process of voicecoder, and the interaction of Pythonwin with emacs, I made a little *demo movie*, see link above. Regrettably the part inside voicecoder is a very bad, because the recording program (Camtasia) does not work well when voicecoder is on. - - Configuring the link("/grammars/globalgrammars/lines/index.html", "_lines") grammar - -When using the *simpleaction* command *emacs*, this one should call back to a HeardWord command from the grammar *edit*. - -The command triggers the meta action *<<heardwordemacs>>*. This one has to be adapted in your file *actions.ini* (by calling *edit actions*). The action should be *HW edit that python code* (implemented for pythonwin, pythonw (IDLE, PythonCard)), or similar for other programming languages. - - - - diff --git a/website unimacro/source/2_features/index.txt b/website unimacro/source/2_features/index.txt deleted file mode 100644 index 170540a..0000000 --- a/website unimacro/source/2_features/index.txt +++ /dev/null @@ -1,20 +0,0 @@ -What can be done with Unimacro grammars - -With Unimacro grammars lots of things can be done without extensive programming yourself. Many things can/have to be tuned through link("inifiles.html", "*configuration files*"), here called *inifiles*. - - Some of the other features: - --Use the power of link(www.autohotkey.com, *AutoHotkey*) for actions that are difficult to do within Unimacro --Going to and do actions with link(/grammars/globalgrammars/lines/index.html, *line numbers*) in IDE programs and for example Excel. For some applications you can choose to jump to a *line number module hundred*. --Putting all sorts of link(/grammars/globalgrammars/brackets/index.html, *brackets*) around selection or dictated text (nice start example too!) --link(numbers/index.html, *Numbers lists*) as spoken forms --Calling the link("/features/actions/shorthandcommands.html", "*Windows key*") --Printing (really pasting) link("/features/actions/unicodecharacters.html", *unicode characters*) like Greek alpha to your sreen --Logging all your link("/grammars/globalgrammars/oops/index.html", *utterances*) --Control the link(/grammars/control/index.html, *state of each grammar*) --Configure link(/grammars/globalgrammars/lines/index.html, *actions*) (eg in grammar lines) and -link(/grammars/globalgrammars/folders/index.html, *lists*) (eg in grammar folders) --link("/grammars/globalgrammars/repeat/searching.html", *Searching*) (to be developed further) and example of link(/features/unimacroandvocola/metaactions.html, *highlight*), implemented in Vocola. --link("translations/index.html", *Translate grammars*) to other language versions of NaturallySpeaking, or insert synonyms (currently Dutch and English are already available) --link("/features/grammarclasses/grammarx.html", *Displaying messages*) in the NatSpeak recognition window (rewritten) --Present information about link("/grammars/globalgrammars/general/index.html", "*current user, active window and state of Unimacro, NatLink and Dragon*") diff --git a/website unimacro/source/2_features/j_AutoHotkey/a_details.txt b/website unimacro/source/2_features/j_AutoHotkey/a_details.txt deleted file mode 100644 index 7224af7..0000000 --- a/website unimacro/source/2_features/j_AutoHotkey/a_details.txt +++ /dev/null @@ -1,82 +0,0 @@ -Programming details - - Example: use in _tasks grammar -An example of the script showmessageswindow.ahk is used in the tasks grammar of Unimacro. With the command *task messages* inside this grammar the *Messages from NatLink* is switched to. - -Note: you need to have messages in your application section of the _tasks.ini file, see link(/features/actions/bringupdetails.html, Bringup details): - -:CODE: -[application] -messages=messages -:: - -witregel() - -In the *actions.py* module you find the code: - -:CODE: -import autohotkeyactions as ahka -def messagesBringUp(): - """switch to the messages from python macros window""" - if ahka.ahk_is_active(): - do_AHK("showmessageswindow.ahk") - return 1 - # do it "the old way": - (...) -:: - -Which means that if AutoHotkey is active, the same script as in the preceding Vocola examples is called. If AutoHotkey is not active, the previous way to perform this task is tried, with win32gui functions. - - Remember window and Return to window -The following example first remembers the current window handle (*RW()*). It then switches with a ahk script to the Messages from NatLink window. After a visible wait *VW()*, the return to window *RTW()* is done. - -:CODE: -testswitchback = RW() AHK(showmessageswindow.ahk) VW() RTW(); -:: - -With RW() the handle of the foreground window is stored. The RTW() call uses this handle. Internally the following function is called (in natlinkutilsqh.py): - -:CODE: -import autohotkeyactions as ahka -:: -:CODE: -def SetForegroundWindow(h): - """gets the window in front, given by window handle h - try AutoHotkey, if it is not on your computer, otherwise try it with win32gui functions - """ - if ahka.ahk_is_active(): - result = ahka.do_ahk_script("WinActivate, ahk_id %s"% h) - #result = ahka.do_ahk_script("getintoforeground.ahk", hndle=h) - #result = ahka.do_ahk_script("WinActivate, ahk_id %hndle%", hndle=h) - if result == 1: - return 1 - if result: - print 'SetForegroundWindow %s with AutoHotkey failed:\n====%s===='% (h, result) - print result - - # if here, autohotkey is not found, and the SetForegroundWindow is done the "old" way, - # which often/sometimes fails - (...) -:: - - getintoforeground.ahk looks like: -:CODE: -;for Unimacro, changes %hndle% into the current foreground hndle. -WinActivate, ahk_id %hndle% -:: - --In the first *result = * line, a one liner is created, with the window handle filled in in the ahk script line. --In the second and third (here commented) lines the above script is called, with the *hndle* as named parameter. Before Unimacro calls autohotkey.exe, the script text is changed: *%hndle%* into the actual value (contained in *h*). The changed script, put into the temp file *tempscript.ahk* is executed by autohotkey.exe. --In all three examples exactly the same actions are done eventually. --The return parameters: this has to be sorted out further. For the moment a return value of 1 (OK) is taken all the time. - --*GetAhkExe()* and *GetAhkScriptFolder()*: helper functions to find the autohotkey.exe and the user script folder, and store them for future use in the moule global variables *ahkexe* and *ahkscriptfolder*. - --*ahk_is_active()*: return the executable (so True) or "" (so False) if autohotkey.exe cannot be found. This function should be called before other attempts to execute a ahk script are made. -- bold(do_ahk_script)(script, hndle=None): This function does the actual calling of autohotkey. If ahkexe is not found, it raises a ValueError. In the Unimacro Shorthand Command *AHK* this function is called, so do not use this from Vocola if AutoHotkey is not installed on your computer. ---the *script* can either be a autohotkey script file (with extension .ahk) or a script line. In the latter case the script line is written to tempscript.ahk before calling autohotkey.exe ---the optional parameter *hndle* is substited into *%hndle%* in the script or script file, if this string is present. By default, for example when a script is called via the Unimacro Shorthand Command *AHK*, the handle of the active window is used. - --*copySampleAhkScripts()*: at first call of GetAhkScriptFolder, for example in the first call of do_ahk_script, the .ahk scripts of the sample_ahk directory of Unimacro are copied into the user ahk scripts folder, whenever they are newer. If a different version of the script is found the user ahk scripts folder, the old version is copied into scriptname.ahkold (unless that file already exists) - --See link(configuration) when you want non-standard paths for *ahkexe* and *ahkscriptfolder*. diff --git a/website unimacro/source/2_features/j_AutoHotkey/autohotkey.ini b/website unimacro/source/2_features/j_AutoHotkey/autohotkey.ini deleted file mode 100644 index 948a842..0000000 --- a/website unimacro/source/2_features/j_AutoHotkey/autohotkey.ini +++ /dev/null @@ -1,6 +0,0 @@ -[configuration] -name = configuration - - -[details] -name = details diff --git a/website unimacro/source/2_features/j_AutoHotkey/b_Configuration.txt b/website unimacro/source/2_features/j_AutoHotkey/b_Configuration.txt deleted file mode 100644 index a1b55ca..0000000 --- a/website unimacro/source/2_features/j_AutoHotkey/b_Configuration.txt +++ /dev/null @@ -1,12 +0,0 @@ - Different paths - --By default the executable *AutoHotkey.exe* will be located in the 32-bit *Program Files* directory. --By default the user *ahk* script files will be located in the *AutoHotkey* subfolder of your *Documents* (PERSONAL) folder. - -When these paths are not correct, you can overrule them via the -link(/installation/technicaldetails/natlinkconfigfunctions.html, *natlinkconfigfunctions*), to be started with the Start menu item *Configure NatLink via command line interface*. --The option *h <ahk-exe-dir>* is used for defining the directory where AutoHotkey.exe is located; --The option *k <ahk-user-dir>* is used for defining the directory where your User ahk-scripts are located. --When you want to return to the default settings, these entries are cleared with *H* and *K* - - diff --git a/website unimacro/source/2_features/j_AutoHotkey/index.txt b/website unimacro/source/2_features/j_AutoHotkey/index.txt deleted file mode 100644 index 568a68f..0000000 --- a/website unimacro/source/2_features/j_AutoHotkey/index.txt +++ /dev/null @@ -1,43 +0,0 @@ -AutoHotkey - -The program link(www.autohotkey.com, AutoHotkey) can perform many actions on your computer, in some cases smarter and more reliable than can be done with (the current knowledge) of Unimacro. - -AutoHotkey actions can be called from Unimacro grammars, but also with the -link(/features/actions/shorthandcommands.html, Unimacro Shorthand Command) *AHK*, which can also be called from Vocola. - - Installation and configuration --Install link(www.autohotkey.com, AutoHotkey). --(Re)start Dragon, with NatLink, Vocola and Unimacro or the option "Vocola takes Unimacro actions" enabled, in the NatLink config program. --Try the Vocola examples below - -At first call of any of the Unimacro AutoHotkey functions, Unimacro tries to locate the *autohotkey.exe* and the directory of script files (with extension *.ahk*): - -- Unimacro expects *autohotkey.exe* in the "old style" program files directory, most often *C:\Program files*, and then in subdirectory *autohotkey*. Read the link(configuration) if you want them somewhere else. -- Unimacro expects or creates a user ahk scripts folder *AutoHotkey* in the users documents directory. Read the link(details) if you want them somewhere else. -- Some sample scripts are copied from the *sample_ahk* directory of Unimacro into this user ahk scripts directory, whenever these are newer. So when you mess up a script which is in the sample_ahk directory, delete it and restart Dragon. - - Script file or string - -As script, you can either enter a filename (a AutoHotkey script, ending with *.ahk*), or the contents of the script. This is especially handy for one-liners. - --If a script or the text in the one-liner has that literary text *%hndle%*, the handle of the foreground window will be inserted in this place. This handle can be changed if the script is called from Unimacro, not via the *AHK* Unimacro Shorthand Command, see link(details). If this substitution happens in a script file, the script text is used and script file is not changed, because: - --If a script text is used, it is first written to *tempscript.ahk*, and then this script is executed with AutoHotkey. All script files are in the AutoHotkey directory of your user documents folder. - - Examples from Vocola - -:CODE: -## Global vocola commands using AHK: -test paste = AHK("send ^v"); -wheel (up=up|down=down) = AHK("send {wheel$1}"); -wheel (up=up|down=down) 2..10 = AHK("send {wheel$1 $2}"); -show messages = AHK(showmessageswindow.ahk); -testswitchback = RW() VW() AHK(showmessageswindow.ahk) VW() RTW(); -:: - --The first three send Keystrokes (including mouse actions), like the Dragon/VB SendKey command or the natlink.playString function. AutoHotkey has even more support for this, for example for handling the mouse wheel. --Switching to another window with the python/win32gui function *SetForegroundWindow* is often unrelible. Luckily the AutoHotkey programmers do know how to do this task very reliable. --The example *testswitchback* uses AutoHotkey functions also from within Unimacro. See link(details.html, details). - - Comments -This is (December 2013) a new feature in Unimacro. Please comment on things and contribute scripts you use. diff --git a/website unimacro/source/2_features/j_unit testing/index.txt b/website unimacro/source/2_features/j_unit testing/index.txt deleted file mode 100644 index 5c9ac05..0000000 --- a/website unimacro/source/2_features/j_unit testing/index.txt +++ /dev/null @@ -1,15 +0,0 @@ -unittest Unimacro - -In the grammar link("/grammars/unimacrotest/index.html", "*Unimacro test*") a lot of tests are brought together in order to test things of Unimacro. - -These tests that can not run "offline" and with no user interaction, like unit tests normally do. - -They can be called when your speech profile is open. Because things are often dependent on context and speech profile some care must be taken when executing these tests. Please read more information on the detail pages, see link shown above. - - unittest NatLink - -See link(/installation/technicaldetails/testingnatlink.html, unittest NatLink), for instructions of testing the basics of NatLink itself. - - unittest special modules - - diff --git a/website unimacro/source/2_features/j_unit testing/unittesting.ini b/website unimacro/source/2_features/j_unit testing/unittesting.ini deleted file mode 100644 index 617a40b..0000000 --- a/website unimacro/source/2_features/j_unit testing/unittesting.ini +++ /dev/null @@ -1,2 +0,0 @@ -[index] -new index = 22 May 2007 diff --git a/website unimacro/source/2_features/l_grammar classes/a_grammarX.txt b/website unimacro/source/2_features/l_grammar classes/a_grammarX.txt deleted file mode 100644 index af5789d..0000000 --- a/website unimacro/source/2_features/l_grammar classes/a_grammarX.txt +++ /dev/null @@ -1,53 +0,0 @@ -The first grammar subclass: grammarX - -This is, for Unimacro, the base class after Joel's GrammarBase. - --It registers and unregisters each grammar. It also registers exclusive grammars. --The on/off state of a grammar can be controlled. --Messages can be displayed in the recognition window. - - DisplayMessage and exclusive grammars - -This mechanism makes it possible to send diagnostic messages into the recognition box. If messages are too long, or contain specific characters, the message is sent to a NatSpeak *MsgBoxConfirm dialog* window instead. - -If a grammar is exclusive (more grammars are also possible now) and a recognition is rejected (like *<???>* in non-exclusive mode) also a diagnostic message *<grammarname: ???>* is displayed. If something should be displayed from a gotBegin function (where you do not have recognitionMimic), the message is pended, and displayed later. - -In order to let this work the grammar *_control* automatically follows the exclusive state of another grammar. In the file *_control.py* there is also a *messageDictGrammar*, a dictation grammar that is only switched on at the moment of displaying a message. - -The connection with *grammarX* goes through the global functions in natlinkutilsbj: RegisterMessageObject, UnRegisterMessageObject, RegisterControlObject, UnRegisterControlObject. - -See also in the grammar link("/grammars/control/index.html", "*_control*") - - Instance variables -The following instance variables are set: -:TABLE firstcoldifferent=1, border=1: -:HEADING: variable -:COL: explanation - -:ROW:self.language -:COL: 'enx', 'nld', ... in order to make language dependent things possible. - -:ROW: -self.onOrOff -:COL:the wanted state of a grammar0 == off state, 1 == on state. On (1) at start (refined in IniGrammar) - -("exclusive" can also be a value, experimental, QH) - -:ROW:self.onOrOffState -:COL: the actual state of a grammar - -:ROW:self.version -:COL:the NatSpeak version: for example 7 if found in nssystem.ini. Older versions, if not found in this file assume to be 5. - - -:ROW: self.exclusive -:COL: the exclusive state (1) or not (0) - -:ROW:self.inGotBegin -:COL:(obsolete?) Signals if you are in gotBegin or not. - -:: - - - - diff --git a/website unimacro/source/2_features/l_grammar classes/b_Browsable Grammar.txt b/website unimacro/source/2_features/l_grammar classes/b_Browsable Grammar.txt deleted file mode 100644 index f63d78a..0000000 --- a/website unimacro/source/2_features/l_grammar classes/b_Browsable Grammar.txt +++ /dev/null @@ -1,7 +0,0 @@ -BrowsableGrammar - -This grammar base is developed by Bart Jan van Os. It makes it possible to browse through all the grammars (that subclass this grammar base) in a special pythonwin window. Pythonwin is also one of the IDE's for python in a Windows environment. - -Basically all lists that are set with the setList (emptyList, appendList) calls are also remembered by each grammar for these displaying purposes. With the GrammarBase, as provided by Joel Gould, lists are pumped into the SAPI system, but not available any more for the NatLink/python user. - -The calling of the grammar browser is done through the grammar _control. See there for more instructions. \ No newline at end of file diff --git a/website unimacro/source/2_features/l_grammar classes/c_IniGrammar/a_use.txt b/website unimacro/source/2_features/l_grammar classes/c_IniGrammar/a_use.txt deleted file mode 100644 index 1238b44..0000000 --- a/website unimacro/source/2_features/l_grammar classes/c_IniGrammar/a_use.txt +++ /dev/null @@ -1 +0,0 @@ -Information on the implications for the user. \ No newline at end of file diff --git a/website unimacro/source/2_features/l_grammar classes/c_IniGrammar/b_programmer.txt b/website unimacro/source/2_features/l_grammar classes/c_IniGrammar/b_programmer.txt deleted file mode 100644 index 97f6d45..0000000 --- a/website unimacro/source/2_features/l_grammar classes/c_IniGrammar/b_programmer.txt +++ /dev/null @@ -1,100 +0,0 @@ -Instructions for the programmers that want to to make grammars based on the IniGrammar class. - -When initialising an instance of an IniGrammar, the following actions are performed: --the method _startInifile_ performs starts the inifile (copies and opens a sample or default if needed) --set the variable _checkForChanges_ to 0; this variable is only put to 1 when the _editGrammar_ function is called. --get the inifile, creating this if necessary. --get the (pronouncable) name --get the initial on or off state --set the variable _prevModInfo_ to _None_ --translate the grammar words with the data from the configuration (.ini) file. --fill the instance variables through the function 'fillInstanceVariables'. - -If all went well the variable 'Error' is set to '0'. - - - Name -The name of the grammar (most often set in the grammar definition or in the inifile) can be used to call for info about the grammar or to call the edit mode for the grammar. The name is also displayed in the *show all grammars* window. - - Filling lists -Grammar lists are automatically filled through the function *fillGrammarLists* at start or at changes of inifile (provided _self.checkForChanges_ is on). This function can be overloaded. - -When you want grammar lists filled not through the inifile, but directly in your grammar, you should define here the variable. --*iniIgnoreGrammarLists*, being the list name, or a list of list names. --Another possibility to do this, is overloading the method _fillGrammarLists_ or the method _fillList_. - - - - Difference fillInstanceVariables and fillGrammarLists -The method _fillInstanceVariables_ is run at initialization time of the grammar instance, before the grammar is loaded into NatSpeak. In order to redo this method, it is best to reloaded grammar, by: - -:CODE: - fullPath = natlinkmain.loadedFiles[self.__module__] - natqh.setCheckForGrammarChanges(1) - os.utime(fullPath, None) -:: -At the next utterance the grammar will be reloaded. - -The method _fillGrammarLists_ is run at _initialize_ time, after the grammar is loaded into NatSpeak. This method can be rerun, for example when lists have been changed. - - New inifiles -When initialising the grammar, an inifile is opened, or created when not yet existent. Some special methods can be overloaded to provide default data for a new inifile. The following variables are set: --self.ini: the inivars instance that gets the data from the inifile is --self.inifile: the full path of the ini file: macrosystem folder \ language+__module__.ini --self.inifileDate: date/time of last modification of inifile --self.onOrOff: overload from GrammarX, is set to 0 if specified in section [general], key "initial on or off = 0" --self.Error: initially set to 0. Is set to 1 if in the starting phase (mainly in the switchOn method) an error is encountered. All rules are deactivated, self.Error is only cleared when a new switchOn try is done. --self.prevModInfo: set to None, used when things I changed inside the gotBegin method. --self.checkForChanges: initially set to 0, meaning in gotBegin no checking for changes of inifile is done. When asked for the method self.editInifile, this variable is set to 1, meaning at each call in gotBegin the checkForChanges function is performed. - --The function fillInstanceVariables (default empty, to be overloaded by a user class) is called, in order to set/control variables that remained outside the grammar lists. - - Switching on (or off) -In the function _initialize_ (of the grammar itself, no default in the grammar classes), after loading the grammar the function self.switchOnOrOff() should be called in order to complete the switching on/off process. All rules are activated by default. If an error occurs, all rules are deactivated, but the grammar remains On. Is another behaviour is wanted, the function switchOn should be overloaded in the grammar. - - - -4. In the function gotBegin in the minimal case (as sketched above), you should call: -if self.checkForChanges: - checkForChanges() - -Above variable is normally set to 0. It is changed to 1 in the editInifile method. After editing the inifile, at each utterance this check is performed. It is only reset when the grammar is reloaded. - -If you want to activate or deactivate rules in gotBegin, or maintain grammar lists here, you should do more work. Basically use the variable self.prevModInfo, to be ready as quick as possible if the module info didn't change. Also check for the variable self.Error. - -By the way if the grammar is switched off, gotBegin is not entered, it is skipped already in the GrammarX callback method. -After that in the 'gotBegin' function is to - - - gramSpec variable - -Because of the possible translations/synonyms that are possible to insert in IniGrammar grammars, some manipulation is done with the *gramSpec* variable, which holds the grammar definition. - -- gramSpec is the compulsory name for the grammar specification, and the load statement (most often in the initialize function) should have self.gramSpec as parameter: - -:CODE: - def initialize(self): - self.load(self.gramSpec) - # if switching on fillGrammarLists, also with lists like {n1-9} or {number1to99}, will be called: - self.switchOnOrOff() -:: - --The class variable gramSpec can be a string or a list. But if the grammar is translated (or there are synonyms) a copy of the class variable gramSpec is put into self.originalGramSpec, and converted into a string. --If the translation/synonym process has changes, the resulting grammar specification is put as a string in *self.gramSpec* (so becomes an instance variable). - --As a consequence changes to be original grammar specification can not be done after the *__init__* function. If you want to add or remove grammar rules, typically because of settings in the [general] section of the inifile of the grammar, you should add your own __init__ function, as is done in the _tasks.py grammar of Unimacro. --- First the inifile is started (startIniFile()), resulting in the fillInstanceVariables() function to be called. ---Then the wanted action on the gramSpec is done. ---Only then the IniGrammar.__init__ is called. - --The grammar is NOT automatically loaded again after you change options in the [general] section of a grammar inifile. Call *switch on grammar_name* or restart Dragon. - - - Useful functions at recognition time - - link(/features/translations/callbacklogic.html, hasCommon) -Check if word or words of the recognition match words of the grammar - - - - diff --git a/website unimacro/source/2_features/l_grammar classes/c_IniGrammar/c_functions for searching.txt b/website unimacro/source/2_features/l_grammar classes/c_IniGrammar/c_functions for searching.txt deleted file mode 100644 index e8b041c..0000000 --- a/website unimacro/source/2_features/l_grammar classes/c_IniGrammar/c_functions for searching.txt +++ /dev/null @@ -1,35 +0,0 @@ -The functions that are used for the searching mechanism - - _searchForText(direction, text (optional))_: - --direction can be 'up' or 'down' --text is optional, for a repeated searches the previous search text is taken, or just the appropriate action, depending on the action _<<search always continue>>_, which can be _T_. Default F. - -A chain of actions is performed, and through all these actions the progInfo is passed on so the originating window remains valid even if the search is (temporarily) inside in dialogue window. - -Also some excel functions are done directly, without keystrokes, but inside the programming interface. - -The big distinction is searches with text and searches without text (continuations) - - _setLastSearchDirection_ and _getLastSearchDirection_: - -These are two helper functions, which can get and set the search direction. They are used from both calling grammars, when you want to back search, but the program does not support this. An action _<<documenthome>>_ is done and the search is continued down. - - _stopSearch_: -This function is performed when you stop searching. It moves the cursor left in order to unselect the found text. - - _searchFailed_: -This function can, for some windows, see if the search was failing. For example in DragonPad, notepad and Internet Explorer it checks if the search ends up in a dialogue window (a Child window). It returns -2 in that case. - -The action _<<search failed>>_ is performed and the continuity mode is switched off. This section by default rings ALERT, but can also do the escape key for example. - - _searchGoBack_: -Going back to where the search started. Currently working only for excel. Is performed when you give the command _search go back_, or a when you cancel a continuous search. - - Some variables are kept in this file as global variables (in the file _natlinkutilsbj.py_) - --lastSearchText --lastSearchDirection --app (word and excel can be opened) --appProgram = winword or excel (or '') --comingFrom = the cel in excel where you started (for returning with _search go back_) \ No newline at end of file diff --git a/website unimacro/source/2_features/l_grammar classes/c_IniGrammar/index.txt b/website unimacro/source/2_features/l_grammar classes/c_IniGrammar/index.txt deleted file mode 100644 index 50a7556..0000000 --- a/website unimacro/source/2_features/l_grammar classes/c_IniGrammar/index.txt +++ /dev/null @@ -1,22 +0,0 @@ -For user interaction: the IniGrammar class - -This is Quintijn Hoogenboom's extension to provide easy interaction between a user inifile and the grammar. - -Controlled through commands in the grammar __control_, the contents of a ini file can be inspected and edited. - --Inspecting is done through a temporary _.txt_ file that is displayed in Notepad, or another program that is attached with files of this extension, --Changing is done by calling the appropriate _.ini_ file. After editing and saving the file, the changes are updated in the appropriate grammar instance. --If the *grammar name* or the *grammar words* are changed, the corresponding grammar is reloaded, one utterance later. - -Other features of the IniGrammar class: - --grammar parts for getting a number. Exploited in __number_, __lines_ and in the browsing grammars (_firefox_browsing_). --functions for searching, which can be called from discrete and continuous grammars (__general_ and __repeat_) --(new in 2010) numbers lists are converted in spoken forms lists, see link(/features/numbers/index.html, numbers page). - - To update or not - -A special variable 'self.checkForChanges' controls whether the changes to link("/features/inifiles.html", "inifiles") should be checked for or not. It is switched on when calling such an inifile by one of the *edit* commands of the link("/grammars/control/index.html", "grammar _control"). This prevents unnecessary checking for changed ini files. On the other hand, opening a ini file manually (instead of with one of those special commands) means there will be no tracking of changes. - -The _actions.ini_ file is also updated after a call to *edit actions*. Howeveer the _numbers.ini_ file is *NOT* updated in the grammars automatically, you need a restart of NatSpeak. - diff --git a/website unimacro/source/2_features/l_grammar classes/c_IniGrammar/inigrammar.ini b/website unimacro/source/2_features/l_grammar classes/c_IniGrammar/inigrammar.ini deleted file mode 100644 index 3cac8ea..0000000 --- a/website unimacro/source/2_features/l_grammar classes/c_IniGrammar/inigrammar.ini +++ /dev/null @@ -1,14 +0,0 @@ -[functionsforsearching] -new page = 22 Feb 2006 - - -[index] -new index = 21 Dec 2004 - - -[programmer] -new page = 21 Dec 2004 - - -[use] -new page = 21 Dec 2004 diff --git a/website unimacro/source/2_features/l_grammar classes/c_IniGrammar/unimacro.ini b/website unimacro/source/2_features/l_grammar classes/c_IniGrammar/unimacro.ini deleted file mode 100644 index 05b2c10..0000000 --- a/website unimacro/source/2_features/l_grammar classes/c_IniGrammar/unimacro.ini +++ /dev/null @@ -1,9 +0,0 @@ -[a_use] -NEW PAGE = 17 Aug 2004 - -[b_programmer] -NEW PAGE = 17 Aug 2004 - -[index] -NEW INDEX = 17 Aug 2004 - diff --git a/website unimacro/source/2_features/l_grammar classes/classes.ini b/website unimacro/source/2_features/l_grammar classes/classes.ini deleted file mode 100644 index 8d1a39a..0000000 --- a/website unimacro/source/2_features/l_grammar classes/classes.ini +++ /dev/null @@ -1,27 +0,0 @@ -[browsablegrammar] -lastmod = 2008-01-20 -new page = 21 Dec 2004 - - -[grammarx] -lastmod = 2008-01-20 -new page = 21 Dec 2004 - - -[index] -lastmod = 2008-01-20 -new index = 21 Dec 2004 - - -[inigrammar] -new menu = 21 Dec 2004 - - -[natlinkutilsbj] -lastmod = 2008-01-20 -new page = 24 Jul 2006 - - -[natlinkutilsqh] -lastmod = 2006-12-10 -new page = 24 Jul 2006 diff --git a/website unimacro/source/2_features/l_grammar classes/d_DocstringGrammar/a_fullresults.txt b/website unimacro/source/2_features/l_grammar classes/d_DocstringGrammar/a_fullresults.txt deleted file mode 100644 index be39e2f..0000000 --- a/website unimacro/source/2_features/l_grammar classes/d_DocstringGrammar/a_fullresults.txt +++ /dev/null @@ -1,32 +0,0 @@ -fullResults - -The fullResults can be collected from the *gotResultsInit* function. - - -:CODE: - def gotResultsInit(self, words, fullResults): - self.fullResults = fullResults -:: - - - The complete calling order of a recognition is: - --gotResultsObject(self, recogType, resObj) --gotResultsInit(self, words, fullResults) - - Then the rules functions, either --rule_name(self, words) --subrule_name(self, words) --importedrule_dgndictation(self, words) - - or - --gotResults_name(self, words, fullResults) - - and after all these functions: - --gotResults(self, words, fullResults) - - All functions are optional. If you leave them out, no action is taken. - - diff --git a/website unimacro/source/2_features/l_grammar classes/d_DocstringGrammar/b_example tasks grammar.txt b/website unimacro/source/2_features/l_grammar classes/d_DocstringGrammar/b_example tasks grammar.txt deleted file mode 100644 index 88e19b0..0000000 --- a/website unimacro/source/2_features/l_grammar classes/d_DocstringGrammar/b_example tasks grammar.txt +++ /dev/null @@ -1,105 +0,0 @@ -example _tasks.py - - The complete grammar (called with *show tasks*): - -:CODE: - ---- grammar: - -#commands for switching tasks: - exported = (task)({taskcount}|{application}|Back); - exported = ( | (task))({taskaction}); - -#commands for positioning (moving) and resizing tasks: - exported = (|(task)) position []; - exported = ( | (task)) move - (|) - [||||]; - exported = ( | (task)) (stretch|shrink) - (|) - [||||]; - - #directional specifications: - = {degrees} degrees; - = {directionplus}; - - # size specifications: - = {pixelcount} [pixels]; - = {sizecount} centimeters; - = {sizecount} millimeters; - = {sizecount} inches; - = {percentcount} percent; - -#commands for recording taskbar and clock positions: - exported = ('get task position') ({taskcount}|clock); - -# here are the older commands: -# icon (system tray) commands: - exported = (icon) ({iconcount} |{character}|( [{iconcount}])) [{iconaction}]; - exported = (icon) {iconaction}; - = {direction}; - -# windows inside an application: - exported = (Window) ({windowcount}|Back|Previous|Next); - -# miscelaneous: - exported = ('switch file to') {switchapp}; - exported = 'remove cursor'; - exported = convert file to (windows|dos|unix); -:: - - A lot of the functions are *DocstringGrammar* style *rule* or *subrule* functions: - -:CODE: - def rule_taskswitch(self, words): - """#commands for switching tasks: - (task)({taskcount}|{application}|Back) - """ - ... -:: - - or - -:CODE: - def subrule_directionplus(self, words): - '{directionplus}' - # just defining the directionplus list -:: - - or - -:CODE: - def subrule_pixels(self, words): - """ - # size specifications: - {pixelcount} [pixels] - """ - # giving an optional word and also comment in the specification -:: - - But part of the rules are defined as: - -:CODE: - gramSpec = """ - -# here are the older commands: -# icon (system tray) commands: - exported = (icon) ({iconcount} |{character}|( [{iconcount}])) [{iconaction}]; - exported = (icon) {iconaction}; - = {direction}; - -# windows inside an application: - exported = (Window) ({windowcount}|Back|Previous|Next); -... - """ -:: - - with functions like: - -:CODE: - def gotResults_thisicon(self, words, fullResults): - """do actions on active icon""" - ... -:: - - diff --git a/website unimacro/source/2_features/l_grammar classes/d_DocstringGrammar/c_example word styles.txt b/website unimacro/source/2_features/l_grammar classes/d_DocstringGrammar/c_example word styles.txt deleted file mode 100644 index 9b18131..0000000 --- a/website unimacro/source/2_features/l_grammar classes/d_DocstringGrammar/c_example word styles.txt +++ /dev/null @@ -1,49 +0,0 @@ -example winword_styles_unimacro - - This little grammar is rewritten into Docstring grammar style. - - - Instead of - - - - -:CODE: - gramSpec = """ - exported = show styles; - exported = update styles; - exported = set style {style}; - """ -:: - - The rules now appear as: - -:CODE: - def rule_updateStyles(self, words): - "update styles" - # possibility to "manually" update the styles list - # not needed in normal use - self.updateStyles() - - def rule_showStyles(self, words): - "show styles" - # print a list of all valid styles in the messages window - if self.styles: - print 'styles in use: %s'% self.styles.keys() - else: - print 'no styles in use...' - - def rule_setStyle(self, words): - "set style {style}" - #apply a style to the cursor or selection - style = words[-1] - if style in self.styles: - print 'setting style %s'% style - sel = self.application.Selection - sel.Style = style - else: - print 'style not in stylelist: %s'% style -:: - --Again, with the commands *show word styles* (Dutch: "toon weurd opmaakprofielen"), or with the command *show all grammars* (Dutch: "toon alle grammatica's") you can inspect the contents of the grammar. --This grammar is located in the *DisabledGrammars* folder if you installed from the combined NatLink/Unimacro/Vocola installer. diff --git a/website unimacro/source/2_features/l_grammar classes/d_DocstringGrammar/d_programmer.txt b/website unimacro/source/2_features/l_grammar classes/d_DocstringGrammar/d_programmer.txt deleted file mode 100644 index 1716d72..0000000 --- a/website unimacro/source/2_features/l_grammar classes/d_DocstringGrammar/d_programmer.txt +++ /dev/null @@ -1,10 +0,0 @@ -Instructions for the programmers that want to to make grammars based on the DocstringGrammar class - - - gramSpec variable - -This variable will be a string, constructed from the docstrings and from the *gramSpec* variable at the top of the class definition. In any case, in the __init__ phase, the gramSpec is converted into a string. - --When you want to include/exclude grammar rules at start of the grammar, do this the way that is described for the IniGrammar specification, before you call the DocstringGrammar.__init__ function. --When translated further, in the IniGrammar superclass, the other link(/features/grammarclasses/inigrammar/programmer.html, considerations about the variable *gramSpec*) should be noticed. - diff --git a/website unimacro/source/2_features/l_grammar classes/d_DocstringGrammar/docstringgrammar.ini b/website unimacro/source/2_features/l_grammar classes/d_DocstringGrammar/docstringgrammar.ini deleted file mode 100644 index 4784e97..0000000 --- a/website unimacro/source/2_features/l_grammar classes/d_DocstringGrammar/docstringgrammar.ini +++ /dev/null @@ -1,23 +0,0 @@ -[exampletasksgrammar] -new page = 01 apr 2010 - - -[examplewordstyles] -new page = 09 apr 2010 - - -[fullresults] -new page = 01 apr 2010 - - -[index] -new index = 01 apr 2010 - - -[programmar] -name = programmar -obsolete = 03 mrt 2021 - - -[programmer] -name = programmer diff --git a/website unimacro/source/2_features/l_grammar classes/d_DocstringGrammar/index.txt b/website unimacro/source/2_features/l_grammar classes/d_DocstringGrammar/index.txt deleted file mode 100644 index e4e5a0a..0000000 --- a/website unimacro/source/2_features/l_grammar classes/d_DocstringGrammar/index.txt +++ /dev/null @@ -1,49 +0,0 @@ -DocstringGrammar - -With this subclass of IniGrammar, rules can be defined in the docstrings of the rule functions. Things to notice: - --*gotResults_name* changes into *rule_name* for exported rule. --For subrules the function name is *subrule_name*. --For imported rules (*dgndictation*, *dgnwords* and *dgnletters*) use *importedrule_dgndictation* etc. No docstring needed here. --The rule definition is given in the docstring of the function. No semicolon needed at end. --The complete grammar can be inspected with the command *show name* (where name is the name of the grammar) --Translations and synonyms work as with IniGrammars. --The old gramSpec definition can remain for parts of the grammar, as are in that case the gotResults functions. --*fullResults* is not anymore in the call of each function (only *words*). But see link(fullresults.html, how to obtain the fullResults). - - First example (the grammar _first_sample_docstring.py): - -:CODE: - def rule_start(self, words): - "first sample docstring" - keystroke('Heard macro "start" (words "first sample docstring"){enter}') -:: - -The complete grammar shows (in this example after calling *show first sample docstring*) - -:CODE: ---- grammar: - - exported = first sample docstring; -:: - - - self.prevRule, self.prevWords, self.nextRule and self.nextWords - -These instance variables are maintained at callback time, to facilitate looking forward and looking back one step in a recognition. - -:TABLE: -:HEADING:variable -:COL:comments - -:ROW:self.prevRule -:COL:The name of the *previous rule* recognised, or *None if it is the first* of the rules -:ROW:self.prevWords -:COL:The list of words in the previous rule, or empty list (if first of the rules) -:ROW:self.nextRule -:COL:The name of the *next* rule recognised, or *None if it is the last rule* of the recognition -:ROW:self.nextWords -:COL:The list of words in the next rule, or empty list (if last rule of the recognition) -:: - -See also more link(/features/grammarclasses/inigrammar/programmer.html, instructions for programmers), which are similar to the IniGrammar subclass. \ No newline at end of file diff --git a/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsbj.txt b/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsbj.txt deleted file mode 100644 index 37c9001..0000000 --- a/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsbj.txt +++ /dev/null @@ -1,12 +0,0 @@ -natlinkutilsbj - -In this file the class definitions of about three classes reside. - --new function August 2011: GetGrammarObject(name): - -Returns the grammar instance (of some Unimacro grammar - already loaded -), where name is the name as pronounced, and defined as *name* in the section [grammar name] of the grammar. - -Through this mechanism one grammar can call another, preferably earlier loaded, module. - -See example in _lines with *enable search commands* - diff --git a/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsqh/a_Get functions.txt b/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsqh/a_Get functions.txt deleted file mode 100644 index 666fac1..0000000 --- a/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsqh/a_Get functions.txt +++ /dev/null @@ -1,32 +0,0 @@ -Get functions - -Get data mainly from natlinkmain and NatLink. -Also see link("/installation/technicaldetails/natlinkmain.html", "the page about natlinkmain"). -It is best NOT to import natlinkmain from a Unimacro grammar, but get the wanted information through these functions: - -:TABLE firstcoldifferent=1, border=1: -:HEADING: function -:COL: returns - -:ROW:getLanguage -:COL: returns the three letter code of the language of the speech profile. 'enx' for English, 'nld' for Dutch etc - -:ROW:getDNSversion -:COL: return, as integer, the version number of NatSpeak. Older versions in "nssystem.ini", newer versions (from 7 up) look in the registry. - -:ROW:getUser -:COL: get, as a string, the name of the current speech profile - -:ROW:getWindowsVersion -:COL: at this moment are known: 'XP', '2000', 'NT4', 'NT351', '98' - -:ROW:getModuleFilename -:COL:the complete path of the calling grammar/manual, has stored in natlinkmain - -:ROW:getUnimacroFolder -:COL: the folder natlinkutilsqh.py is in, should be the NatLink (natpython) user directory. - -:ROW:getBaseName(name) -:COL: returns to base name (without directory and without extension) of name -:: - diff --git a/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsqh/b_Module info.txt b/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsqh/b_Module info.txt deleted file mode 100644 index 27e638b..0000000 --- a/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsqh/b_Module info.txt +++ /dev/null @@ -1,69 +0,0 @@ -Module info - -Functions concerning moduleInfo (this is a tuple of three which is always passed in the *gotBegin* callbacks). They can be used to check if someone know that this certain characteristics. Note that in most functions *modInfo* can be passed, if available. If not it is collected from *NatLink.getCurrentModule*. - -You can get the module info and the progInfo with the command *give window info* or *give window information* (grammar general) - -:TABLE firstcoldifferent=1, border=1: -:HEADING: function -:COL: action/returns - -:ROW:matchModule(modName, wantedTitle=None, modInfo=None, titleExact=0, caseExact=0) -:COL:Returns module name (program name!) on match and None on mismatch. - -This is a variant on matchWindow (from Joel), but now you can also check only the module (leave out the other variables) -and not the (sub) window of this module. - -Module names are always converted to lowercase. - -You can specify a window title or a list/tuple of window titles. - -If you specify a window, it can be checked with exact title or exact case. -If nothing is specified lower case strings are compared, and only part -of the window title has to be given in order to get a match - -:ROW:matchTitle(wantedTitle, modInfo=None, titleExact=0, caseExact=0) -:COL:returns the module (program) name if the wanted title matches the actual title. - -:ROW:getProgName(modInfo=None) -:COL: gives the module name of the module. ("pythonwin", "excel" etc) - -:ROW:getProgInfo(modInfo=None) -:COL: returns program info as tuple (prog, title, toporchild) - -all in lowercase, toporchild = 'top' or 'child' - -if no valid program (modInfo[0]) ('', '', 'empty') is returned - -:ROW:matchWindow(criteria, modInfo=None, progInfo=None) -:COL:*note this one is different from the matchWindow in natlinkutils* - -looks for a matching window based on the dictionary of criteria - -criteria can either be a key with None as value, or a key -with a part of window title as value (string), or a key with -a list of parts of window titles as value. - -special these are: --'all' (everything matches, value is ignored, so normally None) --'none' (nothing matches) --'empty' (matches when no valid progInfo is found) - -progInfo is a tuple: (prog, title, toporchild), - --prog being the lower case name of the program --title being the lower case converted title --toporchild being 'top' if top window, 'child' if child window, 'empty' if no valid module - - -progInfo may be omitted as well as modInfo. -For best performance progInfo should be given, -otherwise giving modInfo is also faster than omitting it. - - - - - - - - diff --git a/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsqh/c_Word properties.txt b/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsqh/c_Word properties.txt deleted file mode 100644 index 06225c5..0000000 --- a/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsqh/c_Word properties.txt +++ /dev/null @@ -1,70 +0,0 @@ -Word properties - -In the original natlinkutils there was a list of word properties (like no_spacing_before or cap_next). - -With newer versions of NatSpeak some things seem to have changed. In natlinkutils.py that word properties are defined, but natlinkutilsqh.py these properties are *redefined*, together with some utility functions. Also a few flags have been added in order to fix/observe some changes in version 8 and version 9. As far as some trial and error has shown. - - - So trial and error gives a few results: - -When you add a new word by hand, the properties will be: ['InternalUseOnly5', 'WordWasAddedByTheUser'] (hex number 0x20 00 00 01) - -When you add a new word, and give it the properties "has no preceding or following space", you will get:['InternalUseOnly2', 'InternalUseOnly5', 'NoSpaceFollowingThisWord', 'NoSpacePreceedingThisWord', 'WordWasAddedByTheUser'] (or hex: 0x20 20 01 05). - - The complete list of word properties: - -:CODE: -wordFormatting = { - 'WordWasAddedByTheUser': 0x00000001, - 'InternalUseOnly1': 0x00000002, - 'InternalUseOnly2': 0x00000004, - 'WordCanNotBeDeleted': 0x00000008, - 'NormallyCapitalizeTheNextWord': 0x00000010, - 'AlwaysCapitalizeTheNextWord': 0x00000020, - 'UppercaseTheNextWord': 0x00000040, - 'LowercaseTheNextWord': 0x00000080, - 'NoSpaceFollowingThisWord': 0x00000100, - 'TwoSpacesFollowingThisWord': 0x00000200, - 'NoSpacesBetweenWordsWithThisFlagSet': 0x00000400, - 'TurnCapitalizationModeOn': 0x00000800, - 'TurnUppercaseModeOn': 0x00001000, - 'TurnLowercaseModeOn': 0x00002000, - 'TurnOffSpacingBetweenWords': 0x00004000, - 'RestoreNormalSpacing': 0x00008000, - 'InternalUseOnly3': 0x00010000, - 'SuppressAfterAWordWhichEndsInAPeriod': 0x00020000, - 'DoNotApplyFormattingToThisWord': 0x00040000, - 'DoNotResetTheSpacingState': 0x00080000, - 'DoNotResetTheCapitalizationState': 0x00100000, - 'NoSpacePreceedingThisWord': 0x00200000, - 'RestoreNormalCapitalization': 0x00400000, - 'FollowThisWordWithOneNewLineCharacters': 0x00800000, - 'FollowThisWordWithTwoNewLineCharacters': 0x01000000, - 'DoNotCapitalizeThisWordInATitle': 0x02000000, - 'InternalUseOnly': 0x04000000, - 'AddAnExtraSpaceFollowingThisWord': 0x08000000, - 'InternalUseOnly4': 0x10000000, - 'InternalUseOnly5': 0x20000000, - 'WordWasAddedByTheVocabularyBuilder': 0x40000000, - } -:: - - -:TABLE firstcoldifferent=1, border=1: -:HEADING colspan=2:functions to support this - -:ROW:NatLink.getWordInfo(word) -:COL:NatLink returns the word properties of a word(as hex number) - -None if word is non existent. - -:ROW:ListOfProperties(props) -:COL:returns a list of readable properties (like the examples above). - -:ROW:makeWordProperties(listOfProps) -:COL:returns the props number from the list again - -:: - - - diff --git a/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsqh/d_Miscellaneous.txt b/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsqh/d_Miscellaneous.txt deleted file mode 100644 index 8f99864..0000000 --- a/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsqh/d_Miscellaneous.txt +++ /dev/null @@ -1,8 +0,0 @@ -Miscelaneous functions - - - SetForegroundWindow -This important function for switching tasks has been elaborated (febr 2011). The Windows call to *win32gui.SetForegroundWindow* often fails, because the active foreground window doesn't give up its focus. - -This seems to have been tackled by an extra trick (if needed): get the Dragon bar in focus by sending the shortcut key _{numkey*}_ and subsequent an _{esc}_ key. It seems that after this has been done, the switching to the wanted window goes smooth. When this trick is used you see the NatSpeak menu flash up shortly. - diff --git a/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsqh/index.txt b/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsqh/index.txt deleted file mode 100644 index bae6b52..0000000 --- a/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsqh/index.txt +++ /dev/null @@ -1,11 +0,0 @@ -natlinkutilsqh - -A lot of utility functions reside in this file some of which are reviewed in the following pages - -For example --link(/features/grammarclasses/natlinkutilsqh/getfunctions.html, get functions), --link(/features/grammarclasses/natlinkutilsqh/moduleinfo.html, module and program info) and functions to see if a window matches certain requirements --link(/features/grammarclasses/natlinkutilsqh/wordproperties.html, word properties), (must probably be revised with NatSpeak 11). - -Also see in Miscelaneous the elaborated SetForegroundWindow function! - diff --git a/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsqh/natlinkutilsqh.ini b/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsqh/natlinkutilsqh.ini deleted file mode 100644 index 0e28b0a..0000000 --- a/website unimacro/source/2_features/l_grammar classes/e_natlinkutilsqh/natlinkutilsqh.ini +++ /dev/null @@ -1,18 +0,0 @@ -[getfunctions] -new page = 11 Dec 2006 - - -[index] -new index = 11 Dec 2006 - - -[miscellaneous] -name = miscellaneous - - -[moduleinfo] -new page = 11 Dec 2006 - - -[wordproperties] -new page = 11 Dec 2006 diff --git a/website unimacro/source/2_features/l_grammar classes/grammarclasses.ini b/website unimacro/source/2_features/l_grammar classes/grammarclasses.ini deleted file mode 100644 index d1ab399..0000000 --- a/website unimacro/source/2_features/l_grammar classes/grammarclasses.ini +++ /dev/null @@ -1,26 +0,0 @@ -[browsablegrammar] -new page = 20 jan 2008 - - -[docstringgrammar] -new menu = 01 apr 2010 - - -[grammarx] -new page = 20 jan 2008 - - -[index] -new index = 20 jan 2008 - - -[inigrammar] -new menu = 20 jan 2008 - - -[natlinkutilsbj] -new page = 20 jan 2008 - - -[natlinkutilsqh] -new menu = 20 jan 2008 diff --git a/website unimacro/source/2_features/l_grammar classes/index.txt b/website unimacro/source/2_features/l_grammar classes/index.txt deleted file mode 100644 index 7635a65..0000000 --- a/website unimacro/source/2_features/l_grammar classes/index.txt +++ /dev/null @@ -1,28 +0,0 @@ -General information on the grammar bases: classes and subclasses. - - Note: this is a more advanced topic, for people who want to delve into the NatLink/Unimacro system! - - -Each [NatLink grammar] is a (python) instance of a (python) class that is a subclass of one of the "[grammar bases]". - -Joel Gould provides his "GrammarBase", as superclass for all grammars in the *NatLink* macro subsystem. - -In *[Unimacro]*, we provide four other subclasses, that provide increasing functionality. These three classes are described in the next sections. - --[GrammarX] provides some additional "basic" functionality. --[BrowsableGrammar] adds the possibility to browse through all the grammars, comparable with the command browser of NatSpeak version 7. --[IniGrammar] adds functionality to use ini files for additional user interaction. --[DocstringGrammar] adds possibility to define rules together with the callback functions, improving readability of the grammar files - -Most of the actual grammars in Unimacro are subclasses of the IniGrammar class. - - Where can you find them? - -- the above-mentioned classes of Unimacro (GrammarX, BrowsableGrammar and IniGrammar, DocstringGrammar) are in the file "natlinkutilsbj.py" -- most of the utility functions are in "natlinkutilsqh.py" -- the base class GrammarBase is in link(/installation/technicaldetails/natlinkutils.html, *natlinkutils.py*), in the core directory of NatLink - - Summary, the files described in this section are: - --natlinkutilsbj.py holds the Unimacro classes --natlinkutilsqh.py holds a lot of utility functions diff --git a/website unimacro/source/2_features/o_global dictation/c_end of line considerations.txt b/website unimacro/source/2_features/o_global dictation/c_end of line considerations.txt deleted file mode 100644 index aa25ec3..0000000 --- a/website unimacro/source/2_features/o_global dictation/c_end of line considerations.txt +++ /dev/null @@ -1,32 +0,0 @@ -End of line linefeed (\n) and or carriage return (\r) - -The carriage return (*\r*, ascii value *13*) and linefeed (*\n*, ascii value *10*) characters must be carefully treated. How a window responds can be checked the test module *unittestMessagefunctions.py*, which is in the *unimacro_test* subdirectory of Unimacro. - -Basically from a window with the *getEditText* function a list of lines is retrieved, reflecting all the line breaks. At the end of a paragraph most often a *\r* character is shown. Also an empty file often shows one *\r* or one *\r\n* character. For this reason in the module *windowsparameters.py* the variables *linesep* and *aftertext* are set to reflect the different possibilities. - -:TABLE firstcoldifferent=0: -:HEADING:Variable -:COL:Values - -:ROW:linesep -:COL:*\r* for RichEdit controls (sofar) - -:ROW:aftertext -:COL:*\r\n* for aligen - -*\r* for wordpad... -:: - - Getting the buffer in dictObj -In the VoiceDictation class the list of lines are simply joined together in a long string. - - Internal regular expressions -When doing operations with regular expressions in Python the line separators should always be *\n*. So the buffer that is read from the window or from the dictation object should be changed before doing a search operation. - - Writing back to the window -It seems that *\r* characters should be used to separate the lines, for the different, sofar examined, RichEdit controls. - -The function *insertText* (of VoiceDictation) therefore simply deletes all *\n* characters. So when text is inserted from a commands grammar, use *\r* for newlines. - - - diff --git a/website unimacro/source/2_features/o_global dictation/globaldictation.ini b/website unimacro/source/2_features/o_global dictation/globaldictation.ini deleted file mode 100644 index f02d5a9..0000000 --- a/website unimacro/source/2_features/o_global dictation/globaldictation.ini +++ /dev/null @@ -1,6 +0,0 @@ -[endoflineconsiderations] -new page = 27 nov 2009 - - -[index] -new index = 27 nov 2009 diff --git a/website unimacro/source/2_features/o_global dictation/index.txt b/website unimacro/source/2_features/o_global dictation/index.txt deleted file mode 100644 index ed542af..0000000 --- a/website unimacro/source/2_features/o_global dictation/index.txt +++ /dev/null @@ -1,18 +0,0 @@ -Global dictation - -As a result of a job for the Kaiser Permanente Hospital in Honolulu, the far edges of NatLink were explored. This was done by Quintijn Hoogenboom with close cooperation of Jason Koller from this hospital. - -The purpose is to make it possible to dictate text also when the target program/window not in focus. In principle this is done in hidden mode in the medical edition as well, but more functionality and feedback was wanted here. - -One of the deepest things of NatLink is capturing the dictObj, the dictation object that is used by NatSpeak. We managed to do this in most Windows, but when either: - --a Select-and-Say window, like Outlook is in focus or --some other text editor like UltraEdit, PythonWin or Komodo (although not being Select-and-Say) is in focus - -the dictation object cannot be captured by NatLink. - -The other part of the trick is getting control of the text and the target window. For this so-called message functions of window were explored. These message functions are among the deepest functions that are available in Windows. This is eg the *SendMessage* function in the *win32gui* module. With these functions the text of the dictation object can be kept synchronized with the text of the target window. - -One of the side effects is that also macros can be built which operates directly on the text in the text buffer. So finding and possibly deleting or changing text and the text buffer and setting the selection can be done from normal NatLink grammars. Even when the dictation object is not active, it can be updated, changed and synchronized with the target window buffer. - -The work is still under construction, and the essential things will be made available in the next Unimacro release. diff --git a/website unimacro/source/2_features/p_Monitorfunctions/index.txt b/website unimacro/source/2_features/p_Monitorfunctions/index.txt deleted file mode 100644 index f6621d3..0000000 --- a/website unimacro/source/2_features/p_Monitorfunctions/index.txt +++ /dev/null @@ -1,68 +0,0 @@ -Monitor functions - -The module "monitorfunctions.py" (tested with "unittestMonitorfunctions.py") is written for manipulation of windows on the monitors/displays. These functions are used in the grammar link(/grammars/globalgrammars/tasks/index.html, *tasks*). - - Other display - -With the function *move_to_monitor* a window is moved to another monitor - -:CODE: -move_to_monitor(winHndle, newMonitor, oldMonitor, resize): - """move window to another monitor - preserving position of restore_area as much as possible. - - - get winHndle for example with winHndle = win32gui.GetForegroundWindow() - - get current monitor (oldMonitor) with get_nearest_monitor_window(winHndle) - - get other monitor (in case of 2 monitors) with get_other_monitors(mon), and take - the first of the list that is retured. - resize: 0 if window is (assumed to be) fixed in size, can be found with: - - window_can_be_resized(winHndle): - return 1 if a window can be resized (like Komodo etc). Not eg calc. - """ -:: - - - Moving inside one monitor: - -:CODE: -maximize_window(winHndle): just maximize - -minimize_window(winHndle): just minimize - -restore_window(winHndle, ...): placing in various spots and widths/heights - see at definition for parameters - -move_window(winHndle, ...) - -stretch_window(winHndle, ...) - -shrink_window(winHndle, ...) - -:: - - Position of the taskbar - -:CODE: -get_taskbar_position(): gives the placing of the taskbar ('left', 'bottom', 'right', 'top'). -:: -This can be used for NatSpeak/Unimacro keystroke macros which can depend on this position (for example stacked taskbar windows in Window 7 Aero Peek view). - - Getting mouse positions of monitor -(new, December 2017) - -:CODE: -get_current_monitor_rect ( pos ) and - -get_current_monitor_rect_work( pos) - -:: - -Pass the current mouse position as a tuple (xpos,ypos) - -Returns the rect tuple of the monitor, with *_work* only the work area, so excluding task bar or Dragon bar. - - Notes: --unittesting is done with the file unittestMonitorfunctions.py (in the *unimacro_test* subdirectory of Unimacro). --demos can be done by uncommenting the different *test_...* functions at the bottom of the script monitorfunctions.py, and run the script. - --See for more details in the code... \ No newline at end of file diff --git a/website unimacro/source/2_features/p_Monitorfunctions/monitorfunctions.ini b/website unimacro/source/2_features/p_Monitorfunctions/monitorfunctions.ini deleted file mode 100644 index 62e35f8..0000000 --- a/website unimacro/source/2_features/p_Monitorfunctions/monitorfunctions.ini +++ /dev/null @@ -1,2 +0,0 @@ -[index] -new index = 17 mrt 2010 diff --git a/website unimacro/source/4_grammars/a_control/control.ini b/website unimacro/source/4_grammars/a_control/control.ini deleted file mode 100644 index 0241255..0000000 --- a/website unimacro/source/4_grammars/a_control/control.ini +++ /dev/null @@ -1,2 +0,0 @@ -[index] -new index = 16 May 2006 diff --git a/website unimacro/source/4_grammars/a_control/index.txt b/website unimacro/source/4_grammars/a_control/index.txt deleted file mode 100644 index 2f06ae9..0000000 --- a/website unimacro/source/4_grammars/a_control/index.txt +++ /dev/null @@ -1,66 +0,0 @@ -Controlling (the other) Unimacro grammars and actions - -This is the controlling grammar, with which you can show or edit things. Say *show control* for the details of this grammar, say *edit control* for changing things, including translation or synonyms. - -For other language versions these commands can differ. When translating Unimacro to a new language, start with this grammar. - - The grammar: -:TABLE firstcoldifferent=1, border=1: -:HEADING: -command -:COL:comment -:ROW:show all grammars -:COL:open the display grammar window with all grammars -:ROW:show active grammars -:COL:give a list of active grammars. Also show non active (but loaded) grammars and grammars outside the Unimacro reach. See below for more details. - - -:ROW:show|edit {grammarname} -:COL:show the actual information (including the grammar) of grammarname, or edit the inifile for grammarname - - -:ROW:show|edit actions -:COL:give the actual actions of the window you are in, or edit the actions inifile. - - -:ROW:trace actions on|off|{count} -:COL: switches on or off the trace mode of the actions, a larger number slows down the process, and gives more information. - - -:ROW:edit grammar {grammarname} -:COL:Opens the python file in the appropriate window (eg Pythonwin). - -The switch for automatic reloading is set when you edit some grammar file. So, when you save your changes, the grammar will be reloaded. - -:ROW:switch on|off {grammarname} -:COL: switch on or off some grammar. The switching on or off is also set in the _.ini_ configuration file of the respective grammar, so is persistent across NatSpeak sessions. - - -:ROW:switch on|off all grammars -:COL: all Unimacro grammars except the grammar control can be switched off in this way. Persistent across NatSpeak sessions. -:: - - show active grammars -This command gives, in a yesno dialog box all the active and non-active grammars. For application specific grammars, you will notice they are disabled when the application is not in focus. - -Also grammars that are outside Unimacro are shown, probably Vocola grammars. - -image(show active grammars.png, title=dialog window showing active and non-active grammars of NatLink and Unimacro) - -You can switch on or off grammars by the command shown above. - -The YesNo dialog box further asks you if you want to see the details of the active grammars. This is analogous to the window you get when you call _show all grammars_, but of course only showing active rules. - -When you want more information about one specific grammar, it is more appropriate to call _show grammarname_. - - - Message -<message> is a mysterious-looking grammar rule. It was used for displaying messages from the Unimacro system into the NatSpeak recognition box. Leave it alone. It is obsolete now. - - Actions - -link("/features/actions/index.html", "Actions") are used in many grammars. -They can be shown or edited through the commands in the table above. - -If you want to trace your actions you can call the command *trace actions on* or eg *trace actions 3*. In the messages box information is shown about the action and parts of the action that is/are performed. Also as the number increases, the actions are slowed down, so you can see what happens. For example *trace actions 5* will go quite slow. Do not forget to call *trace actions off* when you are done. - diff --git a/website unimacro/source/4_grammars/a_control/show active grammars.png b/website unimacro/source/4_grammars/a_control/show active grammars.png deleted file mode 100644 index 726fbf6..0000000 Binary files a/website unimacro/source/4_grammars/a_control/show active grammars.png and /dev/null differ diff --git a/website unimacro/source/4_grammars/b_global grammars/f_folders/a_details.txt b/website unimacro/source/4_grammars/b_global grammars/f_folders/a_details.txt deleted file mode 100644 index b02799f..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/f_folders/a_details.txt +++ /dev/null @@ -1,168 +0,0 @@ -Odds and ends of the _folders grammar - - cmd -The *cmd* program (Command Prompt) can also react to several folders commands, but the pathname of the wanted folder are pasted into the cmd-window. This is done with the Unimacro Shorthand Command *SCLIP*. - -One detail has to be set into the *actions.ini* config file, when you upgraded from an older version of Unimacro (before July 2020). --Say "edit actions" --Goto the section of [cmd] and set: - -:CODE: -[cmd] -(...) -paste = SSK({ctrl+v}) -:: - -This is needed because the cmd window wants "system keys", so the meta-action <<paste>> should be given with the Unimacro Shorthand Command *SSK*. - - - Top window behaviour -If you call for a folder outside a dialog window (a child window), all explorer (this computer) windows are inspected, and compared with the folder name that is asked for. The window with the nearest folder name (in the window title) is chosen. If no near match is present, a new "this computer" window is opened. If part of the folder name is present in the current active window, you switch to the exact folder, otherwise only the nearest folder window is brought to the front. - -In order to force a new window, you can say *new* at the end of the folder command. In order to open an explorer window (with folder list on the left side) you can say *explorer* at the end of the folder command (or both *new* and *explorer*) (explorer does not work at the moment) - - Example: - -If you ask for *folder projects* (for example on _d:/projects_), but you have already a window open with _d:/projects/sitegen/doctests_, there are several possibilities: - --You have this folder already active, in that case in this active window you switch to _d:/projects_, UNLESS there are other windows open with _d:/projects/sitegen_ or _d:/projects_ (closer matches). In those cases you jump to one of these windows. --The wanted folder is not yet active: you jump to this folder _d:/projects/sitegen/doctests_, and DO NOT change to _d:/projects_. With a second call to this folder the change is made. --No folder on the _D:/_ drive is open: a new folder window is opened. --You have a window with _D:/_ open. You switch to this window, and change to the desired folder. - - child behaves like top - -It can happen that you want to open a folder in *top* mode, while you have a *child window* in focus. You can configure this in .ini files, but the place has been changed (november 2010). - -The configuring of this feature *was* in the section *[general]* of the *_folders.ini* configuration file. It has now been moved to the link(/features/actions/actionsconfigurationfile.html, *actions.ini* configuration file). - -You should remove the key -*child behaves like top* from the section *[general]* in your *_folders.ini* configuration file. (Call by the command *edit folders*). - - File open strategy - -The file you call it opened through the standard window function. So connecting to a program that is already open is decided by the windows settings. As additional word you can call *open*, *edit*, *print*, which will try to affect that window function. If the specifying mode is not valid, the (in most cases default) *open* mode is chosen. - -There is one exception: if you call from a child window, the filename is printed in the filename control, like with folders. Note that this possibility will only rarely been needed. - -If you call *paste* the file name is always printed on the place of the cursor. - - On {letter} | {virtualdrivesspoken} trick - - letter trick -I (Quintijn) have a lot of folders that are on my laptop, but also on my desktop computer, that I can reach by the drive letter "*Q:*". When I call a folder (or a file), followed by *On Quebec*, the corresponding folder on this *Q:* drive is opened. - -Also when you make a copy of a folder to a USB-stick, carrying the name "E", you can call a folder (eg Documents, normally on "C:") with *folder Documents On Echo*. - - virtualdrivesspoken trick - -(December 2017): this trick is extended to *virtualdrives*. - -Example: I have my documents on *C:\Documenten*, but older documents I moved to *C:\DocumentenOud* (meaning "Documents Old"). - -In the ini file I defined in virtualdrives (among others): - -:CODE: -[virtualdrives] -md = C:\Documenten -mdoud = C:\DocumentenOud -:: - -And I have all subfolders of documents (*md*) in the folders list. One of the folders is named "Quintijn". - -:CODE: -[virtualdrivesspoken] -documentenoud = mdoud -:: - -Now when I call "folder Quintijn on documentenoud", the folder "C:\Documenten\Quintijn" is changed into "C:\DocumentenOud\Quintijn - -Likewise, you can call a file on a "remote" letter-drive or virtualdrive. - -witregel() - Alternative file or folder names trick - -When you have different paths for files or folders on different computers, but you want to keep the _folders.ini definitions consistent, you can specify alternatives in the file or folder name: - -:CODE: -[folders] -Documents = (C|D):\Document(s|en) -:: - -In this case, Documents will point to C:\Documents, C:\Documenten, D:\Documents or D:\Documenten, the first exisiting folder is taken. - -witregel() - Sites trick - -I (Quintijn) got on my computer a lot of folders after "D:/sites". Inside each of these folders there is an _input_ and an _output_ folder. With the special *site* commands I can reach these, with optional parameters like *input*, *output*, *local*. The natpython grammar automatically searches for these, or opens the local web site, after having found the output folder. - -BUT: as long as the variable *siteRoot* in your python module file does not point to a valid folder, this part of the grammar is not activated. - - 2Xexplorer - -Provisions were made to find folders in the 2XExplorer window as well. Currently I forgot about these, but they could be made active if somebody wants to use this feature. - -2Xeplorer seemed to be perfect for speech recognition, but there is no CVS control. Also sometimes some windows functions seemed not to work correct. Not giving the right focus for example. - - Xplorer2 - -image(xplorer2.png, title="about screen of Xplorer2", class=imageleft) - -On request this program is also inserted as possibility to open folders with. See link(www.zakbat.com) - -break() - -For configuration first insert in the [general] section of folders: - -:CODE: -[general] -(...) -use other explorer = xplorer2 -:: - -and insert in *actions.ini* (say *edit actions*): - -:CODE: -[bringup xplorer2] -path = C:\Program Files\zabkat\xplorer2\xplorer2_UC.exe -name = xplorer2_uc -:: - -After these changes, the folder commands for "top windows" will work with xplorer2 instead of the standard explorer. - -Drawback: automatic tracking of subfolders and files in a directory will not work. Also the recent folders list, as recently edit as option, will not respond on folders opened in xplorer2. - -See short demo: - - - - -break() - - Tracing files and folders automatically -From release 3.9 it is possible to include all folders and/or all files from some directory in your folders or files list. The directories you want to use for this trick should be specified as a -link(/grammars/globalgrammars/folders/virtualdrives.html, *virtual drives*). - -You can include these options by setting variables in this section [general] of the configuration file. If more items are to be specified, separate them by a *;*. Example: - - - -:CODE: -[general] -track folders virtualdrives = md; pr; um; uu; vc - -track files virtualdrives = md; pr -ignore file patterns = ~* -track file extensions = .py; .doc; .xls; .txt -:: - --The mechanism works only on one level, so no recursiveness. --The virtual drives must be defined in the [virtualdrives] section. --Subfolders are excluded if they contain anything else than lowercase letters and spaces. --Files can be included by specifying the extensions, or excluded by specifying the *fnmatch* (unix) like patterns. --When you edit the configuration file (say *edit folders*), you can tune the spoken forms, and optionally specify more spoken forms for a folder or a file (separated by *;*) or make the spoken form empty, the file of folder will be excluded from the grammars list. --Inspect the lists by saying *show folders*, or (more complete) by saying *show all grammars*. - - - - diff --git a/website unimacro/source/4_grammars/b_global grammars/f_folders/b_actions.txt b/website unimacro/source/4_grammars/b_global grammars/f_folders/b_actions.txt deleted file mode 100644 index 5aa8845..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/f_folders/b_actions.txt +++ /dev/null @@ -1,19 +0,0 @@ -Actions used in this grammar - -For a dialog window part link("/features/actions/index.html", "*two meta-actions*") are used (say *edit actions* to view/edit the actions.ini config file): - - -:TABLE firstcoldifferent=1, border=1: -:HEADING:action -:COL:comment - -:ROW:filename enter -:COL:The (most often) keystroke action to reach the filename textbox in the window. Most often "*{alt+n}*", but for some programs this action must be changed (office programs in some versions or languages, winzip32). - -:ROW:filename exit -:COL:to leave the filename textbox. Needs some adjustment sometimes in Office programs -:: - - --Note: for working the *cmd* program, Command Prompt, the meta-action <<paste>> should be set, see link(details). - diff --git a/website unimacro/source/4_grammars/b_global grammars/f_folders/c_virtual drives.txt b/website unimacro/source/4_grammars/b_global grammars/f_folders/c_virtual drives.txt deleted file mode 100644 index 5bc6970..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/f_folders/c_virtual drives.txt +++ /dev/null @@ -1,20 +0,0 @@ -Virtual drives - -Like "drive letters" (_C_, _D_, etc), with this grammar also virtual drives can be defined, which have two or more lower case letters as name. - -If for example your program files folder is _C:\program files_, you can define virtual drive _pf_ pointing to that folder. For subfolders in the definition of folders (and also for definition of *files*) you can use such a *virtual drive* name. - -For more consistency on different computers now also environment variables can be used, like *%HOME%* and *%PROGRAMFILES%*. So using virtual drive _pf_ is identical to using *%PROGRAMFILES%*. See -link("environmentvariables.html", "the page about these environment variables"). - -Other examples are *md* pointing to your my documents folder (also *%HOME%*), *nl* pointing to the NatLink folder etc. - -You can define these virtual drives in the section _virtualdrives_ in the file _folders.ini_ (call _edit folders_). - -When having different computers with analogous folder names, but different root folders, the folders inifile only has to be adapted for these virtual drives. - -A new more powerful advantage of these virtual drives is the possibility to link(/grammars/globalgrammars/folders/details.html, include all files or folders of a subdirectory). - - On letter trick -When you have different computers on a network with equivalent folder structures on some drives, you can make a network connection to such a remote drive and use the *on letter* option. See link("details.html", "detail page"). - diff --git a/website unimacro/source/4_grammars/b_global grammars/f_folders/d_environment variables.txt b/website unimacro/source/4_grammars/b_global grammars/f_folders/d_environment variables.txt deleted file mode 100644 index 2676678..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/f_folders/d_environment variables.txt +++ /dev/null @@ -1,112 +0,0 @@ -confignatlinkvocolaunimacroEnvironment variables - -For all definitions you can now also use the Windows system environment variables. Enclose with _%_ and *all capitalise* them. Its sensible use is to put them at the front of a file, folder or virtual drive definition. Slashes can be omitted. - - Examples: - -:TABLE firstcoldifferent=1, border=1: - -:HEADING:Variable -:COL:Meaning - -:ROW:%HOME% - -~ -:COL:pointing to your home folder, most often your path to My documents, see below - -Tilde is a common shorthand notation for your home folder. - -:ROW:%PROGRAMFILES% -:COL:pointing to the program files folder - -:ROW:%APPDATA% -:COL: pointing to your app data folder - -:ROW:%DESKTOP% -:COL: pointing to your desktop folder - -:: - - Natlink related Environment Variables - -Starting with version 4.1whiskey also Natlink related environment variables are added. The interface is a bit tricky, but the _folders grammars uses them. - -:TABLE firstcoldifferent=1, border=1: -:HEADING:Variable -:COL:Example value -:ROW:%BASEDIRECTORY% -:COL:C:\NatLink\NatLink\MacroSystem -:ROW:%COREDIRECTORY% -:COL:C:\NatLink\NatLink\MacroSystem\core -:ROW:%DNSINIDIR% -:COL:C:\ProgramData\Nuance\NaturallySpeaking15 -:ROW:%DNSINSTALLDIR% -:COL:C:\Program Files (x86)\Nuance\NaturallySpeaking15 -:ROW:%DNSUSERDIRECTORY% -:COL:C:\ProgramData\Nuance\NaturallySpeaking15\Users\QNederlands\current -:ROW:%NATLINKDIRECTORY% -:COL:C:\NatLink\NatLink -:ROW:%UNIMACRODIRECTORY% -:COL:C:\NatLink\Unimacro -:ROW:%UNIMACROUSERDIRECTORY% -:COL:C:\Documenten\unimacro_qh -:ROW:%USERDIRECTORY% -:COL:C:\UserDirectory\dragonfly-macros -:ROW:%VOCOLAUSERDIRECTORY% -:COL:C:\Documenten\vocola_qh -:: - - HOME and ~ -The environment variable *%HOME%* is by default NOT set in Windows. In order to make the story above work, Unimacro takes for *%HOME%*: the *My documents* folder on your system. - -Of course you can also set *%HOME%* yourself (in System properties, Advanced, Environment variables). -When you are using Emacs (VoiceCode) you probably have set the *%HOME%* variable this way in order to get proper access to your *.emacs* file. - -For *~* also this folder is taken. - - Show all these variables - -You can show all the Environment variables and the Natlink specific variable via a Unimacro Shorthand Command. In Vocola you can enter in your (global) command file: - -:CODE: -print all variables = Unimacro("PRINTALLENVVARIABLES"); -print natlink variables = Unimacro("PRINTNATLINKENVVARIABLES"); -:: - - Examples - -:TABLE firstcoldifferent=1, border=1: - -:HEADING colspan=2:Virtual drives - -:ROW:md -:COL:%HOME% - -:ROW:pf -:COL:%PROGRAMFILES% - -:HEADING colspan=2:Folders - -:ROW:md:/private or - - ~private or - - ~/private or - - %HOME%/private - -:COL:all pointing to the folder "private" in your documents - -:ROW: -%NATLINKDIRECTORY%/confignatlinkvocolaunimacro -:COL: the directory where the config program of Natlink is located. - - -:HEADING colspan=2:Files - -:ROW:~/public/examples.doc - -:COL:A file in the folder public of your home folder. - -:: - diff --git a/website unimacro/source/4_grammars/b_global grammars/f_folders/e_track folders history.txt b/website unimacro/source/4_grammars/b_global grammars/f_folders/e_track folders history.txt deleted file mode 100644 index d9610b2..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/f_folders/e_track folders history.txt +++ /dev/null @@ -1,34 +0,0 @@ -Track folders history - -With a special option *track folders history*, set to a number, this last number of visited folders will be remembered. - -At each folder command, but also every second, the active folder, either in an Explorer window ("This computer window") or in a file dialog (like File open or File Save As) will be caugth and put in a list. - -At the command *recent folders* the list is displayed and with *choose #* you can make your choice. - - Wishes: -Future wish would be to have a background window that can display the recent folders list all the time. The I could implement the command *recent folders #*. Anybody who can make such a window, either in pywin32 of in wxPython? Or maybe in another way? - - Implementation - --In the configuration file _folders.ini, you can set the variable *track folders history* to the number of items you want to have in your list: - -:CODE: -[general] -(...) -track folders history = 20 -:: - -Set to 0 or delete the option if you want to switch it off. -From then the folders you call or visit manually are tracked. - --The grammar folder uses the setTimerCallback function of NatLink, to visit the function manageRecentFoldersList each second. This time can be adjusted of course. - --With the command *recent folders* a messagebox is shown with the list of recent folders. A special grammar *natspeak_dialog.py* handles this window. With *choose #* you can choose your option, or you can Cancel the window with *OK* or *Cancel*. - --The *natspeak dialog* grammar (recent folders dialog) extracts information from the _folders grammar, so it knows how many numbers it should put in the {number} list. --This *natspeak_dialog* grammar is a Unimacro IniGrammar, and can be configured and for example translated. This has been done into Dutch. Simply say *edit natspeak dialog* (only after the dialog window has been displayed, otherwise the grammar is not loaded) to change things or say *show natspeak dialog* to show the options. (In Dutch *bewerk natspeak dialoog* of *toon natspeak dialoog*) - - - - diff --git a/website unimacro/source/4_grammars/b_global grammars/f_folders/f_remember.txt b/website unimacro/source/4_grammars/b_global grammars/f_folders/f_remember.txt deleted file mode 100644 index 7e85838..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/f_folders/f_remember.txt +++ /dev/null @@ -1,41 +0,0 @@ -Remember folders, files and websites. - -Folders to be called can be defined in the [folders] section of your _folders.ini configuration file. - -But it can also be done via the *remember* action, in combination with the "this folder" or the "sub folder" commands. - -Whenever you are in an explorer or file dialog window, you can either: --click on a folder and say "this folder remember", or --say "sub folder subfoldername remember". - -You can also position the mouse above the wanted folder and say "here folder remember" - -For the second possibility you need to set the "automatic track folders" to true: - -:CODE: -[general] -automatic track folders = T -:: - -After this command, you get a dialog window, in which you can specify the wanted spoken name. - -Click on OK or press enter to confirm ("click OK" regrettably does not work in this dialog). - -The folder with your wanted name is put into the [folders] section of your config file. - - Files: -For files in a directory the same applies, but without the word "sub", and without extension: "file filename remember" or "this file remember" (or "here file remember"). - -You need to set "automatic track files" and also you can specify the wanted file extensions: - -:CODE: -[general] -automatic track files = T -track file extensions = .py; .doc; .xls; .txt; .ini; .jpg; .jpeg; .png; .docx; .xlsx -:: - - - - - Websites: -And likewise for a website you are visiting: "this website remember". diff --git a/website unimacro/source/4_grammars/b_global grammars/f_folders/folders.ini b/website unimacro/source/4_grammars/b_global grammars/f_folders/folders.ini deleted file mode 100644 index 3c0cbff..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/f_folders/folders.ini +++ /dev/null @@ -1,26 +0,0 @@ -[actions] -new page = 16 May 2006 - - -[details] -new page = 16 May 2006 - - -[environmentvariables] -new page = 07 Jan 2008 - - -[index] -new index = 16 May 2006 - - -[remember] -name = remember - - -[trackfoldershistory] -name = trackfoldershistory - - -[virtualdrives] -new page = 16 Oct 2007 diff --git a/website unimacro/source/4_grammars/b_global grammars/f_folders/index.txt b/website unimacro/source/4_grammars/b_global grammars/f_folders/index.txt deleted file mode 100644 index 114067a..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/f_folders/index.txt +++ /dev/null @@ -1,227 +0,0 @@ -Switching to folders, opening files, websites - -:xx: --link(http://youtu.be/Ucbb09ZfG9k,"view the *demo movie* (4.5 minutes)") -:en: - -With the grammar *folders* (module file *_folders.py*) you switch to one of your predefined drives, folders or files or to one of your favourite websites. - -You can also call subfolders or files of: --Specified directories; see bottom of link(details.html, details), and: --If a *This computer window* or a *Open* or *Save as* dialog is active, the folders and files of the current directory are available. - -The behaviour is different for different groups of windows: --If you are in a dialog window (Open, Save As) you switch to the wanted folder inside this window. --If you are outside a dialog window, the desired folder is opened into a "This Computer" (or explorer) window (See link("details.html", "more details") for this folders switching strategy). --With the additional command word *paste* you can print the path of the folder or file to your active application --With the additional command word *new* you can open a new "This Computer" window. - -You can show the grammar with the command *show folders*. With *edit folders* you can change your *folders* list, *files* list or other parameters of the grammar. - - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:comment - -:ROW:folder {folderlist} -:COL:Go to one of the folders in the folderlist - -:ROW:sub folder {subfolders} -:COL:Go to one of the sub folders in the current folder or file dialog -:ROW:sub folder {subfolders} remember -:COL:Remember the named subfolder for future direct calling. See link(remember.html, remember). - -:ROW:website {websitelist} -:COL:Go to one of the websites in the list (it is opened in your default browser) - -:ROW:file {filelist} | {subfiles} -:COL:Go to one of the files in the filelist (in your ini file) or files in the current folder (see at bottom) -:ROW:file {subfiles} remember -:COL:Remember the named (sub) file for future direct calling. See link(remember.html, remember). - -:ROW:this (folder|file|website) remember -:COL:Remember the selected folder, file, or visited website for future direct calling. See link(remember.html, remember). - -:ROW:drive {letter} -:COL:Go to one of the drives mentioned in the "letters" list -:ROW:folder up [1-10] -:COL:Move up one or more folders up in the hierarchy. Different behaviour for dialog windows, this computer/explorer, Internet Explorer and Firefox -:ROW:folder{folderlist} {folderoptions}+ -:COL:Do one or more additional actions with the folder -:ROW:file {filelist} {fileoptions}+ -:COL:Do one or more additional actions on the file -:ROW:drive {letter} {folderoptions}+ -:COL:Do one or more additional actions (see below) - - - -:ROW:(show | edit) folders -:COL:show or edit the data for this grammar - -:ROW:on {letters} -:COL:special trick for multiple drives, having the same structure. (link("details.html", "see details") - -:: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:folder options -:COL:explanation - -:ROW:new -:COL:open always in the new "my computer" window - -:ROW:explorer -:COL:find or open in a Windows Explorer window (or 2xExplorer if defined) (not working at the moment) - -:ROW:paste -:COL:paste the folder name at the place of the cursor - -:ROW:maximise -:COL:maximise the window after opening or activating - -:ROW:restore -:COL:restore the window after opening or activating - -:TABLE firstcoldifferent=1, border=1: -:HEADING:file options -:COL:explanation - -:ROW:paste -:COL:paste the file name at the place of the cursor - -:ROW:maximise, restore -:COL:maximise, restore the window after opening or activating - -:ROW:edit | print | open -:COL:open the file in *open*, *print*, *edit* mode. (*open* is the default, except for .py files, they have *edit* as default) - -:ROW:on {letters} -:COL:special trick for multiple drives, having the same structure. (link("details.html", "see details")) -:: - - - - - Using environment variables -In the definition of folders, files and virtual drives you can now use environment variables like *%HOME%*, *%PROGRAMFILES%* or *%APPDATA%*. It is also possible to use *~* instead of *%HOME%*. - -See -link("environmentvariables.html", "the page about using these environment variables"). - - - When editing your folders you will see the following inifile sections: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:section -:COL:comment - -:ROW:files -:COL:Here you can define your _filelist_. Delete all the unwanted entries, and enter a word (spoken form) on the left, and the filename on the right. You can make use of *virtualdrives* (below) and of entries from the folders list. - -*/* is translated into *\*. - -:ROW:folders -:COL:Here you can define your _folderlist_. Delete all the unwanted entries, and enter a word (spoken form) on the left, and the folder name on the right. You can make use of *virtualdrives* (below) - -:ROW:general -:COL:options to tune this grammar, see below -:: - -The options *start this computer* and *start windows explorer* now obsolete. - - -:TABLE firstcoldifferent=1, border=1: -:ROW:grammar words -:COL:Here you can define your synonyms, or translations for this grammar - -:ROW:grammar name -:COL:Here you can define the name of the grammar - -:ROW:letters -:COL:List of drive letters which can be used in the *drive* command, and also on the additional *On {letters}* feature (link("details.html", "see details") - -:ROW:sites -:COL:A private (Quintijn) additional feature, link("details.html", "see the details") if you are curious. - -:ROW:virtualdrives -:COL:For folders that have some subfolder entries, you can make a common start. -A two letter combination serves as a link("virtualdrives.html", "*virtual drive*"). Delete unwanted entries. Virtual drives can be recursive. - -:ROW:websites -:COL:here you can define your own *websitelist*. - -Note you can most often skip *http://* and even *www.*. See you the examples in inifile -:: - - - Options in section *general* of configuration file: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:general -:COL:possible value -:COL:comment -:ROW:2xexplorer -:COL:c:\program files\2xexplorer\2xexplorer.exe -:COL:Probably obsolete option -:ROW:automatic track files -:COL:T -:COL:Switch on (T) or off (F, or leave away). T means that files of a folder can be tracked automatically and put in the files list -:ROW:automatic track folders -:COL:T -:COL:Switch on (T) or off (F, or leave away). - -T means that sub folders of a folder can be tracked automatically and put in the folders list. Beware of too long lists! -:ROW:child behaves like top -:COL:specify if a child window should behave as top window -:COL:Should be configured like in actions.ini, see link(/features/actions/actionsconfigurationfile.html, actions configuration file) -:ROW:citrix apps = -:COL:a special app name -:COL:Special option for only printing a folder path or file path instead of opening it. -:ROW:ignore file patterns -:COL:~*; .* -:COL:for ignoring files in the automatic track files option -:ROW:initial on -:COL:1 -:COL:Unimacro option for always switching on this grammar. See _control for more information. -:ROW:start this computer -:COL:HW start, My Computer -:COL:Possibly obsolete -:ROW:start windows explorer -:COL:HW start, Windows explorer -:COL:Starts in some cases an explorer window -:ROW:subversion executable -:COL:C:\Program Files\TortoiseSVN\bin\TortoiseProc dot exe -:COL:For special subversion command options. -:ROW:top behaves like child -:COL:specify if a top window should behave as child -:COL:Should be configured like in actions.ini, see link(/features/actions/actionsconfigurationfile.html, actions configuration file) -:ROW:track file extensions -:COL:.py; .docx; .xlsx; .txt; .ini; .jpg; .jpeg -:COL:Restrict automatic file tracking for a specific directory to these file extensions. -:ROW:track files - -:COL: -:COL:specify the virtual drives on which you want automatic file tracking -:ROW:track folders history -:COL:10 -:COL:an experimental option to "remember" a recent folders list -:ROW:track folders virtualdrives -:COL:md; um; qh; mdoud -:COL:This is the most useful of the special options: subfolders in these "virtualdrives" are tracked and put into the folders list. -:: - - - Subfolders or files in an opened folder or file dialog - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:comment - -:ROW:subfolder {subfolders} -:COL:the subfolders of the current folder are put in the list -:ROW:file {files}|{subfiles} -:COL:the files list is defined by yourself, for frequently used files. - -the subfiles list is filled for all the files of the current folder, when they match one of the given extensions. dots, hypens etc. are skipped, extensions are NOT spoken. - -:: diff --git a/website unimacro/source/4_grammars/b_global grammars/f_folders/xplorer2.png b/website unimacro/source/4_grammars/b_global grammars/f_folders/xplorer2.png deleted file mode 100644 index 62c8563..0000000 Binary files a/website unimacro/source/4_grammars/b_global grammars/f_folders/xplorer2.png and /dev/null differ diff --git a/website unimacro/source/4_grammars/b_global grammars/g_general/c_actions.txt b/website unimacro/source/4_grammars/b_global grammars/g_general/c_actions.txt deleted file mode 100644 index 6fa4ff2..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/g_general/c_actions.txt +++ /dev/null @@ -1,18 +0,0 @@ -Actions used by grammar_general - -The *search* rule uses link("/features/actions/index.html", "actions"), - which can be specialised for different programs. - -The basic action is SEARCH, which must be called with a direction ('up' or 'down') and an optional text. The rule in the grammar _general uses the form with a text. - -The following meta actions are used inside the action SEARCH (with text): - -:CODE: -start search (default {ctrl+f}) -start back search (default not there, not in use yet) - -search go (after filling in the characters to search for, default {enter} -:: - - - diff --git a/website unimacro/source/4_grammars/b_global grammars/g_general/general.ini b/website unimacro/source/4_grammars/b_global grammars/g_general/general.ini deleted file mode 100644 index b35fe19..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/g_general/general.ini +++ /dev/null @@ -1,6 +0,0 @@ -[actions] -new page = 14 Feb 2006 - - -[index] -new index = 14 Feb 2006 diff --git a/website unimacro/source/4_grammars/b_global grammars/g_general/index.txt b/website unimacro/source/4_grammars/b_global grammars/g_general/index.txt deleted file mode 100644 index 021142f..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/g_general/index.txt +++ /dev/null @@ -1,111 +0,0 @@ -Description of the _general grammar - -In this grammar a lot of miscellaneous commands, (including some test commands) are brought together. - - Searching for characters - -For starting a search, or a discrete continuation, this command can be used. - -The commands work together with the continuous search commands as described in -link("/grammars/globalgrammars/repeat/searching.html", "repeat/searching"). See there for more information! - -This is a vulnerable mechanism, should be investigated more. - - Highlight - -:CODE: -highlight -:: - -Searches for the dictated text. Started as a one shot application for Shane Delmore. - -The meta actions bold(startsearch) and bold(startgo) possibly need fine tuning for some applications, see link(/features/actions/metaactions.html, *meta actions*). - - Format variables - -:TABLE firstcoldifferent=1, border=1: -:HEADING:Command -:COL:result -:ROW: -camel <dgndictation> -:COL: "camel top down" gives "topDown" -:ROW: -camel back <1..5> -:COL: -the last words are cameled -:: - -You need to specify which formatting is desired, you can choose your own spoken word like "camel" above. - -You do this by editing the _general.ini config file, say "edit general", and fill in in section: -:CODE: -[formatvariable] -camel = camel -:: - --The second word, after the bold("="), is the trick, which must be taken literally from the table below. --The spoken word is before the bold("="). - -:TABLE: -:HEADING:the trick -:COL:the action performed -:ROW:camel -:COL: var like this -> varLikeThis -:ROW:studly -:COL:var like this -> VarLikeThis -:ROW:dotword -:COL:var like this -> var.like.this -:ROW:jive -:COL:var like this -> var-like-this -:ROW:score -:COL:var like this -> var_like_this -:: - - - Task switching - -Is now moved to the link("/grammars/globalgrammars/tasks/index.html", "grammar *_tasks*") - - extracting information - -:TABLE firstcoldifferent=1, border=1: -:HEADING: command -:COL: gives - - - -:ROW:give window info|information -:COL: this information about the active window - - -:ROW:give user info|information -:COL: gives information about the current user, including BaseModel and BaseTopic - -:ROW:give Unimacro info|information -:COL: gives information about Unimacro, version, base directory - -:: - - Hyphenate phrase (capitalized) - -You can turn the last spoken phrase (or selected text), the last word or the last several words into all-capped hyphen separated text: -(command will be inserted in release 3.7foxtrot, and 3.8) -:TABLE firstcoldifferent=1, border=1: -:HEADING: command -:COL: gives - - - -:ROW:Hyphenate phrase -:COL:Hyphenates the last spoken phrase OR the selected text -:ROW:Hyphenate last (word | (2..5) words) -:COL:Hyphenates the last word or the last several words -:: - -Example: -:CODE: -John Smith becomes John Smith J-O-H-N S-M-I-T-H -:: - -Note: -The clipboard is used by this macro, but previous contents are saved at the beginning of the macro and at the end restored again. diff --git a/website unimacro/source/4_grammars/b_global grammars/g_lines/b_Implementation details.txt b/website unimacro/source/4_grammars/b_global grammars/g_lines/b_Implementation details.txt deleted file mode 100644 index e5fafc2..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/g_lines/b_Implementation details.txt +++ /dev/null @@ -1,127 +0,0 @@ -Implementation details - - actions.ini - -In the inifile *actions.ini* the implementation for different programs is realized. When you call *edit actions* this file will open for inspection and editing. - - gotoline n - -The basic action for jumping to a line is the link(/features/actions/metaactions.html, meta-action) *gotoline n*, called from the lines grammar with the wanted line number for *n*. - -In the default section you will find: - -:CODE: -[default] -(...) -gotoline n = {Ctrl+ExtHome}{ExtDown n}{ExtUp} -:: - -So when there is no other way to jump to a line, you simply go to the top and then down the needed number of lines. - -Here are some applications which do it another way: - -(*code* is the program name of Visual Studio) - -:CODE: -[code] -gotoline n = {ctrl+g}; n{enter} -realhome = {end}{home}{home} - -[emacs] -gotoline n = EMACS goto-line; n{enter} - -[excel] -gotoline n = {ctrl+g}; n:n{enter} - -[komodo] -gotoline n = {Ctrl+g}; W; n;{enter} -realhome = {alt+home} - -[pythonwin] -gotoline n = {ctrl+g}; n{enter}; {home} - -[textpad] -gotoline n = {ctrl+g}; n{enter} - -[uedit32] -gotoline n = {ctrl+g}; n{enter} - -[win32pad] -gotoline n = {ctrl+g}; n{enter} -:: - -Note: the excel action is overridden by the function *metaaction_gotoline* in the link(/features/actions/actionclassesforapplications.html, excel actions class module). - - - line numbers modulo hundred - -When you set this option to true in the _lines.ini file (say *edit lines*): - -:CODE: -[general] -line numbers modulo hundred = T -:: - -You will be able to use this feature for Excel, win32pad and Visual Studio Code (New, February 2021). - -The clue is in the link(/features/actions/actionclassesforapplications.html, actions classes), which can provide, per application, the calling grammar with the current line number from the function *getCurrentLineNumber*. If this function does not return a valid number, this option is not available for the foreground application, as for example Komodo. - - Visual Studio (2021) - -For Visual Studio, you need to add the extension *copy current line number to clipboard*, and attach the shortcut key *{ctrl+alt+c}* to this extension. - -The file *code-actions.py* in the folder *actionclasses* of Unimacro does the work. See there for more detailed instructions. - - Komodo IDE -For this commercial program, the trick now also works (February 2021): - -You need to make a "*Userscript*" in Komodo: --Go to View, Tabs & Sidebars, Toolbox --Click on the Tools pictogram (right top) and choose *New Userscript* --Give it a name, eg "copy current line number", keep Javascript. --Give it the Key Binding *Alt+Shift+C*. (When you need another Key Binding, you also need to edit komodo-actions.py in the folder actionclasses.) - -Now paste the following code in the Userscript: -:CODE: -var editor = require("ko/editor"); -var linenum = editor.getLineNumber(editor.getCursorPosition()); -var clipboard = require("sdk/clipboard"); -clipboard.set(linenum.toString()); -:: - --Probably you need to restart Dragon, and you can try the feature. - --Note: when you want set/clear debug information (about the timing issues), change line 48 of the file *komodo-actions.py* in the folder *actionclasses* (debug=1 or debug=0). - - Emacs (special!) -Note: for Emacs the line module hundred trick can be implemented by inserting the correct function, *mdl-goto-line-mod100* instead of *goto-line*. - - - - simpleactions - -These are the actions like <<copy>>, <<cut>>, <<delete>>, <<duplicate>>, which can be investigated in the actions.ini file. - - - move copy actions - -These actions require some more tuning in some applications. Details will follow. - - Paragraph actions - -These are tested in Word, and basically meant for this program. - -In the actions.ini file there are now analogous to "selectdown": "selectparadown" and to "selectline" there is "selectpara": - -:CODE: -selectpreviouspara = {ctrl+up}{shift+ctrl+up} -selectpara = {ctrl+down}{ctrl+up}{shift+ctrl+down} -selectparadown n = {shift+ctrl+down n} -selectparaup n = {shift+ctrl+up n} - -:: - -These new meta-actions are found in the file sample_ini/actions.ini (March 2016, QH) - - - diff --git a/website unimacro/source/4_grammars/b_global grammars/g_lines/index.txt b/website unimacro/source/4_grammars/b_global grammars/g_lines/index.txt deleted file mode 100644 index 2097a1d..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/g_lines/index.txt +++ /dev/null @@ -1,145 +0,0 @@ -Going to and doing actions with lines - -With the grammar *lines* you can easily jump to lines, numbered or relative to the current line, and perform additional actions. - --Lines can be selected, with or without line number --Lines (numbered or relative) can have an additional action, like *delete* --Lines can be moved or copied up or down or to another numbered line --Selected lines can have the same actions by the keyword *THAT* --For some programs: jump to *line numbers modulo hundred* --Add some paragraph (para) commands (March 2016) - -This grammar relies heavily on -link(/features/actions/index.html, *actions*), -because the keystrokes that perform the different actions are very different across different applications. Implementations are now made or tried for Win32Pad, Excel, Emacs, Pythonwin, Komodo and UltraEdit. - - The grammar (basic, without translations or synonyms): - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:comment - -:ROW:line {number} -:COL:Jump to the line. Relies on the grammar *number*, which is tested in English and Dutch - -:ROW:line {number} {action} -:COL:Do an additional action, like *select*, *cut*, *copy*, *paste*, *paste over*, *duplicate* (see table below) - -:ROW:line {number} through {number} [{action}] -:COL:select or do action on more (numbered) lines (you can change "through" to "to" with *edit lines* if you wish)'], -:ROW:line {number} plus {count} [{action}] -:COL:select or do action on more lines (first numbered) - -:ROW:{count} lines {action} -:COL:Do action for more lines - -:ROW:next|previous line [{action}] -:COL:goto or do action for next or previous line, so after or before the current line - -:ROW:next|previous {1-20} lines {action} -:COL:Do action for more lines, after or before the current line - -:ROW:{line definition} copy|move up|down {count} -:COL:copy or move the lines up or down - -:ROW:{line definition} copy|move to {number} -:COL:copy or move the lines to the specified line number - -:ROW:THAT {action} -:COL:instead of {line definition} also the keyword *THAT* can be taken -:: - - - Para actions, basically for Word: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:comment - -:ROW:{count} paras {action} -:COL:Do action for more paragraphs - -:ROW:next|previous para {action} -:COL:Goto or do action for next of previous para, so after or before the current para - -:ROW:next|previous {1-20} paras {action} -:COL:Do action for more paras, after or before the current para - -:ROW:THAT {action} -:COL:instead of {para definition} also the keyword *THAT* can be taken -:: - - - Actions - -Here is part of the list *simpleactions*, corresponding to *{action}* in above table: - - -:TABLE firstcoldifferent=1, border=1: -:HEADING:spoken form -:COL:action -:COL:comments - -:ROW:copy -:COL:<<copy>> -:COL: the copy action is nearly always {ctrl+c} - -:ROW:copy to DragonPad -:COL:HW copy that to DragonPad -:COL: actions do not have to be keystrokes - -:ROW:cut -:COL:<<cut>> -:COL: - -:ROW:delete -:COL:<<delete>> -:COL: - -:ROW:duplicate -:COL:<<duplicate>> -:COL: - -:ROW:edit -:COL:HW edit that -:COL: link this grammar to the grammar *edit* - -:ROW:emacs -:COL:HW edit that python code, 'link to the grammar *edit*, see more information about see -link(/features/cooperationwithvoicecoder/index.html,*connection with voicecoder *), including a little demo movie. A bit obsolete end 2013. -:ROW:end -:COL:<<endafterselection>> -:COL: leave the cursor at the end of line - -:ROW:paste -:COL:<<homeafterselection>><<paste>> -:COL: paste, but prevent overwriting the selection here - -:ROW:paste over -:COL:<<paste>> -:COL: paste over the selection - -:ROW:select -:COL: -:COL:if you go to one line, this action selects the line. When you want more lines, this action does nothing extra. - -:ROW:(un)comment -:COL:{alt+3} and {alt+4} -:COL: only for Pythonwin -:: - - Line numbers modulo hundred - -For some programs, who can "return" the current line number to this grammar with introspection, you can call "line numbers modulo hundred". - -For example, when you are in line 1375, with "line eighty", you go to line 1380. - -This feature has been implemented for a limited number of applications: *win32pad*, *excel*, *Visual Studio* (new, February 2021) and *Komodo* (a commercial IDE program, also new February 2021). See: - --link(/grammars/globalgrammars/lines/implementationdetails.html, implementation details) for this grammar and --link(/features/actions/actionclassesforapplications.html, programming details) about the action classes modules. - - Introspection - -With the commands *show lines* and *edit lines* you can inspect the grammar and change things. - diff --git a/website unimacro/source/4_grammars/b_global grammars/g_lines/lines.ini b/website unimacro/source/4_grammars/b_global grammars/g_lines/lines.ini deleted file mode 100644 index 2b1e0e7..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/g_lines/lines.ini +++ /dev/null @@ -1,6 +0,0 @@ -[implementationdetails] -name = implementationdetails - - -[index] -new index = 16 May 2006 diff --git a/website unimacro/source/4_grammars/b_global grammars/globalgrammars.ini b/website unimacro/source/4_grammars/b_global grammars/globalgrammars.ini deleted file mode 100644 index 41ce0c6..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/globalgrammars.ini +++ /dev/null @@ -1,47 +0,0 @@ -[brackets] -new menu = 05 Jan 2008 - - -[edit] -new menu = 05 Jan 2008 - - -[folders] -new menu = 05 Jan 2008 - - -[general] -new menu = 05 Jan 2008 - - -[keystrokes] -new menu = 05 Jan 2008 - - -[lines] -new menu = 05 Jan 2008 - - -[modes] -new menu = 03 aug 2008 - - -[number] -new menu = 05 Jan 2008 -nice name = Number grammar - - -[oops] -new menu = 05 Jan 2008 - - -[repeat] -new menu = 05 Jan 2008 - - -[tags] -new menu = 05 Jan 2008 - - -[tasks] -new menu = 05 Jan 2008 diff --git a/website unimacro/source/4_grammars/b_global grammars/h_tasks/b_get task and doc positions.txt b/website unimacro/source/4_grammars/b_global grammars/h_tasks/b_get task and doc positions.txt deleted file mode 100644 index df3de5e..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/h_tasks/b_get task and doc positions.txt +++ /dev/null @@ -1,83 +0,0 @@ -Getting the taskbar and document positions - --The taskbar positions are global, --The document positions are application specific. - - Get Taskbar positions -:TABLE firstcoldifferent=0: -:ROW colspan=2: -Before you can use the commands below, the correct mouse positions must be collected, once. - -I now prefer the taskbar at the bottom, with tasks stacked, like: - -image(task numbers on taskbar.jpg, displayscale=0.2) - -But other positioning works too. - -:ROW colspan=2: -:H3:Getting the proper mouse positions - --Position the mouse on the first task, and say the command _get task position one_. --Position the mouse on one of the other tasks (eg 5) and say _get task position n_ (in this case *five*). The difference between the mouse positions of each task is now calculated. -:: - - Get Document positions - -:TABLE firstcoldifferent=0: -:ROW colspan=2: -For applications that you want to use, eg Chrome or an IDE (in this example Komodo), youshould now get the correct mouse positions. This needs to be done once, as long as the task remains in the same place. - -I have the chrome documents at the top, of course, and the Komodo documents on the left. On paper strips I have marked the numbers for the different documents. For Chrome the tabs shrink when there are more tabs on, so you have to smuggle a bit. - - -:ROW: -image(document numbers chrome.jpg, displayscale=0.3) - -Example document numbers chrome (above) and Komodo (right) -:COL:image(document numbers komodo.jpg, displayscale=0.2) -:ROW colspan=2: --Be sure the application is in focus! --Position the mouse on the tab of the first document, and say the command _get document position one_. --Position the mouse on the tab of one of the other documents (eg 5) and say _get document position n_ (in this case *five*). -:: - - - - Get the icon position - -Note: I hardly ever use this command any more. If there are users that have profit of this option, please let me know! --For the icon commands and for getting the taskbar menu you need the position of the computer clock in the system tray: position the mouse there and say _task position clock_ - - How is it stored? - -These data are stored in the configuration file *actions.ini*. Say *edit actions* to inspect. This means that speech profiles of different languages can use the same settings. - -Moreover, other grammars and even Vocola commands can use these positions via the -link("/features/actions/shorthandcommands.html", "*unimacro shorthand commands") *TASK n* and *DOCUMENT n*. - -But note currently these two commands are not in the compatibility file Unimacro.vch. - -:CODE: -[positions] -clockx = -40 -clocky = 998 -mousex1 = 122 -mousexdiff = 69 -mousey1 = 1030 -mouseydiff = 0 - - -[positions chrome] -mousex1 = 75 -mousexdiff = 146 -mousey1 = 47 -mouseydiff = 0 - - -[positions komodo] -mousex1 = 97 -mousexdiff = -1 -mousey1 = 168 -mouseydiff = 27 -:: - diff --git a/website unimacro/source/4_grammars/b_global grammars/h_tasks/c_configuration.txt b/website unimacro/source/4_grammars/b_global grammars/h_tasks/c_configuration.txt deleted file mode 100644 index 91d343c..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/h_tasks/c_configuration.txt +++ /dev/null @@ -1,95 +0,0 @@ -Configuration of tasks grammar - --Say _edit tasks_ to edit the properties of this grammar. - - General options - -In the section [general] you can set a number of options: - -:TABLE firstcoldifferent=0: -:ROW:center mouse = T -:COL:Means after a task switch the mouse is positioned about 30% from the left top. (If set to *F* or *0* the mouse is not positioned at all.) - -:ROW:initial on = 1 -:COL: meaning this grammar is switched on when NatSpeak (and NatLink including Unimacro) starts. - -:ROW:max icon number = 15 -:COL: the number of icons you can call in the system tray. Set to *0* if you cannot want to call icons at all. - -:ROW:max task number = 30 -:COL: the number of tasks you want to call with the *task #* command. Set to *0* if you do not want to call tasks by numbers at all. - -:ROW:max window number = 9 -:COL: the number of windows inside an application you want to address. Set to *0* if you do not want to call windows inside an application with this command. - -:ROW:switchapps = voice coder; pythonwin; emacs; dragonpad; edit; idle -:COL: - -:ROW:enable search commands = T -:COL:special, search selection or word under the cursor in the wanted application eg *search two* or *search chrome*. -:ROW:split left right = 0.65
-split top down = 0.6 -:COL:specify the proportion of the *task position* commands, eg *task two position right* takes less than half a screen and *task chrome position topleft* takes more than half a screen in both directions. -:: - - - Task starting/switching by name - -You can set the list of applications you want to call with *task application* in the section -[application]. - -Examples: - -:CODE: -[application] -calc = calc -calculator = calc -command = cmd -dragonpad = dragonpad -edit = edit -emacs = emacs -email = outlook -excel = excel -firefox = firefox; 2 -idle = idle -internet = iexplore -komodo = komodo; 3 -messages = messages -notepad = notepad -pythonwin = pythonwin -voice code = voicecode -voice coder = voicecode -winpad = win32pad -word = winword; 4 -powerpoint = powerpoint -:: - --Applications are further specified in the link(/features/actions/bringupdetails.html, *actions.ini*) configuration file, OR referenced to by a number, the task number on the taskbar. -- This number trick is only valid for fixed positions of tasks/applications on the taskbar. Separate the number and the application name by a *;*. Het - --The words on the right-hand side are builtin programs for Windows (like *outlook*), or are resolved in the link(/features/actions/actionsconfigurationfile.html, *actions.ini configuration file*). Each application that needs more tuning has there its own [bringup app] section. -- In the case where the numbers trick is used, the name MUST match the application name. - --For example when *edit* is set to komodo, you can call *task edit* to bring komodo in front. *task komodo* works also in this example. For this *edit* example you cannot use the number trick. - -:CODE: -[bringup edit] -name = komodo - -[bringup komodo] -name = komodo -:: - - - Positioning the mouse after a task action - -With the variable *center mouse* (in section *general* of the tasks inifile, say *edit tasks* to control this variable) you can enable or disable this feature. It is demonstrated in the demo movie. - --With *centre mouse = T* (or 1) the mouse is positioned 30% from the top left position of the active window. --With *centre mouse = F* (or 0) this positioning is not done. - - - - - - diff --git a/website unimacro/source/4_grammars/b_global grammars/h_tasks/document numbers chrome.JPG b/website unimacro/source/4_grammars/b_global grammars/h_tasks/document numbers chrome.JPG deleted file mode 100644 index 02c0697..0000000 Binary files a/website unimacro/source/4_grammars/b_global grammars/h_tasks/document numbers chrome.JPG and /dev/null differ diff --git a/website unimacro/source/4_grammars/b_global grammars/h_tasks/document numbers komodo.JPG b/website unimacro/source/4_grammars/b_global grammars/h_tasks/document numbers komodo.JPG deleted file mode 100644 index 5454b2f..0000000 Binary files a/website unimacro/source/4_grammars/b_global grammars/h_tasks/document numbers komodo.JPG and /dev/null differ diff --git a/website unimacro/source/4_grammars/b_global grammars/h_tasks/index.txt b/website unimacro/source/4_grammars/b_global grammars/h_tasks/index.txt deleted file mode 100644 index a5eb054..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/h_tasks/index.txt +++ /dev/null @@ -1,225 +0,0 @@ -Switching to tasks, windows inside a task, documents, monitors and icons - -A few (a bit old) video's demonstrate task switching and translating this grammar into another language: - --link(http://youtu.be/UShjPsC5VB8,"Nederlands, bekijk de korte *demo video over het schakelen tussen taken* (4.1 minutes)") (merk op het commando "taak positie" is nu" "geef taak positie".) --link(http://youtu.be/oX2LISi4FDs,"view the *demo movie task/icons/window switching* (4.5 minutes)") (Note the Window command is a bit different now, and "Task position" is now "get task position".) --link(http://youtu.be/DvYL780_-l4,"view the *demo movie translating the grammar into Dutch* (3.3 minutes)") - - Terminology - --With *task* an application on the taskbar is meant. --With a *window*, when switching tasks, one of the windows of an application is meant. --With a *document*, in multiple documents or tabs applications (like Chrome), a tab of this application is meant. --With an *icon* a little image in the system tray is meant (not very much in use, I believe) --With a *monitor* one of your displays is meant. - - Switching monitors --Added November 2017 -:TABLE firstcoldifferent=1, border=1: -:HEADING width=40%:command -:COL:comment - -:ROW:*monitor {monitors}* -:COL:Switch to one of the monitors in the list, click at the top of the screen and goto to (0.3, 0.3) of the monitor. -:: - -When you have for example two monitors, you can configure them with something like: - -:CODE: - -[monitors] -one = 1 -left = 1 -right = 0 -two = 0 -:: - -With trial and error you should find out which one is left and which one is right. In this example the right monitor appears to be 0. - -This feature uses functions from the module *monitorfunctions.py*. - - - Taskbar switching by position - -When the tasks positions on the taskbar are known (see below), so the grammar knows about the task positions, then the application numbers of fixed programs are always the same, and they can be called by number and sometimes by name. - - Task switching by name --You can also define application names, to call with the *task* command, if they are always on the same position on the taskbar see below and link(configuration). --Within a session you can give a window (possibly one of many inside a stacked application) a name, and return to this window by saying *task <name>*. - - Task switching by number -This can be implemented in two ways: --By giving the positions of the first task on the taskbar and one of the others. These positions are remembered until you change the placing of your taskbar. See link(get the taskbar positions). --By connecting to link(/grammars/global/shownumbersplus, Show Numbers Plus!), which always displays the taskbar numbers. See there for more details, in the rest of this page the first method is assumed. - - - Switching tasks and doing task actions - - -:TABLE firstcoldifferent=1, border=1: -:HEADING width=40%:command -:COL:comment - -:ROW:*task {number}* -:COL:switch to the numbered task on the task bar - -:ROW:*task {application}* -:COL:switch to a named application, through the -link("/features/actions/shorthandcommands.html", "BRINGUP") action. - -:ROW:*task back* -:COL:switch to the previous task (just { alt+tab }) - -:ROW:*task give name <dgndictation>* -:COL:give the application in front the name you dictate. This can also be done in combination with all the other task specifications, like *task 3 first window give name abacadabra*. - -:ROW:*task {dictated name}* -:COL:The name you defined can be used the same way as all the other task commands, except for stacked windows - -:ROW:*window <1-20>* | *<firstlast> window* -:COL:-if in a stacked taskbar window, select the desired window (see below for more examples) --if in an application, select the sub-window, if implemented. - -:ROW:*task <specification> {taskaction}* -:COL:go to the task, and perform an additional action, like *close* | *maximise* | *minimise* | *other display* | *tile* - -:ROW:*task {taskaction}* -:COL:perform the task action on the active window. So *task close* is identical to the built-in command *close window*. - --special actions for stacked windows: *close all | close multiple*, can also be turned around (in other languages this may be easier to speak): *all close | multiple close*. With *multiple*, you can also define as *others*, all windows except the first in a stack are closed. - --For task positioning and resizing, see below -:: - - Task positioning commands (not checked recently) - -:TABLE firstcoldifferent=1, border=1: -:HEADING width=40%:command -:COL:comment - -:ROW:*task (move|stretch|shrink|position) ({direction}|{angle}) [further specification]* -:COL:Move or resize the window in one of the directions or a specified angle. How much is given (optional) in [further specification]. -:: - - Stacked tasks - -:TABLE firstcoldifferent=1, border=1: -:HEADING width=40%:command -:COL:comment - -:ROW:*task one window {number}* -:COL:switch to sub window of task one -:ROW:*task one {firstlast} window* -:COL:alternative rule, firstlast below -:ROW:*task one first window {taskaction}* -:COL:all these task commands can be followed with an action, for example *close* -:ROW:*task one close all* -:COL:As special action you can include *close all*, with a nearly hard coded action (relying on the mouse pointer still being on the task icon of the taskbar) - -:: - - Switching documents (tabs) inside a task (application) - -Note: see get document position for applications that are relevant. -Note: you can define synonyms for document, eg. doc. Speaks faster. - - -:TABLE firstcoldifferent=1, border=1: -:HEADING width=40%:command -:COL:comment - -:ROW:*document {number}* -:COL:switch to numbered document of the foreground application - -:ROW:*document [{number}] {documentaction}* -:COL:go to the document and do an addional action eg. close, kill, refresh - -:ROW:*(next | previous) document [{documentaction}]* -:COL:the same, but now for a document relative to the current tab. - -:ROW:*(next | previous) {2-20} documents {documentaction}* -:COL:for example close multiple tabs in chrome. -:: - - - - - Notes on {application}: -More details on -link("/features/actions/bringupdetails.html", "BRINGUP details") page. - - Notes on {taskaction}: - --show or edit with *show tasks* and *edit tasks*. --*task other display* now uses the Unimacro Shorthand Command *TASKOD*. See also link(/features/monitorfunctions/index.html, page on monitorfunctions), and link(/installation/inifilestrategy.html, inifile strategy). --*task tile* (or *task n tile*) operates the taskbar shortcut menu. The actions are a bit complicated: *RW* remembers the active window, *TOCLOCK right* opens the shortcut menu on the windows clock, *h* chooses horizontal tiling, and *RTW* activates the window it came from. - - Notes on {firstlast} -This list can have entries like (show or edit with *show tasks* and *edit tasks*): --first=1 --second=2 --last=-1 --before last=-2 - - Notes on {direction} and {angle} (not checked recently) --show or edit with *show tasks* and *edit tasks*. --default directions: *left|up|right|down| leftbottom|lefttop|rightbottom|rightdown| righttop|leftdown|leftbottom* --possible angles: (*0|10| ... |360*) *degrees* - - Notes on (optional) [further specification] (not checked recently): --show or edit with *show tasks* and *edit tasks*. --pixels: (*1, ... , 200*) [*pixels*] (word *pixels* is optional again) --relative: (*10|20| ... |100*) *percent* --centimeters, millimeters, inches: (*1, 2, ... , 20*) (*centimeters|millimeters|inches*) --pixels per inch given in *.ini* file (*_tasks.ini*), in section [general], key *screen dots per inch* (default *90*) - - - Positioning the mouse after a task action - -With the variable *center mouse* (in section *general* of the tasks inifile, say *edit tasks* to control this variable) you can enable or disable this feature. It is demonstrated in the demo movie. - --With *centre mouse = T* (or 1) the mouse is positioned 30% from the top left position of the active window. --With *centre mouse = F* (or 0) this positioning is not done. - - Reaching icons (a bit obsolete) - - -Note: the clock position has to be recorded first, see link(/grammars/globalgrammars/tasks/gettaskanddocpositions.html, get the positions page). - - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:comment - -:ROW:*icon {number}* -:COL:switch to the icon by number - -:ROW:*icon (left|right|up|down) [n]*; -:COL:move relative inside the system tray (left and up are identical, and right and down are identical) - -Sometimes this commands seems not to work, although the focus is on an icon. - -:ROW:*(icon|icon n|icon direction| icon direction n) {iconaction}* -:COL:perform an action on the current icon, or the icon you switch to. - -See the icon actions with *show tasks* or edit them by saying *edit tasks*. -:: - - Managing the Start (obsolete) - - -:TABLE firstcoldifferent=1, border=1: -:HEADING width=40%:command -:COL:comment - -:ROW:*start menu* -:COL:just open the Windows start menu -:ROW:*start menu {startmenucommands}* -:COL:use additional commands, which you can specify in your _tasks.ini configuration file (nearly obsolete in Windows 8) -:: - - - - - diff --git a/website unimacro/source/4_grammars/b_global grammars/h_tasks/numbered tasks.jpg b/website unimacro/source/4_grammars/b_global grammars/h_tasks/numbered tasks.jpg deleted file mode 100644 index 3cc3243..0000000 Binary files a/website unimacro/source/4_grammars/b_global grammars/h_tasks/numbered tasks.jpg and /dev/null differ diff --git a/website unimacro/source/4_grammars/b_global grammars/h_tasks/task numbers on taskbar.JPG b/website unimacro/source/4_grammars/b_global grammars/h_tasks/task numbers on taskbar.JPG deleted file mode 100644 index 068e13f..0000000 Binary files a/website unimacro/source/4_grammars/b_global grammars/h_tasks/task numbers on taskbar.JPG and /dev/null differ diff --git a/website unimacro/source/4_grammars/b_global grammars/h_tasks/tasks.ini b/website unimacro/source/4_grammars/b_global grammars/h_tasks/tasks.ini deleted file mode 100644 index 375ca3a..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/h_tasks/tasks.ini +++ /dev/null @@ -1,10 +0,0 @@ -[configuration] -name = configuration - - -[gettaskanddocpositions] -name = gettaskanddocpositions - - -[index] -new index = 13 Jul 2006 diff --git a/website unimacro/source/4_grammars/b_global grammars/k_keystrokes/g_grammar.txt b/website unimacro/source/4_grammars/b_global grammars/k_keystrokes/g_grammar.txt deleted file mode 100644 index 15e06ef..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/k_keystrokes/g_grammar.txt +++ /dev/null @@ -1,36 +0,0 @@ -The grammar definition - - Basics - -The basic rule should have been: - -:CODE: - exported = ({norepkey} | {repkey} [{count}])+; -:: - - Implementation -Because with these quasi-recursive rules there have been problems in the past (introduced several NatSpeak versions ago) this basic rule has been changed into (and enhanced with the <before> rule): - -:CODE: - exported = [+] ; - = | ; - = ... -:: - - And the further details are, including the <modifier>: rule: - -:CODE: - = [ ] ([] | ); - = {repkey}; - = {count}; - = {character} | {norepkey} | ; - = ( Eff|Function ) {effcount}; - = (Cap | 'All-Caps' | Shift | Control | Alt|halt) + ; -:: - - Lists - -The lists {character}, {effcount} and {count} are filled in the python file. The other lists, {repkey} and {norepkey} are filled from the configuration file, so are user configurable. Even for a specific link("modes.html", "modes"). - - - diff --git a/website unimacro/source/4_grammars/b_global grammars/k_keystrokes/index.txt b/website unimacro/source/4_grammars/b_global grammars/k_keystrokes/index.txt deleted file mode 100644 index 9166b26..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/k_keystrokes/index.txt +++ /dev/null @@ -1,130 +0,0 @@ -Hitting (multiple) keystrokes - -:CODE: -Many improvements in release 4.0. - -WARNING: "_keystrokes" is a powerful grammar, but it can also hit too easily when you do not want so. - -So switch this grammar on when you really use it, and otherwise keep it switched off! -:: - -This grammar was originally designed to provide a multiple keystrokes alternative for DragonDictate. DragonDictate could handle only one word or (keystroke) command in each phrase, but was responding very fast. With the introduction of NaturallySpeaking this responsiveness was much less (slower), so it seemed useful to provide the possibility of saying more keystrokes in one phrase. - -So, with this grammar you can hit multiple keystrokes in one command, *simple*, see first examples below, and *extended*, with an optional mouse click in front, and arbitrary dictation at the end. - - Simple keystrokes, examples: - --Repeatable keys, like *up*, *page down* and *tab*, which can have an optional count (so you can say the *up*, but also *up 3*) and --Non-repeatable keys like *alpha*, *bravo*, *home*, *context menu*. - - - -:TABLE firstcoldifferent=1, border=1: -:HEADING width=40%:command -:COL:produces - - - -:ROW: alpha bravo Charlie delta -:COL:abcd - -:ROW: up right page down two word right three -:COL: silly example moving around the screen - -:ROW:alt foxtrot Oscar -:COL: possible file open command - -:ROW:control papa OK -:COL:print file in one command - -:ROW: home delete three -:COL: go to beginning of line and delete three characters - -:ROW:end of line backspace 5 Zulu -:COL: - -:ROW:word left 2 delete 3 -:COL: go 2 words to the left and delete 3 characters - -:ROW:control (eff|function) one -:COL: show or hide the ribbon in Office (word, excel, outlook, etc) - -:: - - Examples of extended keystrokes: - - -:TABLE firstcoldifferent=1, border=1: -:HEADING width=40%: command -:COL:produces - - -:ROW: here space -:COL: clicks at the place where the mouse is, and insert a space (splitting words) - -:ROW: click backspace -:COL: similar: clicks, and hit the backspace key (merging two words) - -:ROW: here click -:COL: same as "mouse click", same as "click", but only "here" is not allowed - -:ROW: here context menu -:COL: do a right click, so showing the context menu on the place where the mouse is - -:ROW: here dictate this is a demonstration -:COL: inserts to dictate "this is a demonstration" at the position of the mouse pointer - -:ROW: [here] double click dictate replacement -:COL: selects the word under the mouse pointer and replace by the text "replacement" - -(the word here is optional) - -:: - - - Controlling keystrokes and alternative command sets: - -:TABLE firstcoldifferent=1, border=1: -:HEADING width=40%:command -:COL:comment - -:ROW:switch on/off keystrokes -:COL:enable or disable this grammar (this is a command from the grammar _control). - - - -:ROW: show keystrokes -:COL: Shows the current possible keystrokes commands if grammar is enabled. - - Shows dialog box if grammar is disabled - - (this is also a command from the grammar _control) - -:ROW:do keystrokes simple -:COL:Doing all the keystrokes, but without mouse clicking or optional dictation -:ROW:do keystrokes extended -:COL:Doing all the keystrokes as in the above examples, including *here* or some clicking at the beginning and *dictate ...* at the end - - -:ROW:codes of -:COL:Prints the codes of the keys that follow, instead of doing the keystrokes itself (useful when defining commands for these or other grammars or in Vocola command files) - -:ROW:here context menu -:COL: special case, instead of (left) clicking and then the *shift+f10 key*, a right click is performed -:: - - Modifiers -Before each key one or more modifiers (*shift*, *alt* and/or *control*) can be spoken. These modifiers are augmented with *Cap* and -*All-Caps*. - -:CODE: -Dutch: hoofdletter, grootschrift, sjift, shift, control, alt -:: - - - Modes -In this grammar " link(modes.html, *Modes*) " are introduced, so that in some programs special -keystrokes can be defined. These can be used in combination with all the -other keystrokes. - - More info follows soon... some things above are NOT implemented in the current beta version... diff --git a/website unimacro/source/4_grammars/b_global grammars/k_keystrokes/keystrokes.ini b/website unimacro/source/4_grammars/b_global grammars/k_keystrokes/keystrokes.ini deleted file mode 100644 index f808b74..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/k_keystrokes/keystrokes.ini +++ /dev/null @@ -1,10 +0,0 @@ -[grammar] -new page = 09 dec 2008 - - -[index] -new index = 23 Jul 2006 - - -[modes] -new page = 09 dec 2008 diff --git a/website unimacro/source/4_grammars/b_global grammars/k_keystrokes/m_modes.txt b/website unimacro/source/4_grammars/b_global grammars/k_keystrokes/m_modes.txt deleted file mode 100644 index 50d0a95..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/k_keystrokes/m_modes.txt +++ /dev/null @@ -1,104 +0,0 @@ -Modes - -Each time when a new window is entered or when the window title changes, a check is performed about the *"mode"* the keystrokes grammar is in, and whether the grammar rules should be active or inactive. - - Active or not? - -In the ini file *_keystrokes.ini* look at the following section: - -:CODE: -[general] -active = all -ignore = natspeak: mouse grid; emacs -exclusive modes = minesweeper -:: - -It means that in principle all windows should use this grammar. But there are a few windows ignored ( the rules are deactivated when such a window is in the foreground). In this example NatSpeak itself if the mouse grid is on, and Emacs. - -For the special mode "minesweeper" the grammar is put in exclusive mode, see below. - - Special modes - -For certain applications a special mode, with extra keys is defined. Example: - -:CODE: -[modes] -python = pythonwin -vba = winword, excel: visual basic -:: - -This section tells the grammar that if *pythonwin* is found as program name, we should look into the mode *python*. If either Word or Excel is found as program, and *visual basic* is found in the window title, then look into the mode *vba*. (Window titles are all converted to lowercase.) - - Defining general keys: - -In the sections is *[repkey]* and *[norepkey]* keys can be defined to be active in all applications. A few examples: - -:CODE: -[repkey] -Backspace = {backspace} -Cancel = {esc} -Delete = {extdel} - -[norepkey] -Context Menu = {shift+f10} -End Document = {ctrl+extend} -End of Document = {ctrl+extend} -:: - - Defining special keys for modes: - -As first example take the mode *vba*: - -:CODE: -[repkey vba] -Step = {f8} -Step Over = {shift+f8} - -[norepkey vba] -Complete = {ctrl+j} -Complete OK = {ctrl+j}{tab} -Equal Sign = " = " -Minus Sign = " - " -:: - -For mode *python* you could define (only norepkeys here): - -:CODE: - -[norepkey python] -Assign = " = " -COLON = : -COMMA = , -Complete = {alt+/} -Equal Equal = " == " -:: - - Games - -Also for several games this "modes" method has proven to be useful in making the game work with speech recognition. - -I include here the example of *minesweeper*, with also adding exclusive mode, so only the keystrokes defined in this grammar are recognised. - - -:CODE: -[modes] -minesweeper = minesweeper -:: - -and: - -:CODE: -[norepkey minesweeper] -top left = {extup 9}{extleft 9} -bottom left = {extdown 9}{extleft 9} -center = {extdown 9}{extup 4}{extleft 9}{extright 4} -top right = {extright 9}{extup 9} -bottom right = {extright 9}{extdown 9} -new game = {f2} -:: - - Exclusive mode for minesweeper - -With the *exclusive mode* set for minesweeper (see section [general], above), we can ensure that only the words currently defined in this grammar are recognised. (work in progress for next beta release) - - diff --git a/website unimacro/source/4_grammars/b_global grammars/k_repeat/a_actions.txt b/website unimacro/source/4_grammars/b_global grammars/k_repeat/a_actions.txt deleted file mode 100644 index 786c354..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/k_repeat/a_actions.txt +++ /dev/null @@ -1,25 +0,0 @@ - Actions needed for this Grammar - - Searching: - -The search uses actions, which can be specialised for different programs. - -The basic action is SEARCH, which must be called with and action ('up' or 'down') and an optional text. The repeat grammar only uses the variant in which the optional text is NOT given. -When inside the action SEARCH several detail actions are used for this case: - -:CODE: -search forward (default <> followed by <>, but preferably overruled e.g. by {F3}) -search back (default not there, but overruled e.g. by {shift+f3}) - -leftafterforwardsearch n -leftafterbacksearch n -:: - -these last two variables take a count, which is the length of the search string. In most programs this count can be ignored, and both commands result in a simple _{left}_. - -In emacs for example _leftafterforwardsearch_ must do _{left n}_, and _leftafterbacksearch_ must do nothing. - -I can imagine the commands are extended with _rigthafterforwardsearch_ and _rigthafterbacksearch_, in order to position the cursor after the search text. - -See the sections on link("/features/actions/index.html", "actions") and -link("/grammars/globalgrammars/general/index.html", "grammar general") for more details. \ No newline at end of file diff --git a/website unimacro/source/4_grammars/b_global grammars/k_repeat/b_searching.txt b/website unimacro/source/4_grammars/b_global grammars/k_repeat/b_searching.txt deleted file mode 100644 index aa0914e..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/k_repeat/b_searching.txt +++ /dev/null @@ -1,149 +0,0 @@ -Searching: - -Triggered by a discussion on the voicecoder discussion list I started working on this again. It is becoming quite a bit of code. Split apart into several things: - --commands for discrete search (noncontinuous) are defined in the grammar __general_. --commands for continuous searching are described in this grammar (__repeat_). --the core functions are in the link("/features/grammarclasses/inigrammar/functionsforsearching.html", "_IniGrammar class_") --extensive use is made of "link("/features/actions/index.html", "_actions_") -. - - The grammar in _general: - -:TABLE firstcoldifferent=1, border=1: - -:HEADING:command -:COL:comment - -:ROW:_search_ ( _for_ | _before_ | _after_ ) (<dgnletters> | <dgnwords>) -:COL: select the text you search for, or a leave the cursor before or after the selected text - -:ROW:_search_ ( _insert_ | _extend_ ) (<dgnletters> | <dgnwords>) -:COL:insert more letters before or after the previous search text - -:ROW:_search new_ -:COL:this opens the default search box, no knowledge of the search text is maintained - -:ROW:_search forward_ [ {count} [ _times_ ]] -:COL:the count is optional, as is _times_. - -:ROW:_search back_ [ {count} [ _times_ ]] -:COL:in most programs searching back will not work. Search is started from the beginning of the document. - -:ROW:_search go back_ -:COL:(experimental, works only in excel at the moment, go back to where you started.) -:: - -with - -:TABLE firstcoldifferent=1, border=1: - -:ROW:<dgnletters> -:COL:any combination of letters/characters (alpha, open-paren, comma etc.) -:ROW:<dgnwords> -:COL:one dictation word (note this is more precise than <dgndictation> which is identical to <_anything> in Vocola) -:: - - The grammar in _repeat: - -:TABLE firstcoldifferent=1, border=1: - -:ROW:command -:ROW:_Search continue_ [ <direction> | <count> | <speed> ]+ -:: - - - -with (optional directives (because of the [ and ]): - -:TABLE firstcoldifferent=1, border=1: - -:ROW:<direction>: -:COL:_forward_ | _back_ | _up_ | _down_ -:ROW:<speed>: -:COL:_steady_ | _normal_ | _fast_ | _slow_ | _very fast_ | _very slow_ -:ROW:<count>: -:COL:a number: 1, 2, ..., 20, 25, 30, 35, 40"]] -:: - - - And when you are in the continuous mode: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:comment - -:ROW:<direction> or <speed> or <count>: -:COL:as above - -:ROW:_reverse_ [ _direction_ ] | [ _go_ ] _back_ -:COL:search in the other direction, or start from the top (if back search is not supported) - -:ROW:<acceleration>: -:COL:_faster_ | _slower_ | _much faster_ | _much slower_ - -:ROW:_hold on_ | _hold it_ -:COL:wait, resume with _go on_ | _continue_ or one of the other commands - -:ROW:_cancel_ -:COL: quit the continuous search mode and return, if possible, to the spot the search started from - -:: - - - - - - Actions - -These two grammars are meant to be used with the same grammar rules (commands) in several windows. Therefore they make use of actions. The actions used in the search mechanism are: - - -:TABLE firstcoldifferent=1, border=1: -:HEADING:meta action -:COL:comment - -:ROW:startsearch -:COL:most often simply put the search box on the screen - -:ROW:search go -:COL:often just _{enter}_ - -:ROW:searchforward -:COL:search on in forward (down) direction. - -:ROW:searchback -:COL:search on in opposite direction. Default empty. In that case the search is continued from the top. - -:ROW:searchgoback -:COL:action to go to the place searching started. Excel implemented differently. Word not implemented yet. Default not implemented, UltraEdit (uedit32) implemented. - - -:ROW:searchfailed -:COL:what to do if the search failed (can be established in some windows) (default ALERT = a ringing bell) - -:ROW:searchalwayscontinue -:COL:T (True) if you can continue search without an initial search (eg by hand or by the search new command, which is NOT remembered) (values can be T (true) or F (false)) - -:ROW:leftafterforwardsearch -:COL:what to do after forward search, in order to finish in front of the text found. - -:ROW:leftafterbacksearch -:COL:ditto:: - -:: - - -In the file _actions.ini_ (which you can open by the command _Edit Actions_), you can inspect these actions for default or a program (eg winword, dragonpad, firefox (sucks yet), -iexplore, emacs (a little bit), notepad). - - Examples --in DragonPad (like in many windows) searching back does not work, so search is started from the beginning of the page when you call this. When you are "round" DragonPad gives an extra dialog window, which is found as a failing search. The search is cancelled at that moment. --in excel some steps go through internal excel routines, showing no dialog windows at all. When you _cancel_ -the search, or give the command _search go back_, the cell you start at the search from is selected again. (Searching back does not work). --In Notepad searching back works, but if you want to go searching for it again this does not work. --In Firefox continuous search seems to work well, and going up and down with the search also. --In Word the implementation is primitive, should also be done with internal commands, like in excel. - -More implementation details in link("/features/grammarclasses/inigrammar/functionsforsearching.html", "the section in IniGrammar class") -. diff --git a/website unimacro/source/4_grammars/b_global grammars/k_repeat/index.txt b/website unimacro/source/4_grammars/b_global grammars/k_repeat/index.txt deleted file mode 100644 index b09729c..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/k_repeat/index.txt +++ /dev/null @@ -1,115 +0,0 @@ -repeat, moving the cursor, mouse and search and repeating the last command - -With this Grammar automatic movements can be made. - - This grammar is in revision, contact Quintijn if you want the files/cooperate! - --moving the cursor, in all directions, a number of steps or at a variable speed. --moving the mouse, ditto --repeating the last search --repeating the last command (a bit more vulnerable than the other commands) - -This grammar is based on Joel Gould's _mouse.py and Jonathan Epstein's -version of _generic_movement.py. - - Moving the cursor - -Start moving with: -:CODE: -Start (Moving|Selecting|Scrolling) (||)+ -:: -with: - -:CODE: -speed = steady | slow | fast | very slow | very fast -direction = up | down | left | right - but also: (page | paragraph | line) (up | down) or - word left | word right -count = 1 to 20, 25, 30, 35, 40 -:: -more directives can be spoken in one command (the + sign after the parens). - -When moving you are in the so-called exclusive mode: only commands described below our recognised. An icon is shown in the system tray, and moving can be stopped by - - stop | OK - -Moreover the movement can be controlled by commands like: - - another speed - acceleration: faster | slower | much faster | much slower - another direction - another count - reverse direction with: reverse | reverse direction | back | go back - -and the movement can be hold and resumed by: - - hold on | hold it | wait - go on | continue - another speed - another direction - another count - -When moving, you can enter -into selection mode by calling the word "select". - -Please try what happens if you start with "scrolling" (eg with _Start Scrolling down_) - -When moving you can also call: - - begin [of] line | end [of] line | begin [of] document | end [of] document - - Mousing: - -These commands work with the same mechanism as moving the cursor. They should be worked out with more commands for practical purposes. Start with: - -:CODE: -MOUSE (MOVE | DRAG | Start Moving | Start Dragging) [ | | ]+ -:: -with - -:CODE: -speed = same options as above -direction = up | down | left | right (should be extended with north, north west etc) -count = same list as above -:: -When mousing you are again in a so-called exclusive mode. An icon is shown in the system tray, and mousing can be stopped by - - stop | OK - click - double click - -Moreover the movement of the mouse can be controlled by commands similar as with moving. - - Searching: - -These commands only work after an initial search was done. This search command is described in the grammar _general. - -You can start a continuing search with: -:CODE: -Search continue [||]+ -:: -with: -:CODE: -direction = forward | back -speed and count like the moving commands -:: - - Repeating the last command: - -These commands do NOT work in exclusive mode. That is because they work with the HeardWord (RecognitionMimic) mechanism in which the speech engine is used recursively. - -Stopping the mechanism is therefore by a general command, like Cancel or OK. - -:CODE: -Repeat That -:: -with -:CODE: -speed like the other commands -:: - - - - - - diff --git a/website unimacro/source/4_grammars/b_global grammars/k_repeat/n_nederlands.txt b/website unimacro/source/4_grammars/b_global grammars/k_repeat/n_nederlands.txt deleted file mode 100644 index e98bbfd..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/k_repeat/n_nederlands.txt +++ /dev/null @@ -1,119 +0,0 @@ -Herhalende beweging, met de cursor, muis of zoeken - --Beweeg de cursor, in alle richtingen, een aantal stapjes of met variabele snelheid. Ook selecteren! --Beweeg de muis, dito --Herhaal de laatste zoekopdracht, vooruit of achteruit --Herhaal het laatste willekeurige commando (een gevoeliger actie dan de andere commands) - -Deze grammatica is gebaseerd op _mouse.py van Joel Gould en -de versie van Jonathan Epstein van _generic_movement.py. - - De naam van deze grammatica is _herhaal_, dus zoek (na het commando _Toon alle grammaticaas_) naar deze naam, of probeer het commando _Toon herhaal_. - - Beweeg de cursor - -Start het bewegen met: -:CODE: -BEWEEG | BLOK | SCROLL (||)+ -:: - -Meer van deze opdrachten kunnen in een commando worden gegeven (het + teken na de haakjes) - -Als de cursor beweegt, zit je in de zogenaamde exclusieve modus: alleen commando's, die hieronder beschreven staan, worden herkend. Een icoon wordt getoond in de system tray, en de beweging kan worden gestopt met - - stop [bewegen|blok] | OK | okee - -De beweging kan verder worden beïnvloed door: - - een andere snelheid - versnelling: sneller | langzamer | [heel] veel (sneller| langzamer) - een andere richting - een ander aantal - de richting omdraaien: terug | ga terug - - -En de beweging kan worden onderbroken en hervat met: - - wacht - ga verder | ga door | verder - een andere richting, snelheid, aantal of de richting omdraaien - -Als je beweegt, kan in de selectiemodus worden overgegaan met het commando: - - selecteer | blok (alweer optioneel gevolgd door andere commando's) - -Probeer ook maar eens wat er gebeurt als je start met _SCROLL_ in plaats van _BEWEEG_. - -Ten slotte kun je tijdens de beweging ook nog springen: - - begin [van] regel | einde [van] regel | begin [van] document | einde [van] document - - Muizen: - -Deze commando's werken met hetzelfde principe als het bewegen van de cursor. Er moet echter nog meer uitgewerkt worden voor praktische doeleinden. Start met: - -:CODE: -MUIS (BEWEEG | SLEEP) [ | | ]+ -:: -met - -:CODE: -speed = zelfde opties als bij het bewegen -direction = omhoog | omlaag | link | rechts - (zouden nog moet worden uitgebreid met noord, noordwest enz.) -count = zelfde lijst als hierboven. -:: -als de muis beweegt/sleept men weer in de zogenaamde exclusieve modus. Zie icoon in de system tray. De muis kan gestopt worden met: - -:CODE: -stop [muizen|slepen] | OK -klik -dubbel klik (lijkt op dit moment niet te werken) -:: - -Verder kan het gedrag gecontroleerd worden zoals bij het bewegen. - - Zoeken: - -Deze commando's werken pas nadat een eerste zoekopdracht is gedaan. Deze zoekopdracht wordt beschreven in de grammatica _algemeen_ (__general_), maar hieronder volgt de grammatica, zowel voor het starten van het zoeken als voor het "discreet" doorgaan. - -:TABLE firstcoldifferent=1, border=1: - -:ROW:commando -:COL:opmerking - -:ROW:_zoek_ ( _naar_ | _voor_ | _na_ ) <dgnletters} -:COL: selecteer de tekst die gezocht wordt, of ga ervoor of erna staan met de cursor - -:ROW:_zoek_ ( _insert_ | _extend_ ) <dgnletters} -:COL:insert more letters before or after the previous zoek text - -:ROW:_zoek nieuw_", "Opent dus zoek dialoog, onthoudt vervolgens NIET waar naar gezocht wordt - -:ROW:_zoek _ [ {count} [ _keer_ ]]", "de count (aantal) is optioneel, en _keer_ ook. - -:ROW:_zoek terug_ [ {count} [ _keer_ ]]", "In de meeste programma's werkt dit niet, en wordt vanaf het begin van het document gezocht. - -:ROW:_zoek ga terug_", "(experimenteel, werkt momenteel in Excel. Ga terug naar de plek waar het zoeken begon.)"]] -:: - -met - -:TABLE firstcoldifferent=1, border=1: - -:ROW:<dgnletters}: -:COL:een combination van letters/karakters (alfa, haakje-openen, komma enz.) -:: - - De grammatica in __repeat_, om het zoeken "continu" te vervolgen: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:commando -:COL:comment - -:ROW:_Zoek continu_ [ <direction} | <count} | <speed} -:: - - -met (optionele aanwijzingen (vanwege de [ en ]) als bij de andere commando's. Zie de complete grammatica voor details. - diff --git a/website unimacro/source/4_grammars/b_global grammars/k_repeat/repeat.ini b/website unimacro/source/4_grammars/b_global grammars/k_repeat/repeat.ini deleted file mode 100644 index 9aaa08b..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/k_repeat/repeat.ini +++ /dev/null @@ -1,14 +0,0 @@ -[actions] -new page = 21 Feb 2006 - - -[index] -new index = 21 Feb 2006 - - -[nederlands] -new page = 21 Feb 2006 - - -[searching] -new page = 21 Feb 2006 diff --git a/website unimacro/source/4_grammars/b_global grammars/l_edit/edit.ini b/website unimacro/source/4_grammars/b_global grammars/l_edit/edit.ini deleted file mode 100644 index c154c85..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/l_edit/edit.ini +++ /dev/null @@ -1,2 +0,0 @@ -[index] -new index = 23 Jul 2006 diff --git a/website unimacro/source/4_grammars/b_global grammars/l_edit/index.txt b/website unimacro/source/4_grammars/b_global grammars/l_edit/index.txt deleted file mode 100644 index 48f8438..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/l_edit/index.txt +++ /dev/null @@ -1,88 +0,0 @@ -Edit text in DragonPad or even (for programmers) in emacs - -*NOTE:* This grammar is a bit obsolete, because NaturallySpeaking introduced the dictation box several versions ago. Maybe the idea of the dictation box is even taken from this grammar! - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:comment - -:ROW:edit that -:COL:copy the selection to DragonPad, for full Select-and-Say control - -:ROW:edit all -:COL: copy the whole document to DragonPad, for full Select-and-Say control - -:ROW:edit ready -:COL: in DragonPad: copy all text and paste back into the place it came from -:: - - -The effects of these commands are the same as the dictation box in recent NatSpeak versions. They work very well, and can have some side-effects: - --pasted text is automatically saved into text files (give the command *edit edit*, and edit the variables *automatic log to file*). These files can be used for later analysis by the NatSpeak vocabulary builder. (The ini file variable *base log folder* is obsolete.) - - Logging and saving the messages window - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:action - -:ROW:log (that|all) -:COL: the selection or the whole file is *logged* to a file (see below for the precise location) - -:ROW:log messages -:COL: the messages window is copied into the special folder *log messages* in the Unimacro folder. As a side effect the messages window is closed, so emptied. - -:: - - Files and folders the log files go to - --all log files go to subfolders of the Unimacro folder --the files with the *log that* or *log all* command or the *automatic log to file* option on, go into the subfolder *log xxx/user* (xxx being the language code of your speech profile), and have names starting with *texts yyyy mm*, so each month the log file is refreshed. For the *automatic log to file* behaviour of filenames start with *texts auto yyyy mm*. - -(Note that the folder *xxx_log* contains logs of all your utterances, if this option in the grammar *oops* is switched on) - - Editing Latex code - -Addition by Frank Olaf: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:comment - -:ROW:edit (that|all) latex -:COL:sends the text to Microsoft Word with latex syntax highlighting -:: - - - - Interaction with voicecoder - -For programming purposes I experimented with different other commands. The most important now is - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:comment - -:ROW:edit (that|all) (python|CC|...) code -:COL:sends the text to a file, and open this file in emacs -:: - - -The grammar *_lines* makes use of this, by the command word *emacs* as *simpleaction*. - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command (*_lines grammar*) -:COL:comment - -:ROW:20 lines emacs_ -:COL: 20 lines are selected and brought to emacs, in correct emacs mode. - -:ROW:lines 10 plus 20 emacs_ -:COL:variants, see link(/grammars/globalgrammars/lines/index.html, *lines grammar*") and -link(/features/cooperationwithvoicecoder/index.html, *cooperation with voicecoder*) -:: - - - - diff --git a/website unimacro/source/4_grammars/b_global grammars/l_latex/c_configuration.txt b/website unimacro/source/4_grammars/b_global grammars/l_latex/c_configuration.txt deleted file mode 100644 index 80db875..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/l_latex/c_configuration.txt +++ /dev/null @@ -1,16 +0,0 @@ -Configuration of latex grammar - --Say _edit latex_ to edit the properties of this grammar. - - General options - -In the section [general] you can set the following option: - -:TABLE firstcoldifferent=1, border=1: -:ROW:initial on = 1 -:COL: meaning this grammar is switched on when NatSpeak (and NatLink including Unimacro) starts. Th- - -:: - - Contents -In the other sections you can define your specialized command sets. \ No newline at end of file diff --git a/website unimacro/source/4_grammars/b_global grammars/l_latex/d_Highlighting in Microsoft Word.txt b/website unimacro/source/4_grammars/b_global grammars/l_latex/d_Highlighting in Microsoft Word.txt deleted file mode 100644 index a77eb0c..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/l_latex/d_Highlighting in Microsoft Word.txt +++ /dev/null @@ -1,88 +0,0 @@ -How to configure Word for latex highlighting - -For completeness, below is the necessary Visual Basic functions for rudimentary latex highlighting in Microsoft Word. By adding these three functions to the Word macro system, all files with the extension .tex will be automatically highlighted everytime they are opened (In Word 2010 click "review"-> "macros"->"create". Bind the AutoOpen function to a keyboard shortcut to reformat the documents during editing (file->options->customise ribbon, keyboard shortcuts: customise...). This came to great effect be combined with the "edit all latex" and "edit ready" commands from the link("/grammars/globalgrammars/edit/index.html", "*_edit* grammar"). - -:CODE: -Sub AssociateStyle(pattern As String, style As String, colour As Long) -'Associate Styles with headings and quotations -'Ensure Tools/References/Microsoft VBscript Regular Expression 5.5 is on - -Dim regEx, Match -'Dim Matches As MatchCollection -Dim str As String -Dim region As Range - -Set regEx = CreateObject("VBScript.RegExp") -regEx.pattern = pattern ' Set pattern. -regEx.Global = True -regEx.MultiLine = True - -'obtain matched RegExp. -Set Matches = regEx.Execute(ActiveDocument.Range.Text) -'MsgBox (Len(ActiveDocument.Range.Text)) -'MsgBox (Matches.Count) -'loop through and replace style -For Each Match In Matches - Set region = ActiveDocument.Range(Match.FirstIndex, Match.FirstIndex + Len(Match.Value)) - If colour > -1 Then - ' MsgBox (Match.Value) - ' MsgBox (Match.FirstIndex) - ' MsgBox (Len(Match.Value)) - region.Font.ColorIndex = colour - Else - region.style = _ - ActiveDocument.Styles(style) - End If -Next - -End Sub - -Sub ReplaceMarkup(pattern As String, markup As String) - - Selection.Find.ClearFormatting - Selection.Find.Replacement.ClearFormatting - With Selection.Find - .Text = pattern - .Replacement.Text = markup - .Forward = True - .Wrap = wdFindNo - .Format = False - .MatchCase = False - .MatchWholeWord = False - .MatchAllWordForms = False - .MatchSoundsLike = False - .MatchWildcards = True - End With - Selection.Find.Execute Replace:=wdReplaceAll -End Sub - - -Sub AutoOpen() -' -' AutoOpen Macro -' Macro recorded 5/6/2009 by reagle -' -FileName = ActiveDocument.FullName -Extension = Right(FileName, 3) -If Extension = "tex" Then - Selection.WholeStory - Selection.Font.Name = "Georgia" - Selection.Font.Size = 12 - Selection.ParagraphFormat.LineSpacing = 16 - Selection.style = "Body Text" - 'Call ReplaceMarkup("\\emph\{(*)\}", "<<\1>>") - Call AssociateStyle("[{}]", "Quote", wdGreen) - Call AssociateStyle("\\.*?}", "Quote", wdDarkBlue) - Call AssociateStyle("^\\title{", "Heading 1", -1) - Call AssociateStyle("^\\chapter{", "Heading 1", -1) - Call AssociateStyle("^\\section{", "Heading 1", -1) - Call AssociateStyle("^\\subsection{", "Heading 2", -1) - Call AssociateStyle("^\\subsubsection{", "Heading 3", -1) - Call AssociateStyle("^\\begin{quotation}", "Quote", -1) - Call AssociateStyle("\$.*?\$", "Quote", wdRed) - Call AssociateStyle("[^\\]%.*?$", "Quote", wdGray25) - -End If - -End Sub -:: \ No newline at end of file diff --git a/website unimacro/source/4_grammars/b_global grammars/l_latex/index.txt b/website unimacro/source/4_grammars/b_global grammars/l_latex/index.txt deleted file mode 100644 index 0e1c90f..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/l_latex/index.txt +++ /dev/null @@ -1,74 +0,0 @@ -Making latex markup - -Also see the demo video made by Frank Olaf Sem-Jacobsen, who also wrote this grammar: - - - - - The grammar: - - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:comment - -:ROW: begin {floating} [dictation] -:COL: Insert a \begin and \end environment of type floating, with the optional dictation formatted as a label. -:ROW: reference ({floating} | {label}) dictation -:COL: Insert a reference of type floating or label (defined in the ini file) with free dictation as label name. -:ROW: label ({floating} | {label}) dictation -:COL: Create a label of type floating or label with free dictation as label name. -:ROW: {commands} [with] [ (arguments [{arguments}]) | (that | ([this] line)) ] [(and | with) label] -:COL: Insert a latex command with optional arguments from the ini file, from the last utterance (select that), or the current line, and add an optional label. -:ROW: add option [{options}] -:COL: Add an option ([]) before the braces of a command (typical use is to add options to \documentclass{}). In the case of multiple options, each option will be separated by a comma. -:ROW: replace {placeholders} [with dictation] -:COL: Select a placeholder and replace it with optional dictation. -:: - -The latex commands can be defined as comprehensive templates together with placeholders. For simple commands with arguments, the curly braces are optional. - -:CODE: -[commands] -E. P. S. Figure = \epsfig{file=@contents} -author = \author -horizontal space = \hspace{} -include graphics = \includegraphics[width=@size\textwidth]{@contents} -:: - -The placeholders are prefixed with an @ to avoid confusion with existing text, and defined in a separate section in the ini file. - -:CODE: -[placeholders] -caption = @caption -contents = @contents -label = @label -size = @size -:: - -The command to create latex commands can operate in three modes. If the keyword arguments is given, add arguments from the "arguments" section in the ini file is inserted between the curly braces following the command. If the keyword "that" is given, the command will select the last utterance using "select that" and use this as an argument to the command. A typical use is "emphasise that". Finally, if the keyword "line" is given, the command will use the contents of the line as an argument to the command. A typical use of this functionality is "section line" which makes the current line into a section heading. - -The "label" keyword to this command will cause an appropriate label to be added on the next line after the command itself. This is only applicable for the commands that also are listed in the "label" section of the ini file, in all other cases the "label" keyword will be ignored. - -:CODE: -[label] -chapter = chapter -paragraph = paragraph -section = section -subfigure = subfigure -subsection = subsection -subsubsection = subsubsection -:: - -The floating environments used by the "begin" command can be anything that is used in a "begin" -- "end" context. The alternatives are defined in the appropriate "floating" section in the ini file. - -:CODE: -[floating] -algorithm = algorithm -align = align -bottom stuff = bottomstuff -corollary = corollary -definition = definition -document = document -enumerate = enumerate -:: diff --git a/website unimacro/source/4_grammars/b_global grammars/l_latex/latex.ini b/website unimacro/source/4_grammars/b_global grammars/l_latex/latex.ini deleted file mode 100644 index 1e7769c..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/l_latex/latex.ini +++ /dev/null @@ -1,7 +0,0 @@ -[configuration] -name = configuration - - -[highlightinginmicrosoftword] -name = highlightinginmicrosoftword -nice name = Syntax highlighting Word diff --git a/website unimacro/source/4_grammars/b_global grammars/n_number/a_Number extended.txt b/website unimacro/source/4_grammars/b_global grammars/n_number/a_Number extended.txt deleted file mode 100644 index 7f645be..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/n_number/a_Number extended.txt +++ /dev/null @@ -1,37 +0,0 @@ -More Number grammar rules in _number extended.py - -These grammar rules serve as inspiration and code examples for use of the number grammar rules in more complex situations. See also for example the grammars *_lines.py* and *firefox browsing.py*. - --If you want to use this grammar, please remove *_number simple.py* from the Unimacro directory and copy *_number extended.py* from the DisabledGrammars subdirectory into the Unimacro directory. Toggle the microphone or restart Dragon. - - Name -This grammar is named *number extended* (in Dutch *getal uitgebreid*). - - More grammar rules: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:grammar rule -:COL:comment - -:ROW:(Number <number>)+ -:COL:dictate more numbers in one phrase - -:ROW:Number <integer> Trough <integer>; -:COL:dictate a start and end of a range of numbers -:ROW:Pair <number> And <number>; -:COL:dictate a numbers pair -:: - - Examples: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:result - -:ROW:Number three Number four Number seventy -:COL:More numbers can be dictated in one utterance, in Excel these will be put in subsequent cells: 3470 - -:ROW:Pair twenty three point six And thirty point five -:COL:Other tricks can be invented, like dictating a number pair: (23.6, 30.5) -:: - diff --git a/website unimacro/source/4_grammars/b_global grammars/n_number/a_Use in other grammars.txt b/website unimacro/source/4_grammars/b_global grammars/n_number/a_Use in other grammars.txt deleted file mode 100644 index f04be38..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/n_number/a_Use in other grammars.txt +++ /dev/null @@ -1,41 +0,0 @@ -Number grammar rules in other Unimacro grammars - -For simple use, take _number simple.py as example. For more difficult things study _number extended.py. - --The definition of the number grammar rules and the processing functions is in the class definition of IniGrammar, in the file natlinkutilsbj.py. --Especially the rules *<integer>* and *<float>* are defined for use in another Unimacro grammar --The functions *waitForNumber* and *collectNumber* are used to initialize and finalize the process. - - The Steps - - Step 1. Choose your set of grammar rules: - number_rules = natbj.numberGrammarTill999[language] # hundreds, really up to 99999 (99 hundred 99). - number_rules = natbj.numberGrammarTill999999[language] # including thousands - number_rules = natbj.numberGrammar[language] # including millions - --Take one of the lines above in your grammar specification. --Note with each set you can dictate long numbers with parts below 100: "number three twenty two fifty six nine" - --Call the numbers grammar part with <integer> or <float> - - - Step 2 or Step 3 - -In *gotResultsInit* or in your exported rule do initialisation and *waitForNumber* --Basically set *self.waitForNumber('number')*. - - Step 4 -In *gotResults* your number is collected with *self.collectNumber()*. --In the simple example, the number (as string, see below) is now in the instance variable *self.number*. - - Step 5 -You need to do something with this number. For example output to the foreground window and do some keystroke(s) following it. See the function *outputNumber*. As you see you can do different actions after printing the number depending on the program that is in the foreground. - - Numbers or Strings --Numbers are by default collected as strings. It is therefore also possible to dictate leading zero's. --When you want to collect an *integer* as an *int* (not as a *string*), give this as named parameter in *self.collectNumber(asNumber=1)* --A *float* is always returned (collected) as a string. No leading zero's of the first part are returned, and the latter part (behind the *point* or *dot*) can only be dictated as digits or numbers below 100. - - Spoken forms -This grammar and other grammars using large numbers now used to spoken forms mechanism, which is described in -link(/features/numbers/index.html, numbers spoken forms). \ No newline at end of file diff --git a/website unimacro/source/4_grammars/b_global grammars/n_number/index.txt b/website unimacro/source/4_grammars/b_global grammars/n_number/index.txt deleted file mode 100644 index 01a24c1..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/n_number/index.txt +++ /dev/null @@ -1,92 +0,0 @@ -Number dictation (_number simple) - -This grammar uses very smart grammar rules in order to speak virtually any number. - --These number grammar rules can be used on its own (with this grammar), for example when dictating many numbers in your Excel worksheet. --This grammar serves also as an example on how to use the number grammar rules in other grammars, like -link("/grammars/specificgrammars/firefoxbrowsing/index.html", "Firefox browsing") or -link("/grammars/globalgrammars/lines/index.html", "_lines"). --For more complex examples see link(number extended). --For instructions of implementing in your own grammars, see link("Use in other grammars"). - - Default name -The default name is "number simple" (Dutch *getal simpel*). - - Basic grammar rules - -:TABLE firstcoldifferent=1, border=1: -:HEADING:grammar rule -:COL:comment - -:ROW:Number {integer} -:COL:print the number you call (see customisation below) -:ROW:Number minus {integer}; -:COL:print a negative number -:ROW:Number {float}; -:COL:print fractional number with *point* or *dot* (Dutch *punt* or *komma*) - -:: - - Easy examples: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:result - -:ROW:Number one -:COL:1 - -:ROW:Number three hundred twenty three -:COL:323 - -:ROW:Number three twenty three -:COL:the word *hundred* is not needed, same result: 323 - -:ROW:Number one two tree four five -:COL:12345 - -:ROW:Number minus one -:COL: -1 - -:ROW:Number three point seven -:COL:3.7 -:: - - More examples: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:result - -:ROW:Number oh thirty four -:COL:a number can have leading zero's (dictated as 'oh' or 'zero'): 034 - -:ROW:Number minus twenty three fifty four dot fifty -:COL: -2354.50 - -:ROW:Number three million two hundred thousand twenty five -:COL:dictate with the words million, thousand and hundred (avoid the word *and*): 3200025 - -:ROW:Number three twenty three forty four sixty six ninety nine eight -:COL:dictate very long numbers possible (leave away the words million, thousand and hundred!the): 3234466998 - - -:ROW:Number one zero two zero three zero four zero -:COL:With single digits this rule sometimes seems not to work with a very long sequence: 10203040 - -:ROW:Number three twenty one forty fifty six seventy seventy eight ninety nine eight -:COL:But surprising long numbers can be done this way: 32140567078998 -:: - - - Customisation: -For different applications the possible actions after printing the number can be customised. In the *numbers simple* grammar (_numbers simple.py) you can customize this in the function *outputNumber*. (Please report any changes.) --In Excel each number is followed by a tab key --In different browsers (IE, Firefox, Chrome, Safari) a number is followed by a tab key --In natspeak (DragonPad or the dictation box) a number is followed by a enter key. - - Spoken forms -The number grammar rules use the link(/features/numbers/index.html, numbers spoken forms) mechanism. - - - diff --git a/website unimacro/source/4_grammars/b_global grammars/n_number/number.ini b/website unimacro/source/4_grammars/b_global grammars/n_number/number.ini deleted file mode 100644 index c4f1af3..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/n_number/number.ini +++ /dev/null @@ -1,11 +0,0 @@ -[index] -new index = 23 Jul 2006 -nice name = Number grammar - - -[numberextended] -name = numberextended - - -[useinothergrammars] -name = useinothergrammars diff --git a/website unimacro/source/4_grammars/b_global grammars/o_oops/index.txt b/website unimacro/source/4_grammars/b_global grammars/o_oops/index.txt deleted file mode 100644 index 5e158ff..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/o_oops/index.txt +++ /dev/null @@ -1,61 +0,0 @@ -_oops grammar - -With this grammar you can correct your last utterance (like "correct that"), but --you cannot change the alternatives --you can correct from dictate to command and vice versa. - -This grammar can also be instructed to log all your utterances, see below - -The grammar is very simple: - -:TABLE firstcoldifferent=1, border=1: -:HEADING: command -:ROW:oops - -:: - -The message is window is brought to the top, and the alternatives are shown. You are now in an exclusive grammar, and you can say only one of the following commands: - - -:TABLE firstcoldifferent=1, border=1: -:HEADING: command -:COL: explanation - -:ROW: (choose | format | delete | properties) 1..9 -:COL: --choose the alternative (like in Spell window) --format the word properties (not used very much, should be tested more) --delete the word (only if one word was dictated, could be extended) --get the properties of a word - - - -:ROW:cancel -:COL: cancel the oops command, and return to the previous window - -:ROW: choose 1..9 (medium | strong) -:COL: trained a chosen utterance with different intensity (the effect of this should be tested more thoroughly and discussed) -:: - -:TABLE firstcoldifferent=1, border=1: -:HEADING colspan=2: after *format 1..9* -:ROW:choose format 1..4 -:: - - log all utterances - -This parameter can be set, or cleared in the inifile of this grammar. (say *edit oops*). --1 or T (TRUE, True, true, t etc): switch this option on --0 or empty or F: switch this option off - -All utterances are logged to a folder (inside the Unimacro folder) xxx_log/user (xxx the language, user the name of the user speech profile). For longer sessions this file is refreshed each hour. It may be best to put this grammar *initial on = 0*, so it doesn't work all the time. - - - Note - -This is a tricky grammar file, because the allResults-flag is -turned on. Moreover the oops grammar uses exclusive mode when inside. This exclusive mode can always be skipped if "cancel" is said, or if the microphone is turned off. - -This grammar could be improved a lot, for example by recording deleted and formatted words in files, which can be read in a new speech profile. Also formatting or deleting words in a phrase could possibly be chosen. Work to do if this grammar proves useful. - - diff --git a/website unimacro/source/4_grammars/b_global grammars/o_oops/oops.ini b/website unimacro/source/4_grammars/b_global grammars/o_oops/oops.ini deleted file mode 100644 index c154c85..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/o_oops/oops.ini +++ /dev/null @@ -1,2 +0,0 @@ -[index] -new index = 23 Jul 2006 diff --git a/website unimacro/source/4_grammars/b_global grammars/s_show numbers plus/a_specify actions.txt b/website unimacro/source/4_grammars/b_global grammars/s_show numbers plus/a_specify actions.txt deleted file mode 100644 index 9384073..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/s_show numbers plus/a_specify actions.txt +++ /dev/null @@ -1,52 +0,0 @@ -Specify actions - -When you say *edit show numbers plus* (Dutch *bewerk sjoo numbers plus*), you get the configuration file in which you can specify additional actions. Current example: - -:CODE: -[actions] -close = <> -refresh = <> -:: - -For the first example you could have chosen: - -:CODE: -close = {alt+f4} -:: - -But in some strange windows you need another keystroke combination to close it. - - Unimacro meta actions - -The link(/features/actions/metaactions.html, Unimacro meta actions) mechanism makes this window specific behavior possible. - - refresh -In the example of refresh (refreshing a window), use *<<taskrefresh>>*, all examples are in the actions.ini configuration file. - -Default is: - - -:CODE: -[default] -taskrefresh = {f5} -:: - -So with the *{f5}* key you refresh an explorer or internet browser window. - -For Outlook this meta action is defined as (thus send/receive your email): - -:CODE: -[outlook] -taskrefresh = {f9} -:: - -For my special case of a *pythonw window* with *Unimacro* in the window title (titles converted to lowercase) I have: - -:CODE: -[pythonw unimacro] -taskrefresh = {alt+s}{enter} -:: - -With this action I rerun my program, which happens to be the most repeated action of this program. - -Feel free to experiment with your own applications! \ No newline at end of file diff --git a/website unimacro/source/4_grammars/b_global grammars/s_show numbers plus/b_Commandos Nederlands.txt b/website unimacro/source/4_grammars/b_global grammars/s_show numbers plus/b_Commandos Nederlands.txt deleted file mode 100644 index d9b5481..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/s_show numbers plus/b_Commandos Nederlands.txt +++ /dev/null @@ -1,31 +0,0 @@ -Nederlandse commando's voor ShownummersPlus! - -Deze commando's kun je ook zien door *toon sjoo nummers plus*. Bewerken van de verschillende acties kan na het commando *bewerk sjoo nummers plus*. - -:TABLE firstcoldifferent=1, border=1: -:HEADING:commando -:COL:opmerking - -:ROW:(toon|verberg) nummers [continu] -:COL: toon of verberg de nummers, - -met *continu* worden de nummers na elke opdracht van deze grammatica opnieuw getoond - -:ROW:(toon | verberg) (tree|taakbalk) [nummers] -:COL:*tree* of *taakbalk* zijn alternatieven, het woord *nummers* is optioneel. - -Het woord *tree* lijkt erg goed te werken in de praktijk. - -:ROW:{klik} {nummer} [ga door|continu|stop] -:COL:klik op een nummer (voor alternatieven zie onder). - -Vraag (optioneel) om door te gaan met het tonen van de nummers, of om dit te stoppen - -:ROW:(tree|taalbalk) {nummer} [{klik}|{actie}] -:COL:klik op een taakbalk item, optioneel met een klikactie gespecificeerd, of met een aanvullend commando (zie onder). - -:: - - klik en acties --klik kan zijn *klik*, *links klik*, *rechts klik*, *dubbel klik* enz. --acties zijn (standaard ingevuld) *sluiten*, *vernieuwen*. Lees ook link(/grammars/globalgrammars/shownumbersplus/specifyactions.html, uitleg over acties), diff --git a/website unimacro/source/4_grammars/b_global grammars/s_show numbers plus/index.txt b/website unimacro/source/4_grammars/b_global grammars/s_show numbers plus/index.txt deleted file mode 100644 index 584d532..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/s_show numbers plus/index.txt +++ /dev/null @@ -1,61 +0,0 @@ -Show Numbers Plus - - -This grammar is meant to control the link(http://www.ergoarchitect.com/, *program ShowNumbersPlus!*) of Max Roth, Ergodirect. - -It is after installation in the DisabledGrammars directory, so if you want to use this grammar, first move it into the Unimacro directory. - -ShowNumbersPlus now works with separate tray/taskbar numbers, which remain on the screen. - - The commands - -Here are the commands, which you can also get by calling *show show numbers plus*. - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:comment - -:ROW:(show|hide|dismiss) numbers [continuous] -:COL:show or hide in the foreground window - -with *continuous* the numbers go on being showed after each utterance, see below - -:ROW:(show|hide|dismiss) (tray|taskbar) [numbers] -:COL:*tray* or *taskbar* are alternative words, *numbers* is optional. - -The word *tray* seems to be very convenient in practice. - -:ROW:{click} {number} [continue|stop] -:COL:click on a number (alternatives see below), optionally ask to continue displaying the numbers, or stop the continuous displaying of numbers. - -:ROW:(tray|taskbar) {number} [{click}|{action}] -:COL:click on taskbar item, optionally with some click specification or with an additional command. - -:: - - click and action - -These can be specified in the .ini configuration file. Simply say *edit show numbers plus* and make it to your taste. - -Defaults: - --click: *click*, *left click* (same), *right click*, *double click* --action: *close* and *refresh*, see link(specify actions). - - Continuous - -This feature makes it possible to continue for example in Windows Explorer views. When the window changes or when the microphone state changes, the continuous mode is switched off. Moreover if the microphone state changes the numbers are switched off. - - Examples: --If you say *tray seven right click* the shortcut menu pops up. If you want to close the window or the whole stack, you can move up one and press enter (eg with the keystrokes grammar, say "up okay"). --If you say *tray two close* the window at taskbar position 2 pops up and the action for *close* is performed (most often *{alt+f4}*. - - - Aero Peek stacked taskbar windows -When you have a stacked taskbar (which Max Roth advises to switch off BTW), when you click on a taskbar item list of alternatives pop-up. This happens especially in Windows 7 with the Aero Peek you'll been on. - -When this happens, the numbers are again activated (by the grammar, these are now the normal window numbers), and when you say *click zero*, *click one* etc., special keystrokes are performed to correctly handle your choice. This is because normal clicking doesn't work here, this is a very special window. - -These special keystrokes depend on the position of your taskbar, which is extracted from the link(/features/monitorfunctions/index.html, *monitorfunctions*). - - diff --git a/website unimacro/source/4_grammars/b_global grammars/s_show numbers plus/shownumbersplus.ini b/website unimacro/source/4_grammars/b_global grammars/s_show numbers plus/shownumbersplus.ini deleted file mode 100644 index 177d933..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/s_show numbers plus/shownumbersplus.ini +++ /dev/null @@ -1,7 +0,0 @@ -[commandosnederlands] -name = commandosnederlands -nice name = Commando's Nederlands - - -[specifyactions] -name = specifyactions diff --git a/website unimacro/source/4_grammars/b_global grammars/t_tags/index.txt b/website unimacro/source/4_grammars/b_global grammars/t_tags/index.txt deleted file mode 100644 index 1d045c1..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/t_tags/index.txt +++ /dev/null @@ -1,59 +0,0 @@ -Making html tags - -A simple grammar, which helps with putting HTML tags in a file. - -Out of order at the moment, will be fixed in due time (oct 2011) - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:comment -:ROW:[HTML] Tag ({letters}+ | {tagname}) -:COL: Make a HTML tag, by either calling letters from the international alphabet, or one of your predefined tag names. - -Note the word HTML is optional (probably should be removed or made compulsory). - -:ROW: (Open | Close | Begin | End | Empty) Tag ({letters}+ | {tagname}) -:COL: Make only the open tag or close tag, or make an empty tag. -:: - --The letters come from the international alphabet, so say *Tag delta delta* for a *<dd></dd>* tag. --The tag names can be defined in the inifile section *[tagname]* by calling "Edit Tags", for example: - -:CODE: -[tagname] -Form = form -Header 2 = h2 -Header one = h1 -Java script = script language="JavaScript" -meta = meta -script = script -special header = h1 class="special" -table = table -table data = td -table row = tr -table header = th -:: - - Putting tags around existing text -As a special feature is included: if text is selected before you give a tag command, the begin tag and the end tag are placed around the selection. - - Initiall Off! - -Note this grammar is by default NOT in the macrosystem directory. It is in the *DisabledGrammars* subdirectory of Unimacro. In order to activate move or copy it into the macrosystem directory. Toggle the microphone to get it recognized. - -Even then it is initially deactivated. Either say "switch on grammar tags" to activate, or set in inifile (say *"Edit Tags"*): - -:CODE: -[general] -initial on = 1 -:: - -Note that grammar is then on in all windows, because it's a global grammar. More should be done with the window policy if this should be avoided. - -You can always say "switch on grammar Tags" or "switch off grammar Tags" to enable or disable on-the-fly. - - - Development - -When this grammar is going to be used, probably more refinements could be made. - diff --git a/website unimacro/source/4_grammars/b_global grammars/t_tags/tags.ini b/website unimacro/source/4_grammars/b_global grammars/t_tags/tags.ini deleted file mode 100644 index c154c85..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/t_tags/tags.ini +++ /dev/null @@ -1,2 +0,0 @@ -[index] -new index = 23 Jul 2006 diff --git a/website unimacro/source/4_grammars/b_global grammars/u_brackets/brackets.ini b/website unimacro/source/4_grammars/b_global grammars/u_brackets/brackets.ini deleted file mode 100644 index c154c85..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/u_brackets/brackets.ini +++ /dev/null @@ -1,2 +0,0 @@ -[index] -new index = 23 Jul 2006 diff --git a/website unimacro/source/4_grammars/b_global grammars/u_brackets/index.txt b/website unimacro/source/4_grammars/b_global grammars/u_brackets/index.txt deleted file mode 100644 index cec3482..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/u_brackets/index.txt +++ /dev/null @@ -1,100 +0,0 @@ -Brackets (put around text) - -Note: this grammar is initially in the DisabledGrammars subdirectory of Unimacro. Copy the python file (_brackets.py) to the Unimacro directory, and switch the grammar on with the next command: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:comment - -:ROW:switch (on|off) brackets -:COL: control the on/off state of this grammar. -:: - - The grammar: - -:TABLE firstcoldifferent=1, border=1: -:HEADING width=40%:command -:COL:comment - -:ROW:between {brackets} -:COL:insert brackets around the selected text, or simply put the brackets, with the cursor inside. -:ROW:between {brackets} <dgndictation> -:COL:print your dictated text inside the brackets - -:: - - Examples: - -:TABLE firstcoldifferent=1, border=1: -:HEADING width=40%:command -:COL:result ( | shows the cursor position after the command) - -:ROW:between brackets hello world -:COL:(hello world)| -:ROW:between quotes Cap my favorite test period just kidding period -:COL:"My favorite test. Just kidding."| - -:ROW:between braces space-bar another thing space-bar -:COL: {another thing} | (put a space before and after the braces) - -:ROW:between angle brackets space-bar -:COL:  <|> (a special case, and insert a space *before the <*. Position the cursor between the angle brackets.) - -:ROW:between quotes brackets -:COL:"(|)" (more brackets together, and puts the cursor in the middle) - -:ROW:between HTML angle brackets -:COL:&lt;|> (special case, if a *|* in a brackets definition, the cursor is put in the place of this vertical bar) - -:: - - - --If you put brackets around selected text, whitespace before or after the selection is maintained and put outside the brackets. --If you dictate *space-bar* at the start or the end of the dictated text, a space will be inserted before or after, but outside the brackets. --But note: first give the command words like *between brackets* or *between single quotes* etc. --Control your own set of brackets by calling *edit brackets* and editing the _brackets.ini configuration file (and see sample below). - - Warning -You cannot correct dictation errors when you use the <dgndictation> imported rule. Select text that went wrong, and redictate. If then an error occurs, you can correct your dictate. - - Sample configuration file - -:CODE: -[brackets] -angle brackets = <> -asteriscs = ** -braces = {} -brackets = () -colons = :: -double angle brackets = <<>> -double quotes = '""' -double underscores = ____ -parens = () -parenthesis = () -quotes = '""' -single quotes = "''" -square brackets = [] -triple quotes = '""""""' -underscores = __ -vertical bars = || -HTML square brackets = [|] -HTML angle brackets = <|> - -[general] -initial on = 0 - - -[grammar name] -name = brackets - - -[grammar words] -between = between -:: - --Note the vertical bar to give the cursor position in case of asymmetric brackets. --The grammar word *between* can have synonyms, for example *between = between | inside* --When the grammar is switched on, you will see *initial on = 1*. --For single and double quotes the definition must be double or single quoted, a peculiarity of the ini file mechanism. - diff --git a/website unimacro/source/4_grammars/b_global grammars/v_modes/index.txt b/website unimacro/source/4_grammars/b_global grammars/v_modes/index.txt deleted file mode 100644 index 93aff76..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/v_modes/index.txt +++ /dev/null @@ -1,51 +0,0 @@ -Modes - -This grammar is developed after a question of Angela Wigmore about making special modes for MathML and LaTeX. For testing I included also a password mode. - -The grammar is global command but at start only the control rule is switched on. - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:comment - -:ROW:{mode} mode (on | off) -:COL: switch on or off one of the modes - -:: - -The modes are *normal*, *password*, *latex* and *math*. - -If you switch on one of the modes, the rules for that specific mode are switched on, possibly exclusive. See control variables at the top of the grammar. - - Password mode - -This mode has defined the rules: <letters>, <ucletters> (upper case) and the numbers rule. - -So you can say for example *alpha bravo Cap charlie delta* and *abCd* should appear. - -The numbers rule is a more complicated one which needs probably the always the word *number* in front, so dictate *alpha number 2 Cap bravo number 2 hundred twenty three* to get *a2B223*. As long as the mode is exclusive it is possible to experiment with leaving out the word *number*. - - The lists -The different rules can use lists, which must be filled. This can be done in several ways: - -- the *letters* are predefined in ICAlphabet (in the super class) -- the *number* parts are already defined in the superclass -- the *operators* and the *Greek letters* (LaTeX and Math mode) can be defined in the ini file *_modes.ini*. Study the examples. - - Translations -If you want to use the grammar in another language (Dutch, French), *command words* and *list words* have to be translated. The Unimacro *IniGrammar*as this possibility, and most can be done in the appropriate *ini file*. So if you go French, and you say the translated version of *Edit modes*, the French version of the inifile is opened, and you can put in all the translations of the grammar words and of the several list words. - -For the *letters* some extra work probably has to be done in the superclass (natlinkutilsbj.py). - -For the *number* part also extra work should be done, probably best first in the grammar _number. Most things should be adapted in the file natlinkutilsbj.py). - - Exclusive -If exclusive rules are used a few special functions should be included in order to stop the exclusive mode if the microphone is toggled. See the source file for this. - - Repetition/quasi recursive rules -Note the careful way the *+* sign for the repetition of rules is used. This way was adopted in the grammar *_keystrokes*. As this grammar can hit very often, it should be switched off when you use modes in a non-exclusive way. Be careful with changing this way of repetition. - - Reuse of (translated) ini files -If you make a better inifile than the previous one, in English or in another language, and you are on subverion (SVN), you can leave this one in appropriate subdirectory of *sample_ini*. After committing others can profit from this. - - diff --git a/website unimacro/source/4_grammars/b_global grammars/v_modes/modes.ini b/website unimacro/source/4_grammars/b_global grammars/v_modes/modes.ini deleted file mode 100644 index f5ba164..0000000 --- a/website unimacro/source/4_grammars/b_global grammars/v_modes/modes.ini +++ /dev/null @@ -1,2 +0,0 @@ -[index] -new index = 03 aug 2008 diff --git a/website unimacro/source/4_grammars/c_specific grammars/a_Chrome_browsing/a_all commands English.txt b/website unimacro/source/4_grammars/c_specific grammars/a_Chrome_browsing/a_all commands English.txt deleted file mode 100644 index ecb9c96..0000000 --- a/website unimacro/source/4_grammars/c_specific grammars/a_Chrome_browsing/a_all commands English.txt +++ /dev/null @@ -1,52 +0,0 @@ -Chrome Browsing, all commands - - - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:comment - -:ROW:show numbers [additionalonoroff] - -numbers [additionalonoroff] -:COL:Switch on the numbers feature, with optional additional options. - -The options are configurable, but for example contrast, overlay, hybrid. - - -:ROW:hide numbers - -numbers off -:COL:Switch off the displayed numbers - -:ROW: -pick {number} - -pick {number} {navigateoptions} -:COL: follow the numbered link, - -The optional options are configurable, but for example "new tab", "new window", "focus" or "copy link" -:: - - - Other commands: - -:TABLE firstcoldifferent=1, border=1: -:ROW: next page | previous page - -page (back|forward) [{1-20}] - -{pagecommands} page | page {pagecommands} -:COL: navigate the pages inside a tab. -:: - -*pagecommands* contains by default only *refresh*. - -:: - --Note: for navigating the different tabs (documents) of Chrome, see link(/grammars/globalgrammars/tasks/index.html, "*Tasks (taken) grammar*"), but documentation is not complete yet. - - - - - diff --git a/website unimacro/source/4_grammars/c_specific grammars/a_Chrome_browsing/b_commandos Nederlands.txt b/website unimacro/source/4_grammars/c_specific grammars/a_Chrome_browsing/b_commandos Nederlands.txt deleted file mode 100644 index 1d684d9..0000000 --- a/website unimacro/source/4_grammars/c_specific grammars/a_Chrome_browsing/b_commandos Nederlands.txt +++ /dev/null @@ -1,53 +0,0 @@ -Chrome brouwsen, alle commando's in het Nederlands - - -:TABLE firstcoldifferent=1, border=1: -:HEADING:commando -:COL:commentaar - -:ROW:toon (getallen | nummers) [{additionalonoroff}] - -(getallen | nummers) {additionalonoroff} -:COL:Schakel de getallen in, met mogelijk aanvullende opties. - -*aan* en *uit* behoren ook tot de opties. - -De opties kunnen worden geconfigureerd, bijvoorbeeld met contrast, overlay, hybrid, of een combinaties ervan. - - -:ROW:verberg (getallen | nummers) - -(nummers | getallen) uit -:COL:Verberg de getallen - -:ROW: -klik {number} - -klik {number} {navigateoptions} -:COL: Volg de genummerde link, optioneel met een aanvullende optie. - -Deze opties kunnen worden geconfigureerd, bijvoorbeeld "nieuw tabblad", "nieuw venster". - -Maar ook zijn er opties als "nieuw tabblad blijf", "focus" of "link kopieren". -:: - - - Overige commando's: - -:TABLE firstcoldifferent=1, border=1: -:ROW: volgende pagina | vorige pagina - -pagina (terug|vooruit) [{1-20}] - -{pagecommands} pagina | pagina {pagecommands} -:COL: navigeer binnen het tabblad naar vorige of volgende pagina's -:: - -*pagecommands* heeft standaard (default) alleen de optie *vernieuwen*. -:: - --Voor het navigeren tussen de verschillende tabbladen, zie link(/grammars/globalgrammars/tasks/index.html, "*Tasks (taken) grammatica*"), documentatie moet nog uptodate worden gemaakt. - - - - diff --git a/website unimacro/source/4_grammars/c_specific grammars/a_Chrome_browsing/c_Installing Click by Voice.txt b/website unimacro/source/4_grammars/c_specific grammars/a_Chrome_browsing/c_Installing Click by Voice.txt deleted file mode 100644 index 05c3dc4..0000000 --- a/website unimacro/source/4_grammars/c_specific grammars/a_Chrome_browsing/c_Installing Click by Voice.txt +++ /dev/null @@ -1,45 +0,0 @@ -Installing *CbV* (Click by Voice) - -A splendid chrome extension written by Mark Lillibridge. - - -This extension can be installed most easily by following the steps below: - --Also you can view this link(https://youtu.be/6qrjuTCX6Rw, demo video) on how to install this extension in chrome. - -=Go to the extensions window of chrome (via button at the right top corner) -=Search for the extension "clickbyvoice" -=Choose "Add to Chrome" and there you are. - -Once you have this extension installed, you need voice recognition macro's in order to use the extension by speech. - -In his page link(https://github.com/mdbridge/click-by-voice, click by voice), Mark Lillibridge shows you how to do this with Vocola commands. - -It can also been done with commands in a Unimacro grammar, with is presented in link(/grammars/specificgrammars/chromebrowsing/index.html, this section) on this website. But first be sure you have properly activated the grammar: - - Activate grammar in Unimacro - -By default this grammar is located in the subfolder *DisabledGrammars* of the Unimacro directory. - --Please copy the file *chrome_browsing.py* into the Unimacro directory. --If the microphone is toggled with Chrome in the foreground, the grammar should be switched on. - -Check that about the following text is printed in your "Messages from NatLink" window: - -:CODE: -Cannot find inifile: (...)\enx_inifiles\chrome_browsing.ini -take sample inifile: (...)\sample_ini\enx_inifiles\chrome_browsing.ini -===Created new inifile for grammar "chrome_browsing" -===Please edit this file by calling the command "edit Chrome Browsing" - IniGrammar switched on: chrome browsing -_control, added Unimacro grammar(s): ['chrome browsing'] -:: - -So if you want to edit you options of this grammar, say *edit Chrome Browsing*. - -Now you are switched on, and on the starting point of this video: - -witregel() - - - diff --git a/website unimacro/source/4_grammars/c_specific grammars/a_Chrome_browsing/chromebrowsing.ini b/website unimacro/source/4_grammars/c_specific grammars/a_Chrome_browsing/chromebrowsing.ini deleted file mode 100644 index 9dbf73b..0000000 --- a/website unimacro/source/4_grammars/c_specific grammars/a_Chrome_browsing/chromebrowsing.ini +++ /dev/null @@ -1,10 +0,0 @@ -[allcommandsenglish] -name = allcommandsenglish - - -[commandosnederlands] -name = commandosnederlands - - -[installingclickbyvoice] -name = installingclickbyvoice diff --git a/website unimacro/source/4_grammars/c_specific grammars/a_Chrome_browsing/index.txt b/website unimacro/source/4_grammars/c_specific grammars/a_Chrome_browsing/index.txt deleted file mode 100644 index 3191bab..0000000 --- a/website unimacro/source/4_grammars/c_specific grammars/a_Chrome_browsing/index.txt +++ /dev/null @@ -1,76 +0,0 @@ -Chrome browsing, Click by Voice - -This grammar makes it possible to browse (follow links) by number in Google Chrome. - - Click by Voice -This grammar uses the Chrome extension *Click by Voice* (*CbV*) written by Mark Lillibridge. - -If you do not have "Click by Voice" yet, please follow the instructions for -link("installingclickbyvoice.html", "*installing Click by Voice and activating the grammar*"). - -After you have done this, you should be able to use the grammar. There is also a link(https://youtu.be/8-qgdcJfTY0, demo video) about starting up things and how to use Click by Voice with this Unimacro grammar *Chrome browsing*. - - The most important commands: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:comment - -:ROW:show numbers | numbers on -:COL:switch on the numbers - -:ROW:hide numbers | numbers off -:COL:switch off the numbers - -:ROW:pick {number}; -:COL:Take the numbered link - -:: - -For more commands see link("allcommandsenglish.html", "*all commands of Chrome Browsing*"). - -Deze grammatica is ook vertaald in het Nederlands. Zie link("commandosnederlands.html", "*commando's Nederlands*"). - - The lists - --*additionalonoroff*, *navigateoptions* and *pagecommands* can be configured from the configuration file: call *edit Chrome Browsing*. - --The *number* list comes from a very complicated set of rules. When you call *show Chrome Browsing* you get a complete list of the grammar rules, including the rules that catch the numbers. The numbers up to 999 are the easiest to call. For numbers above 1000 you should call the digits: - -:CODE: -one -twenty three -hundred -three hundred nineteen -three nineteen -one zero two -three oh five seven -:: - - General options -In the section [general] of the configuration file you can set the default *show numbers* options. - -Always combine with *:+* . A combination of options is possible. - -Current default is hybrid, *:+h* - - -Other possibilities are (combinations of): - -:TABLE firstcoldifferent=1, border=1: -:HEADING:option -:COL:letter - -:ROW:hybrid -:COL::+h - -:ROW:contrast -:COL::+c - -:ROW:overlay -:COL::+o - -:ROW:hybrid contrast -:COL::+hc - -:: diff --git a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/a_all commands English.txt b/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/a_all commands English.txt deleted file mode 100644 index 45b686d..0000000 --- a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/a_all commands English.txt +++ /dev/null @@ -1,71 +0,0 @@ -Firefox browsing, all commands - - - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:comment - -:ROW:toggle numbers | give numbers | hide numbers | clear numbers - -numbers on | numbers off -:COL:To switch on or off the numbers of MLB. - -Unfortunately MLB only has a toggle to switch to another mode. - -With numbers NOT shown the choose | follow commands still work! - -:ROW: -follow {number} - -new {number} - -focus {number} - -follow {number} context menu - -follow {number} new tab -:COL: follow the numbered link, - -open the numbered link in a new tab - -put keyboard focus on the link - -put keyboard focus on the link and open the context menu - -open the numbered link in a new tab -:ROW: next tab | previous tab - -tab number {1-20} | tab [number] minus {1-20} - -tab (number|minus) {1-9} {tabcommands} - -{tabcommands} tab | tab {tabcommands} - -(next | previous) tab {tabcommands} - -:COL: Navigate the tabs. - -Minus counts tabs from the right side of the screen. - -*tabcommands* contains currently *refresh* and *close*. - - -:ROW: next page | previous page - -page (back|forward) [{1-20}] - -{pagecommands} page | page {pagecommands} -:COL: navigate the pages inside a tab. - -*pagecommands* contains currently only *refresh*. - -:: - - The lists - --*tabcommands* and *pagecommands* can be configured from the configuration file: call *edit Firefox Browsing* to edit. - --The *number* list comes from a very complicated set of rules. When you call *show Firefox Browsing* you get a complete list of the grammar rules, including the rules that catch the numbers. Some small numbers do not react all the time. You can call for example _follow 17_ as either _follow seventeen_ or _follow one seven_. Or _choose 123_ as _choose hundred twenty three_ or _choose one twenty three_ or _choose one two three_. - - diff --git a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/b_commandos Nederlands.txt b/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/b_commandos Nederlands.txt deleted file mode 100644 index d59717b..0000000 --- a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/b_commandos Nederlands.txt +++ /dev/null @@ -1,75 +0,0 @@ -Firefox browsen, commando's Nederlands - -De gehele grammatica kan worden bekeken met het commando *toon Firefox Browsen* (of met *toon alle grammaticaas*). Om redenen van herkenning wordt *Firefox browsen* intern geschreven als *Faajer foks brouwsen*. - - -:TABLE firstcoldifferent=1, border=1: -:HEADING:commando -:COL: commentaar - -:ROW: toon nummers | tokkel nummers | verberg nummers - -nummers aan | nummers uit -:COL: Om de nummers/getallen weer te geven of te verbergen. (*Tokkel* is het fonetische equivalent van het Engelse *toggle*.) - - -MLB kent alleen een *tokkel/toggle* toets om de nummers aan en uit te zetten. Dus alle alternatieven hierboven doen hetzelfde. - - -:ROW:volg {nummer} - -volg {nummer} (niew tabblad | context menu| snelmenu) - -focus {nummer} - -nieuw {nummer} -:COL: - -Volg de genummerde link, - -open de genummerde link in a nieuw tabblad, of geef het snelmenu (context menu), of - -Zet de toetsenbord focus op de genummerde link. - -Volg de genummerde link in een nieuw tabblad - -:ROW: volgend tabblad | vorig tabblad - -tabblad {1-20} | tabblad min {1-20} - -{tabcommands} tabblad | tabblad {tabcommands} - -(volgende|vorig) tabblad {tabcommands} | - -tabblad [min] {1-20} {tabcommands} - -:COL: navigeer tussen de tabbladen. Met *Min* tel je vanaf de rechterkant van het scherm. - -*tabcommands* bevat momenteel *vernieuw* / *vernieuwen* and *sluit* / *sluiten*. - -Let op de verschillen met de Engelse woorden als een genummerd tabblad wordt gevraagd: hier is het *tabblad*, in het Engels is *tab number* nodig. - -:ROW: volgende pagina | vorige pagina - -{pagecommands} pagina - -pagina {pagecommands} - -pagina (terug|verder|vooruit)[{1-20}] - -:COL: navigeer door de pagina's binnen hun tabblad - -*pagecommands* bevat op dit moment alleen *vernieuw* / *vernieuwen*. - -:ROW: {2-20} tabbladen sluiten -:COL: sluit een aantal tabbladen (beetje gevaarlijk) - - -:: - - De lijsten - --*tabcommands* en *pagecommands* kunnen worden aangepast in de inifile van deze grammatica. Roep *bewerk Firefox Browsen* hiertoe. - --De *nummer* lijst is een gecompliceerde verzameling grammatica regels. Als je roept: *toon Firefox Browsen* krijg je de complete lijst grammaticaregels, inclusief de regels die de getallen herkennen. Enkele kleine getallen worden niet steeds herkend. Als je bijvoorbeeld _volg 12_ wilt hebben, kun je dit doen met _volg twaalf_ of _volg een twee_. Om _kies 123_ te krijgen kun je zeggen _kies honderd 23_ of _kies een 23_ of _kies een twee drie_. - diff --git a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/c_Installing MLB.txt b/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/c_Installing MLB.txt deleted file mode 100644 index 129c035..0000000 --- a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/c_Installing MLB.txt +++ /dev/null @@ -1,33 +0,0 @@ -Installing *MLB* (Mouseless browsing extension of Firefox) - -This extension can be installed most easily by following the steps below. - -:TABLE firstcoldifferent=1, border=1: - -:ROW:Choose *Tools -> Add-ons* in Firefox. -:COL:image("tools-addons.png",width=400,alt="Firefox get tools menu") - -:ROW:Click on "Get extensions" (top left) -:COL:image("get-extensions.png",alt="Get extensions pages of Firefox") - -:ROW: Search for *mouseless browsing* -:COL:image("search-for-MLB.png",width=400,alt="search for the correct keyword") - -:ROW: Locate the MLB search result, possibly search ones more for the same text. -:COL:image("mouseless-browsing.png",width=400,alt="the extension you must have!") - -:ROW: At the bottom of the page choose *Install Now* -:COL:image("install-now.png") - -:ROW: In the Firefox dialog box (after a short time) again choose *Install Now* -:COL:image("installation-install-now.png",width=400,alt="confirm the installation") - -:ROW: Finally restart Firefox -:COL:image("restart-Firefox.png",width=400) - -:: - -Now you can by hand toggle the numbers by pressing the "." (Del) key of the numeric keypad, with *Num lock* on. - -The speech commands should now also work. If not try to restart NatSpeak. - diff --git a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/firefoxbrowsing.ini b/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/firefoxbrowsing.ini deleted file mode 100644 index 6b6d796..0000000 --- a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/firefoxbrowsing.ini +++ /dev/null @@ -1,19 +0,0 @@ -[allcommandsenglish] -new page = 07 Jan 2008 - - -[allecommandosnederlands] -lastmod = 2008-01-07 -obsolete = 03 mrt 2021 - - -[commandosnederlands] -new page = 07 Jan 2008 - - -[index] -new index = 05 Jan 2008 - - -[installingmlb] -new page = 05 Jan 2008 diff --git a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/get-extensions.png b/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/get-extensions.png deleted file mode 100644 index d2e0d5d..0000000 Binary files a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/get-extensions.png and /dev/null differ diff --git a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/index.txt b/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/index.txt deleted file mode 100644 index f4f7a45..0000000 --- a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/index.txt +++ /dev/null @@ -1,33 +0,0 @@ -Firefox browsing - -This grammar makes it possible to browse (follow links) by number in Firefox. - - Mouseless browsing (MLB) -This grammar uses the Firefox extension *MLB* (Mouseless browsing). - -If you do not have MLB yet, please follow the instructions for -link("installingmlb.html", "*installing MLB*"). - - - The most important commands: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:comment - -:ROW:toggle numbers -:COL:to switch on or off the numbers of MLB - -:ROW:follow|new [number] -:COL:Follow the numbered link (with *new* open link in new tab) - -:: - -For more commands see link("allcommandsenglish.html", "all commands of Firefox Browsing"). - -Deze grammatica is ook vertaald in het Nederlands. Zie link("commandosnederlands.html", "commando's Nederlands"). - - Hit a Hint (HaH) -This is another Firefox extension that can number all links, and follow them subsequently. The advantage over MLB is, that the page doesn't have to be fully loaded before the numbers are shown. Hit a Hint is considered as obsolete at present (nov 2010) - -The grammar Firefox Browsing is designed to work in either MLB or HaH. This is done by setting a variable inside the grammar (Python file). *HaH* is not fully tested anymore, as *MLB* seems to be more convenient. \ No newline at end of file diff --git a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/install-now.png b/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/install-now.png deleted file mode 100644 index ecad48b..0000000 Binary files a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/install-now.png and /dev/null differ diff --git a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/installation-install-now.png b/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/installation-install-now.png deleted file mode 100644 index 540a7f6..0000000 Binary files a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/installation-install-now.png and /dev/null differ diff --git a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/mouseless-browsing.png b/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/mouseless-browsing.png deleted file mode 100644 index 5415804..0000000 Binary files a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/mouseless-browsing.png and /dev/null differ diff --git a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/restart-firefox.png b/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/restart-firefox.png deleted file mode 100644 index b246a52..0000000 Binary files a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/restart-firefox.png and /dev/null differ diff --git a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/search-for-MLB.png b/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/search-for-MLB.png deleted file mode 100644 index 2f3d857..0000000 Binary files a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/search-for-MLB.png and /dev/null differ diff --git a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/tools-addons.png b/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/tools-addons.png deleted file mode 100644 index ca9b57c..0000000 Binary files a/website unimacro/source/4_grammars/c_specific grammars/a_Firefox browsing/tools-addons.png and /dev/null differ diff --git a/website unimacro/source/4_grammars/c_specific grammars/b_Excel/excel.ini b/website unimacro/source/4_grammars/c_specific grammars/b_Excel/excel.ini deleted file mode 100644 index e69de29..0000000 diff --git a/website unimacro/source/4_grammars/c_specific grammars/b_Excel/index.txt b/website unimacro/source/4_grammars/c_specific grammars/b_Excel/index.txt deleted file mode 100644 index 0534a18..0000000 --- a/website unimacro/source/4_grammars/c_specific grammars/b_Excel/index.txt +++ /dev/null @@ -1,14 +0,0 @@ -Grammar for Microsoft Excel - -This grammar obtains specific knowledge about the running Excel instance by the link(/features/actions/actionclassesforapplications.html, action classes module for Excel). - -Note: Excel can only connect to one Excel instance, if you have more instances running, you will able to do the commands only in one of them. Solution: close all Excel instances and work only from one instance. - -This grammar is still work in progress. Please try "show excel" and you will see the possible commands. - -Jumping to Columns is done by this grammar, - -Jumping to Rows is done by the link(/grammars/globalgrammars/lines/index.html, *grammar _lines*). A *Row* is thus called *line*, unless you change the command words in the grammar lines (*edit lines*, and change the section [grammar words]). - - - diff --git a/website unimacro/source/4_grammars/c_specific grammars/index.txt b/website unimacro/source/4_grammars/c_specific grammars/index.txt deleted file mode 100644 index 6a90f53..0000000 --- a/website unimacro/source/4_grammars/c_specific grammars/index.txt +++ /dev/null @@ -1,18 +0,0 @@ -Program specific grammars - -The grammars described in this section are specific to one program. - -The python file starts with the name of the application, like *firefox_browsing.py*. - -A lot of program specific things can be done outside these grammars: - --Vocola commands (see documentation of Vocola outside this website) --adaptations in the grammar link("/grammars/globalgrammars/keystrokes/index.html", "*_keystrokes*"), --adaptations of link("/features/actions/index.html", "*actions*"). - -At this moment specific grammars are only presented for --link("chromebrowsing/index.html", "Chrome Browsing") (with Click by Voice), --link("firefoxbrowsing/index.html", "Firefox browsing"), --link("excel/index.html", "Excel") (work in progress). - - diff --git a/website unimacro/source/4_grammars/c_specific grammars/specificgrammars.ini b/website unimacro/source/4_grammars/c_specific grammars/specificgrammars.ini deleted file mode 100644 index 5ed6612..0000000 --- a/website unimacro/source/4_grammars/c_specific grammars/specificgrammars.ini +++ /dev/null @@ -1,6 +0,0 @@ -[firefoxbrowsing] -new menu = 05 Jan 2008 - - -[index] -new index = 05 Jan 2008 diff --git a/website unimacro/source/4_grammars/grammars.ini b/website unimacro/source/4_grammars/grammars.ini deleted file mode 100644 index 862a26d..0000000 --- a/website unimacro/source/4_grammars/grammars.ini +++ /dev/null @@ -1,19 +0,0 @@ -[control] -new menu = 23 Jul 2006 - - -[games] -new menu = 23 Jul 2006 - - -[globalgrammars] -new menu = 05 Jan 2008 - - -[specificgrammars] -new menu = 05 Jan 2008 - - -[unimacrotest] -lastmod = 2007-05-22 -new page = 22 May 2007 diff --git a/website unimacro/source/4_grammars/grammarsss.ini b/website unimacro/source/4_grammars/grammarsss.ini deleted file mode 100644 index e69de29..0000000 diff --git a/website unimacro/source/4_grammars/index.txt b/website unimacro/source/4_grammars/index.txt deleted file mode 100644 index 1891b75..0000000 --- a/website unimacro/source/4_grammars/index.txt +++ /dev/null @@ -1,62 +0,0 @@ -Grammars - -The different commands of Unimacro are ordered in grammar files, and are located in the *UserDirectory* of NatLink, by default _NatLink\Unimacro_ on the drive you installed NatLink in. Each grammar file contains grammar rules, defining simple and more complex commands, and their corresponding actions whenever a command hits. - - - Global grammars - -Grammar files that start with a *_* (underscore) are global, i.e. accessible all the time. You can use commands from these grammars in any window/application (although the grammar may activate/deactivate itself or can be activated/deactivated in some cases). - -From release 3.9 on only a small set of grammars is published by default, currently: - -:TABLE firstcoldifferent=0: -:HEADING:Grammar -:COL:Comment -:ROW: -link(control/index.html, _control) -:COL:This grammar can control the on or off state of other grammars and gives introspection about Unimacro grammars. - -This grammar should not be removed from the Unimacro directory, and cannot be switched off by a voice command. -:ROW:link(globalgrammars/folders/index.html, _folders) -:COL:With commands from this grammar you can jump to folders, either in a _My Computer_ window or in a dialog window (like _File Open_). - -With additional commands you can jump to specific _files_ or specific _websites_. - -:ROW:link(globalgrammars/tasks/index.html, _tasks.py) -:COL:Switch to a _task_, as found (and numbered) on the taskbar or as defined by name. - - -:ROW:link(globalgrammars/lines/index.html, _lines.py) -:COL:With this grammar you can jump to a specific _line_ in some editable file (for example for programmers), or in Excel (version to come). - -Also cut, copy, delete and insert lines, and move or copy lines from one place to another. -:ROW:link(globalgrammars/general/index.html, _general.py) -:COL:A lot of general commands, from which _give window info_ is important for introspection. -:: - - Program specific grammars: - -There are only a few of them currently, and not displaying by default: - -:TABLE firstcoldifferent=0: -:HEADING:Grammar -:COL:Comment -:ROW:link(specificgrammars/chromebrowsing/index.html, chrome_browsing.py) -:COL:Allows you to browse in Chrome by calling the numbers that are shown by the "Click by Voice" extension written by Mark Lillibridge. -:: - - Activate other grammars - -If you want to use other grammars, you can move/copy them from the subfolder *DisabledGrammars* into your _UnimacroDirectory_. - -Also note some grammars will have the *initial on* flag *disabled*. You can either switch on the grammar with the speech command *switch on grammarname*, or change this flag in the .ini file (say *edit grammarname*) - - Minimise your Unimacro configuration - -If you only want Unimacro facilities for your Vocola commands, you may want to switch off (remove from the Unimacro directory, by deleting the python (*.py*) files or moving them into the subfolder _DisabledGrammars_). You can do this with all grammar files mentioned above, *except for _control.py*. - -Restart Dragon after you make such changes. - - Updating configuration files -If you used some grammar before, but new options have been added, or options changed, you may have to update your configuration (.ini) file. See link(/features/inifiles.html, ini files section) for more instructions. - diff --git a/website unimacro/source/4_grammars/y_unimacro test/Copy of index.txt b/website unimacro/source/4_grammars/y_unimacro test/Copy of index.txt deleted file mode 100644 index e69de29..0000000 diff --git a/website unimacro/source/4_grammars/y_unimacro test/a_Actions.txt b/website unimacro/source/4_grammars/y_unimacro test/a_Actions.txt deleted file mode 100644 index 1a4d7f8..0000000 --- a/website unimacro/source/4_grammars/y_unimacro test/a_Actions.txt +++ /dev/null @@ -1,18 +0,0 @@ -unittest Actions - -In the file *ActionsTest.py* (of the subfolder *unimacro_test* of the Unimacro folder) are brought together tests that test the actions mechanism of Unimacro. - -Tested are: --The handling of arguments of actions (conversion from text into numbers) --The return values, so sometimes an action breaks off halfway. --The timing of the *W* (Wait) action. - - -Running this test (by calling *Unimacro test actions*) can always be performed, as long as DragonPad is not (active and nonempty). - - - - - - - diff --git a/website unimacro/source/4_grammars/y_unimacro test/b_Bringup.txt b/website unimacro/source/4_grammars/y_unimacro test/b_Bringup.txt deleted file mode 100644 index 241efdc..0000000 --- a/website unimacro/source/4_grammars/y_unimacro test/b_Bringup.txt +++ /dev/null @@ -1,25 +0,0 @@ -Testing the BRINGUP Unimacro shorthand command - -*BRINGUP* is a powerful USC that can switch to several predefined programs as well. Also can be used in task switching. - -As a side effect the *KW* (Kill Window) USC is used and therefore tested. - -The different tests can be configured. See the source. - - -Each of the tests are protected with a *YesNo* dialog box, so you can refuse each of the tests individually. - -For example when you do not use *voicecode* you can skip these tests. - -Programs that are brought up also killed again in the test, except for the ones that are specifically mentioned in the YesNo dialog box. - - - VoiceCode bringup - -This one is more involved: it can be brought up (cmd, the mediator, emacs, the correct user). - -After VoiceCode has been brought up the next test checks the user switching. So if the user is different from *VoiceCode* again this BringUp command switches back to the user *VoiceCode*. - -Call this test with *Unimacro test bringup*. - - diff --git a/website unimacro/source/4_grammars/y_unimacro test/c_clipboard.txt b/website unimacro/source/4_grammars/y_unimacro test/c_clipboard.txt deleted file mode 100644 index 7eed403..0000000 --- a/website unimacro/source/4_grammars/y_unimacro test/c_clipboard.txt +++ /dev/null @@ -1,15 +0,0 @@ -testing clipboard functions - -This test only needs an empty DragonPad window. - -Also testing some of the *meta actions* like --*<<select all>>*, --*<<copy>>* and --*<<paste>>*. - -Especially the USCs --*CLIPSAVE* and --*CLIPRESTORE* are tested here, with the intermediate --*CLIPISNOTEMPTY*, which returns false if the clipboard is empty. - -Call with *Unimacro test clipboard*. diff --git a/website unimacro/source/4_grammars/y_unimacro test/index.txt b/website unimacro/source/4_grammars/y_unimacro test/index.txt deleted file mode 100644 index fdda058..0000000 --- a/website unimacro/source/4_grammars/y_unimacro test/index.txt +++ /dev/null @@ -1,31 +0,0 @@ -unittest Unimacro - -The grammar *_unimacro_test.py* provides calls to unittest scripts, which do testing of part of Unimacro functionality. - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command -:COL:action - -:ROW: Unimacro test all -:COL: do all the tests, but prompt for each test - -:ROW: Unimacro test {tests} -:COL: do one of the tests, do not prompt. -:: - -If necessary the tests ask you relevant questions. - -The result of the tests is written into *testresult.txt" in the *unimacro_test* folder. This is a subfolder of the Unimacro folder, which also holds the tests. - - Writing new tests - -If you want to make new tests put them in the subfolder "unimacro_test" of the Unimacro full. Give them the name *XyzTest.py* and make the class that contains the tests the same name: *Xyztest*. - -Restart NaturallySpeaking before you can call this new test. - -The current test names are presented in the pages below. - - - - - diff --git a/website unimacro/source/4_grammars/y_unimacro test/m_messages.txt b/website unimacro/source/4_grammars/y_unimacro test/m_messages.txt deleted file mode 100644 index c3de7e5..0000000 --- a/website unimacro/source/4_grammars/y_unimacro test/m_messages.txt +++ /dev/null @@ -1,9 +0,0 @@ -messages test - -This tests the *YesNo* and the *Message* dialog boxes. Also when quotes, new line characters or "\r" characters are used in the message text are handled correct. These character in a window title will be removed. - -These dialog boxes can also be called with the Unimacro shorthand commands (USCs) *YESNO* and *MSG* (or *MESSAGE*). - -This test is always safe to call, and you can do the different "sub"-tests on prompt. - -Call *Unimacro test message* to run this test. \ No newline at end of file diff --git a/website unimacro/source/4_grammars/y_unimacro test/unimacrotest.ini b/website unimacro/source/4_grammars/y_unimacro test/unimacrotest.ini deleted file mode 100644 index c6d4abe..0000000 --- a/website unimacro/source/4_grammars/y_unimacro test/unimacrotest.ini +++ /dev/null @@ -1,18 +0,0 @@ -[actions] -new page = 23 May 2007 - - -[bringup] -new page = 23 May 2007 - - -[clipboard] -new page = 23 May 2007 - - -[index] -new index = 23 May 2007 - - -[messages] -new page = 23 May 2007 diff --git a/website unimacro/source/4_grammars/z_games/a_patience.txt b/website unimacro/source/4_grammars/z_games/a_patience.txt deleted file mode 100644 index 4380a58..0000000 --- a/website unimacro/source/4_grammars/z_games/a_patience.txt +++ /dev/null @@ -1,81 +0,0 @@ -Speel patience met uw stem! - -Met de grammatica "sol" is dit nu mogelijk. Deze grammatica maakt gebruik van de mogelijkheid om via spraakherkenning met de muis te bewegen en te slepen. - - - De basis commando's zijn: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:zeg: -:COL:resultaat - -:ROW:kaart 1-7 -:COL:verplaatst de muis naar een rij kaarten (dus 1, 2, 3, 4, 5, 6 of 7) - -:ROW:nieuwe kaart
volgende
verder
ga door -:COL:een nieuwe kaart trekken - -:ROW:naar stapel 1-4 -:COL:sleep kaart vanaf de muis positie naar een van de 4 stapels - -:ROW:naar 1-7 -:COL:sleep vanaf de muispositie naar een van de 7 rijen - -:ROW:1-7 naar stapel 1-4 -:COL:sleep van een van de rijen naar een van de 4 stapels - -:ROW:1-7 naar 1-7 -:COL:sleep van de ene rij naar de andere - -:ROW:kaart naar 1-7 -:COL:sleep de laatst getrokken kaart naar een van de rijen - -:ROW:kaart naar stapel 1-4 -:COL:sleep de laatst getrokken kaart naar een van de stapel -:: - - - Aanvullende commando's: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:zeg: -:COL:resultaat: - -:ROW:pauzes 0-7 -:COL:Na elk deel van een actie wordt even gepauzeerd. Deze pauzes kunnen met deze commando's worden verlengd of verkort (0 is het snelst, 3 is de standaardwaarde) - -:ROW:stapel automatisch -:COL:verplaats kaarten automatisch naar de 4 stapels na elke beurt - -:ROW:muis hoger
muis lager
muis hoger 1-7
muis lager 1-7 -:COL:om de muis iets hoger of iets lager op een rijtje kaarten te krijgen. Dit is handig als je op een rij positioneert maar de muis staat niet (verticaal) op de juiste kaart. Je kunt vervolgen met "naar 1-7" of "naar stapel 1-4" -:: - - commando's die via de grammatica _commandoos_ worden gedefinieerd: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:zeg: -:COL:resultaat: - -:ROW:opnieuw delen -:COL:de toetsencombinatie {f2} -:: - - - - De hele grammatica (vertaald vanuit het Engelse origineel): - -:CODE: - exported = kaart {cnum}; - exported = nieuwe kaart|volgende|'ga door'|verder; - exported = naar ((stapel {snum})|{cnum}); - exported = kaart naar ((stapel {snum})|{cnum}); - exported = [kaart] {cnum} naar ((stapel {snum})|{cnum}); - exported = muis (lager|hoger) [{cnum}]; - exported = pauzes (0 |{cnum}); - exported = stapel automatisch;:: - - Programmeer opmerkingen: - --na elke sleep beweging moet even worden gepauzeerd, zo de minimum pauze tijd is 0.05 sec. --deze grammatica is een oefening in het slepen van de muis met NatSpeak/natpython diff --git a/website unimacro/source/4_grammars/z_games/a_solitaire.txt b/website unimacro/source/4_grammars/z_games/a_solitaire.txt deleted file mode 100644 index 78d9560..0000000 --- a/website unimacro/source/4_grammars/z_games/a_solitaire.txt +++ /dev/null @@ -1,81 +0,0 @@ -The game of solitaire by voice! - -With the grammar "sol" it is now possible to play solitaire by voice. - -This grammar relies on mouse movement and mouse dragging commands. - - The basic commands are: - -:TABLE firstcoldifferent=1, border=1: - -:HEADING:command: -:COL:result: - -:ROW:card 1-7 -:COL:move the mouse to one of the card piles (1, 2, 3, 4, 5, 6 or 7) - -:ROW:new card
next
go on
continue -:COL:draw a new card - -:ROW:to stack 1-4 -:COL:drag a card from the mouse position to one of the four stacks - -:ROW:to 1-7 -:COL:drag a card from the mouse position to one of the seven piles - -:ROW:1-7 to stack 1-4 -:COL:drag from one of the piles to one of the stacks - -:ROW:1-7 to 1-7 -:COL:drag from one pile to another - -:ROW:card to 1-7 -:COL:drag the last drawn card to one of the piles - -:ROW:card to stack 1-4 -:COL:drag the last drawn card to one of the stacks -:: - - - Additional commands: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command: -:COL:result: - -:ROW:pauses 0-7 -:COL:do some pausing after each command and each movement: pauses 0-7 (0 = off, fastest actions) (default=3) - -:ROW:mouse (higher | lower) [1-7]", 'this is useful when you position on a pile, but the mouse pointer does not point to the desired card; continue with "to 1-7"'], - -:ROW:stack automatically", 'after each move to all possible cards to the stacks ']])]]] - - command(s) to be defined with the commands grammar: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:command: -:COL:result: - -:ROW:new game -:COL:the keystroke {f2} -:: - - - -The complete grammar (can be changed with the command "edit solitaire"): - -:CODE: - exported = card {cnum}; - exported = new card|next|'go on'|continue; - exported = to ((stack {snum})|{cnum}); - exported = card to ((stack {snum})|{cnum}); - exported = [card] {cnum} to ((stack {snum})|{cnum}); - exported = mouse (lower|higher) [{cnum}]; - exported = pauses (0 |{cnum}); - exported = stack automatically; -:: - -Programming notes: - --a little bit pausing has to be done after all the dragging commands, so the minimum waiting time is 0.05 sec. --this grammar is an exercise in mouse moving and dragging. diff --git a/website unimacro/source/4_grammars/z_games/b_freecell.txt b/website unimacro/source/4_grammars/z_games/b_freecell.txt deleted file mode 100644 index d647f18..0000000 --- a/website unimacro/source/4_grammars/z_games/b_freecell.txt +++ /dev/null @@ -1,64 +0,0 @@ -Speel freecell met uw stem! - -Dit is mogelijk met deze grammatica "freecell.py" binnen het Unimacro/NatLink pakket dat gekoppeld is aan Dragon NaturallySpeaking. - - De basis commando's zijn: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:zeg: -:COL:resultaat - -:ROW:kaart 1-8 -:COL:verplaatst de muis naar een rij kaarten (dus 1, 2, 3, 4, 5, 6, 7 of 8) - -:ROW:naar stapel 1-4 -:COL:verplaats de onderste kaart van de betreffende rij naar een van de 4 stapels rechtsboven - -:ROW:naar 1-8 -:COL:verplaats kaarten van de betreffende rij naar een andere rij - -:ROW:naar vrij -:COL:verplaats onderste kaart van de betreffende rij naar een vrije plaats, linksboven - -:ROW:1-8 naar stapel 1-4 -:COL:verplaats van rij naar een van de 4 stapels - -:ROW:1-8 naar 1-8 -:COL:verplaats van rij naar andere rij - -:ROW:1-8 naar vrij -:COL:verplaats van rij naar vrije cel -:: - - - Aanvullende commando's: - -:TABLE firstcoldifferent=1, border=1: -:HEADING:zeg: -:COL:resultaat: - -:ROW:toon eerste kaart
toon tweede kaart...
toon volgende kaart", 'hou de rechtermuisknop ingedrukt op een bepaalde kaart. Doe dit commando na "kaart 1-8"'], - -:ROW:pauzes 0-8 -:COL:Na elk deel van een actie wordt even gepauzeerd. Deze pauzes kunnen met deze commando's worden ingesteld, 0=minimaal, 8= maximaal, standaard=2 - -:ROW:ongedaan maken
terug
vorige -:COL:Maakt de laatste actie ongedaan -:: - - - - De hele grammatica: - - exported = kaart {knum}; - exported = naar ((stapel {snum})|vrij|{knum}); - exported = vrij {snum} naar ((stapel {snum})|{knum}); - exported = {knum} naar ((stapel {snum})|vrij|{knum}); - exported = pauzes (0 |{knum}); - exported = toon {numcard} kaart; - exported = (ongedaan maken)| terug | vorige; - - Programmeer opmerkingen: - --de "toon"-commando's zijn niet vlekkeloos. --deze grammatica is vooral een oefening in het bedienen van de muis \ No newline at end of file diff --git a/website unimacro/source/4_grammars/z_games/games.ini b/website unimacro/source/4_grammars/z_games/games.ini deleted file mode 100644 index c69c2d1..0000000 --- a/website unimacro/source/4_grammars/z_games/games.ini +++ /dev/null @@ -1,10 +0,0 @@ -[freecell] -new page = 28 Jul 2005 - - -[patience] -new page = 28 Jul 2005 - - -[solitaire] -new page = 28 Jul 2005 diff --git a/website unimacro/source/5_about Unimacro/a_Donation/a_donationsuccess.txt b/website unimacro/source/5_about Unimacro/a_Donation/a_donationsuccess.txt deleted file mode 100644 index 2633448..0000000 --- a/website unimacro/source/5_about Unimacro/a_Donation/a_donationsuccess.txt +++ /dev/null @@ -1,5 +0,0 @@ -Thank you for making a donation. - -This is very much appreciated. - -Quintijn Hoogenboom \ No newline at end of file diff --git a/website unimacro/source/5_about Unimacro/a_Donation/b_donationfail.txt b/website unimacro/source/5_about Unimacro/a_Donation/b_donationfail.txt deleted file mode 100644 index f87e6c5..0000000 --- a/website unimacro/source/5_about Unimacro/a_Donation/b_donationfail.txt +++ /dev/null @@ -1,7 +0,0 @@ -Fail - -Making a donation seems to have failed at PayPal. - -If you intended to make a donation, please try again, or contact mailto(q.hoogenboom@antenna.nl, Quintijn) for other options to support the work done on NatLink/Unimacro/Vocola. - -Quintijn Hoogenboom \ No newline at end of file diff --git a/website unimacro/source/5_about Unimacro/a_Donation/donation.ini b/website unimacro/source/5_about Unimacro/a_Donation/donation.ini deleted file mode 100644 index 0c6a267..0000000 --- a/website unimacro/source/5_about Unimacro/a_Donation/donation.ini +++ /dev/null @@ -1,14 +0,0 @@ -[donationfail] -hidden = 1 -name = donationfail - - -[donationsucces] -name = donationsucces -obsolete = 03 mrt 2021 - - -[donationsuccess] -hidden = 1 -name = donationsuccess -obsolete = 26 okt 2011 diff --git a/website unimacro/source/5_about Unimacro/a_Donation/index.txt b/website unimacro/source/5_about Unimacro/a_Donation/index.txt deleted file mode 100644 index aaa870d..0000000 --- a/website unimacro/source/5_about Unimacro/a_Donation/index.txt +++ /dev/null @@ -1,62 +0,0 @@ -Make a donation - -Natlink has been kept "alive" for about 20 years by now. Several other packages are built on top of Natlink, like Unimacro, Voicecode (now obsolete) and Dragonfly. And on top of Dragonfly, many people use Caster and Mathfly. - -With the release of Dragon 15, now already several years ago, a few essential changes had to be made in the C++ interface, natlink.pyd, that connects Dragon with the python programs. - -Starting in 2020, the support for python 2 has stopped, and "we" are transforming the code to python 3, which is now well under way. - -Also, more collaboration is now taking place within the link(https://github.com/dictation-toolbox, Dictation Toolbox), and Natlink and Unimacro are now two of the repositories in this Toolbox. - -If you want to make a donation work all this work, you can do so via one of the buttons below. I (Quintijn Hoogenboom) will share the gifts with the core developers of Natlink, Unimacro and Vocola. - - -:TABLE align=center, width=50%: -:HEADER width=50%:Euro's, Dutch interface: -:COL:Dollars, English interface: - -:ROW align=center:
- - - - -
-:COL align=center:
- - - - -
-:: - - Thank you in advance... - - -:zz: -old dollar - -
- - - - -
- -onbekende knop: -
- - - - -
- - -oude code , Euro's - -
- - - - -
- diff --git a/website unimacro/source/5_about Unimacro/aboutunimacro.ini b/website unimacro/source/5_about Unimacro/aboutunimacro.ini deleted file mode 100644 index bcf0460..0000000 --- a/website unimacro/source/5_about Unimacro/aboutunimacro.ini +++ /dev/null @@ -1,2 +0,0 @@ -[menu] -nice name = About diff --git a/website unimacro/source/5_about Unimacro/b_History/NatLinkTalk.odp b/website unimacro/source/5_about Unimacro/b_History/NatLinkTalk.odp deleted file mode 100644 index 5561948..0000000 Binary files a/website unimacro/source/5_about Unimacro/b_History/NatLinkTalk.odp and /dev/null differ diff --git a/website unimacro/source/5_about Unimacro/b_History/NatLinkTalk.pdf b/website unimacro/source/5_about Unimacro/b_History/NatLinkTalk.pdf deleted file mode 100644 index 67b9260..0000000 Binary files a/website unimacro/source/5_about Unimacro/b_History/NatLinkTalk.pdf and /dev/null differ diff --git a/website unimacro/source/5_about Unimacro/b_History/NatLinkTalk.ppt b/website unimacro/source/5_about Unimacro/b_History/NatLinkTalk.ppt deleted file mode 100644 index ed8f47c..0000000 Binary files a/website unimacro/source/5_about Unimacro/b_History/NatLinkTalk.ppt and /dev/null differ diff --git a/website unimacro/source/5_about Unimacro/b_History/VoiceCoders.odp b/website unimacro/source/5_about Unimacro/b_History/VoiceCoders.odp deleted file mode 100644 index 533e3ba..0000000 Binary files a/website unimacro/source/5_about Unimacro/b_History/VoiceCoders.odp and /dev/null differ diff --git a/website unimacro/source/5_about Unimacro/b_History/VoiceCoders.pdf b/website unimacro/source/5_about Unimacro/b_History/VoiceCoders.pdf deleted file mode 100644 index fa60379..0000000 Binary files a/website unimacro/source/5_about Unimacro/b_History/VoiceCoders.pdf and /dev/null differ diff --git a/website unimacro/source/5_about Unimacro/b_History/VoiceCoders.ppt b/website unimacro/source/5_about Unimacro/b_History/VoiceCoders.ppt deleted file mode 100644 index 6a89fe9..0000000 Binary files a/website unimacro/source/5_about Unimacro/b_History/VoiceCoders.ppt and /dev/null differ diff --git a/website unimacro/source/5_about Unimacro/b_History/history.ini b/website unimacro/source/5_about Unimacro/b_History/history.ini deleted file mode 100644 index e69de29..0000000 diff --git a/website unimacro/source/5_about Unimacro/b_History/index.txt b/website unimacro/source/5_about Unimacro/b_History/index.txt deleted file mode 100644 index c5406a9..0000000 --- a/website unimacro/source/5_about Unimacro/b_History/index.txt +++ /dev/null @@ -1,38 +0,0 @@ -History of Natlink, Unimacro and Vocola - - Natlink - -Natlink was written in 1999/2000 by Joel Gould, at that time working at Dragon Systems. - -He presented two important presentations about Natlink. - -The first one is -an link(NatLinkTalk.pdf, "Introduction to NatLink") (pdf, 236kb), and it gives an impression of the functionality of Natlink, and also an introduction of Python. - -This talk is also available as link(natlinktalk.ppt, powerpoint) or link(natlinktalk.odp, OpenOffice Presentation). - - Unimacro -Was developed in the early 2000's by Quintijn Hoogenboom, with support from Bart Jan van Os and Ben Staniford. - -Around 2010 Frank Olaf Sem-Jacobsen contributed several things, including a _latex grammar. - - Vocola - -(will be added) - - Voicecode - -The Voicecode project implemented a framework for programming by voice in different programming languages. In the preparation phase Joel Gould presented his talk for these -link(VoiceCoders.pdf, "VoiceCoders, how to implement dictation into Natlink") (pdf, 180kb). For an explanation of the working of dictation grammars it is still an important source of information. - -This talk is also available as link(voicecoders.ppt, powerpoint) or link(voicecoders.odp, OpenOffice Presentation). - -The Voicecode project is regrettably obsolete. But files are still available at link(https://sourceforge.net/projects/voicecode/files/VoiceCode/, SourceForge). - - Dragonfly - -(will be added). - - - - diff --git a/website unimacro/source/5_about Unimacro/index.txt b/website unimacro/source/5_about Unimacro/index.txt deleted file mode 100644 index 7a633be..0000000 --- a/website unimacro/source/5_about Unimacro/index.txt +++ /dev/null @@ -1,76 +0,0 @@ -About Natlink, Unimacro and Vocola - - Natlink - -Natlink has been kept "alive" for about 20 years by now. Several other packages are built on top of Natlink, like Unimacro, Voicecode (now obsolete) and Dragonfly. And on top of Dragonfly, many people use Caster and Mathfly. - -With the release of Dragon 15, now already several years ago, a few essential changes had to be made in the C++ interface, natlink.pyd, that connects Dragon with the python programs. - -Starting in 2020, the support for python 2 has stopped, and "we" are transforming the code to python 3, which is now well under way. - -Also, more collaboration is now taking place within the link(https://github.com/dictation-toolbox, Dictation Toolbox), and Natlink and Unimacro are now two of the repositories in this Toolbox. - - Unimacro - -Unimacro was developed by Quintijn Hoogenboom and Bart Jan van Os in the early 2000's. The target was mostly global grammars, with specific "actions" in specific programs. Also introspections, translations into other languages, mainly Dutch, and a trace facility are built in. - - Vocola - -Vocola, a Voice Command Language, was developed by Rick Mohr around 2009, and Mark Lillibridge from then on supports the Dragon version on Windows. (Vocola also works with Windows Speech Recognition.) Vocola is an easy tool to make your own voice commands. Support for all languages that are known by Dragon. More elaborate extensions are possible. See link(http://vocola.net/v2/default.asp, vocola.net). - - Developers: - -Many people work on this software, most on Dragonfly/Caster, but also on developments that do not need Dragon and Natlink (any more). See the chat channels on link(https://gitter.im/dictation-toolbox/home, gitter), and the repositories on link(https://github.com/dictation-toolbox, github). - --Natlink and Vocola are at link(https://github.com/dictation-toolbox/natlink) --Unimacro is at link(https://github.com/dictation-toolbox/unimacro) - - Some of the names: - --mailto("q.hoogenboom@antenna.nl", "Quintijn Hoogenboom") (Natlink, Unimacro) - --Mark Lillibridge, Vocola 2 - --Jan Scheffczyk, Natlink installer and Natlink compile natlink.pyd - --Mike Robers, Natlink compile natlink.pyd - --Doug Ransom, Unimacro - - - - History and Holland - -Read more about the link(history) of these projects, including several presentations. - -In or near Holland, you could consult Quintijn for advice, implementation or instruction of Unimacro. -Please consult link("https://qh.antenna.nl/index.html", "the website of QH"). - -For special wishes on Unimacro grammars you can also contact Quintijn. If they require more work and/or serve commercial purposes, money will be asked for the work done. - - Contributors wanted -More help with the development of Unimacro, in the form of feedback, testing things or improving documentation is welcome. Please mail to Quintijn if you want to contibute! - - Donations - -If you like this software and want to support the development of this (and value a bit of the efforts put in it sofar), please consider making a link(donation, *Donation*). - - - Copyright - -Note the following copyright license: - - "Unimacro" is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License, see: - http://www.gnu.org/licenses/gpl.txt - - "Unimacro" is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; See the GNU General Public License details. - - "Unimacro" makes use of another SourceForge project "NatLink", - which has the following copyright notice: - - Python Macro Language for Dragon NaturallySpeaking - (c) Copyright 1999 by Joel Gould - Portions (c) Copyright 1999 by Dragon Systems, Inc. - diff --git a/website unimacro/source/allinone.html b/website unimacro/source/allinone.html deleted file mode 100644 index e69de29..0000000 diff --git a/website unimacro/source/favicon.ico b/website unimacro/source/favicon.ico deleted file mode 100644 index 5710f99..0000000 Binary files a/website unimacro/source/favicon.ico and /dev/null differ diff --git a/website unimacro/source/im/blank.gif b/website unimacro/source/im/blank.gif deleted file mode 100644 index 7e67ea7..0000000 Binary files a/website unimacro/source/im/blank.gif and /dev/null differ diff --git a/website unimacro/source/im/contact.gif b/website unimacro/source/im/contact.gif deleted file mode 100644 index 647a04b..0000000 Binary files a/website unimacro/source/im/contact.gif and /dev/null differ diff --git a/website unimacro/source/im/contacton.gif b/website unimacro/source/im/contacton.gif deleted file mode 100644 index 927b0fd..0000000 Binary files a/website unimacro/source/im/contacton.gif and /dev/null differ diff --git a/website unimacro/source/im/contents.gif b/website unimacro/source/im/contents.gif deleted file mode 100644 index 75d7b4f..0000000 Binary files a/website unimacro/source/im/contents.gif and /dev/null differ diff --git a/website unimacro/source/im/contentson.gif b/website unimacro/source/im/contentson.gif deleted file mode 100644 index 2728478..0000000 Binary files a/website unimacro/source/im/contentson.gif and /dev/null differ diff --git a/website unimacro/source/im/email.gif b/website unimacro/source/im/email.gif deleted file mode 100644 index 0d85f82..0000000 Binary files a/website unimacro/source/im/email.gif and /dev/null differ diff --git a/website unimacro/source/im/home.gif b/website unimacro/source/im/home.gif deleted file mode 100644 index 2d8175b..0000000 Binary files a/website unimacro/source/im/home.gif and /dev/null differ diff --git a/website unimacro/source/im/homeon.gif b/website unimacro/source/im/homeon.gif deleted file mode 100644 index 81d17d7..0000000 Binary files a/website unimacro/source/im/homeon.gif and /dev/null differ diff --git a/website unimacro/source/im/index.gif b/website unimacro/source/im/index.gif deleted file mode 100644 index 50838f6..0000000 Binary files a/website unimacro/source/im/index.gif and /dev/null differ diff --git a/website unimacro/source/im/indexon.gif b/website unimacro/source/im/indexon.gif deleted file mode 100644 index a19433d..0000000 Binary files a/website unimacro/source/im/indexon.gif and /dev/null differ diff --git a/website unimacro/source/im/next.gif b/website unimacro/source/im/next.gif deleted file mode 100644 index 1fa1734..0000000 Binary files a/website unimacro/source/im/next.gif and /dev/null differ diff --git a/website unimacro/source/im/previous.gif b/website unimacro/source/im/previous.gif deleted file mode 100644 index 65bd0ba..0000000 Binary files a/website unimacro/source/im/previous.gif and /dev/null differ diff --git a/website unimacro/source/im/qh100.gif b/website unimacro/source/im/qh100.gif deleted file mode 100644 index 303cb27..0000000 Binary files a/website unimacro/source/im/qh100.gif and /dev/null differ diff --git a/website unimacro/source/im/s.gif b/website unimacro/source/im/s.gif deleted file mode 100644 index 5e348a8..0000000 Binary files a/website unimacro/source/im/s.gif and /dev/null differ diff --git a/website unimacro/source/im/sitemap.gif b/website unimacro/source/im/sitemap.gif deleted file mode 100644 index d7e943d..0000000 Binary files a/website unimacro/source/im/sitemap.gif and /dev/null differ diff --git a/website unimacro/source/im/sitemapon.gif b/website unimacro/source/im/sitemapon.gif deleted file mode 100644 index b9f7923..0000000 Binary files a/website unimacro/source/im/sitemapon.gif and /dev/null differ diff --git a/website unimacro/source/im/spacer.gif b/website unimacro/source/im/spacer.gif deleted file mode 100644 index 5e348a8..0000000 Binary files a/website unimacro/source/im/spacer.gif and /dev/null differ diff --git a/website unimacro/source/im/top.gif b/website unimacro/source/im/top.gif deleted file mode 100644 index 29eb4d4..0000000 Binary files a/website unimacro/source/im/top.gif and /dev/null differ diff --git a/website unimacro/source/im/up.gif b/website unimacro/source/im/up.gif deleted file mode 100644 index 29eb4d4..0000000 Binary files a/website unimacro/source/im/up.gif and /dev/null differ diff --git a/website unimacro/source/implementation_and_acceptance_of_natlink.pdf b/website unimacro/source/implementation_and_acceptance_of_natlink.pdf deleted file mode 100644 index ca34f88..0000000 Binary files a/website unimacro/source/implementation_and_acceptance_of_natlink.pdf and /dev/null differ diff --git a/website unimacro/source/index.txt b/website unimacro/source/index.txt deleted file mode 100644 index a366604..0000000 --- a/website unimacro/source/index.txt +++ /dev/null @@ -1,72 +0,0 @@ -Natlink, including Unimacro and Vocola2 - -:TABLE firstcoldifferent=1, border=1: -:ROW: -NatLink is an OpenSource extension module for the speech recognition program Dragon. - -In each Natlink release also Vocola and Unimacro are included. - -Other packages, like Dragonfly, need Natlink in order to work with Dragon, but should be separately installed. - -On this website are the instructions for *downloading and configuring Natlink*, including Vocola and Unimacro, and a more detailed description of *Unimacro*. For more about Vocola see the link(http://vocola.net/default.asp, *Vocola 2 website*). - -:ROW: -*A stable release is finally committed: link(/installation/installation.html, release 4.2)* - -This will also be the final release for Python 2.7. - -Python 3 users can - for the time being - install Python 2.7 alongside, and run Natlink via this version. This does not disturb the working of Python 3. - -The implementation of Natlink with python3 is going pretty well. See link(/installation/installationexperimentalversionpython3.html, experimental install), when you want to go that way! - - -:ROW: - -_bold(Please consider making a link(/aboutunimacro/donation/index.html, donation to this project))_ - - -:: - - - The Natlink base: - --link(http://www.nuance.com, *Dragon*) is the world leading speech recognition program, sold by Nuance. --*Natlink* (in the past also NatPython) is an open source project written by Joel Gould in 1999. Several presentations that were on Joels website have gone, does anyone have copies of them? link(implementation_and_acceptance_of_natlink.pdf, This one) is still present, written by Joel Gould in about 2001. - - The Add-on packages: - --The *Unimacro* project aims to provide a rich set of *command grammars*, that can be configured by the users without programming knowledge. These grammars that are presented on this website. - --link(http://vocola.net/default.asp, *Vocola 2*) is a project that aims for easily making user defined commands. Consult link(http://vocola.net/v2/, the Vocola 2 website). Note: for Windows Speech Recognition you can use Vocola 3. --Read more about link(/features/unimacroandvocola/index.html, *Vocola 2 and Unimacro*), which to use when and also how they cooperate. *Vocola commands can profit from link(/features/unimacroandvocola/unimacroshorthandcommands.html, Unimacro features)*. -:xx: --link(https://sourceforge.net/projects/voicecode, *VoiceCode*) is the third big application based on NatLink. -:en: --link(https://github.com/t4ngo/dragonfly/, *Dragonfly*) is a third package, that has been developed in a more modern pythonic way. It is very powerful, but should be installed separate. Note: Dragonfly also works with Windows Speech Recognition. --*User defined grammars* can also be included directly in Natlink. - - What is on this site? - --The link(/installation/installation.html, *installation/configuration section*) -will guide you through the installation details of NatLink/Vocola 2 and Unimacro. --The link(features/index.html, *features section*) explains the powerful things that are implemented with Unimacro. --The link(/grammars/index.html, *grammars section*) is by far the most important for practical use of Unimacro. Most of the grammars are designed to be global, so first look into the global grammars examples. --More technical details of the different link(features/grammarclasses/index.html, *Unimacro grammar classes*) and link(installation/technicaldetails/index.html, *NatLink in general*). --Finally, link(aboutunimacro, *About*) gives information on the authors of this project and the copyright notice, and asks you for a donation. - - - Demo movies - -Some demonstration movies have been made, to show features of Unimacro. - --About the link("http://www.youtube.com/watch?v=iViDXfyYPLo&feature=share&list=PLgaYd2iGMDFkqaw-BBwhUWhZGU-ZOOdlM", *installation and configuration of NatLink, Unimacro and Vocola*) - --From some time ago: ---link(grammars/globalgrammars/folders/index.html, grammar folders, opening folders, files and drives) ---link(grammars/globalgrammars/tasks/index.html, several demo movies on task switching, both Dutch and English) ---link(grammars/games/patience.html, Dutch: playing solitaire) ---link(features/cooperationwithvoicecoder/index.html, interaction Unimacro with voicecoder) - -Please now download the first "stable" release in years: link(/installation/installation.html, *4.2*) (September 2, 2019). - -See link(/installation/index.html, *installation pages*) diff --git a/website unimacro/source/notice at SourceForge.txt b/website unimacro/source/notice at SourceForge.txt deleted file mode 100644 index 0e46c85..0000000 --- a/website unimacro/source/notice at SourceForge.txt +++ /dev/null @@ -1,4 +0,0 @@ -documentation of this Unimacro project is currently, in progress, found at - -http://qh.antenna.nl/Unimacro/index.html. - diff --git a/website unimacro/source/old html files.ini b/website unimacro/source/old html files.ini deleted file mode 100644 index bd6555e..0000000 --- a/website unimacro/source/old html files.ini +++ /dev/null @@ -1,31 +0,0 @@ -[old html files] -installation changelog.html = 2021-12-21 -installation configuration.html = 2021-12-21 -installation configureadministratorrights.html = 2021-12-21 -installation howtostart.html = 2021-12-21 -installation inifilestrategy.html = 2021-12-21 -installation installationstableversionpython2.html = 2021-12-21 -installation logofchanges index.html = 2021-12-21 -installation problemswithinstallation.html = 2021-12-21 -installation problemswithnatlink.html = 2021-12-21 -installation settinghome index.html = 2021-12-21 -installation speechmodel.html = 2021-12-21 -installation technicaldetails batchmodeforconfiguration.html = 2021-12-21 -installation technicaldetails configuregui.html = 2021-12-21 -installation technicaldetails index.html = 2021-12-21 -installation technicaldetails installer.html = 2021-12-21 -installation technicaldetails natlinkconfigfunctions.html = 2021-12-21 -installation technicaldetails natlinkcorefunctions.html = 2021-12-21 -installation technicaldetails natlinkmain.html = 2021-12-21 -installation technicaldetails natlinkmainvocolamain.html = 2021-12-21 -installation technicaldetails natlinkstatus.html = 2021-12-21 -installation technicaldetails natlinkutils.html = 2021-12-21 -installation technicaldetails nsformat.html = 2021-12-21 -installation technicaldetails testingnatlink.html = 2021-12-21 - -installation technicaldetails workingwithsubversion checkoutexample.html = 2021-12-21 - -installation technicaldetails workingwithsubversion index.html = 2021-12-21 - -installation technicaldetails workingwithsubversion relocateexample.html = 2021-12-21 - diff --git a/website unimacro/source/sitemap.html b/website unimacro/source/sitemap.html deleted file mode 100644 index f74d4ca..0000000 --- a/website unimacro/source/sitemap.html +++ /dev/null @@ -1,279 +0,0 @@ - - - - -

Sitemap of the website of unimacro

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Installation Natlink/Vocola/Unimacro
Install for python 27
installation stable version python2
configuration
how to start
log of changes
problems with installation
problems with NatLink
Speech Model
ini file strategy
Configure administrator rights
Setting HOME
technical details
natlinkstatus
natlinkconfigfunctions
natlinkcorefunctions
configure GUI
batch mode for configuration
installer
natlinkmain_vocola_main
natlinkmain
natlinkutils
nsformat
testing natlink
Working with subversion
checkout example
relocate example
installation experimental version python3
log of changes Python 3
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
features
actions
shorthand commands
meta actions
BRINGUP details
unicode characters
actions configuration file
action classes for applications
Numbers and Spoken Forms
other spokenform sections
Unimacro and Vocola
elevator view
Unimacro Shorthand Commands
Meta actions
include file Unimacro_vch
tracing
inifiles
translations
how to start
callback logic
keystrokes
cooperation with voicecoder
AutoHotkey
details
Configuration
unit testing
grammar classes
grammarX
Browsable Grammar
IniGrammar
use
programmer
functions for searching
DocstringGrammar
fullresults
example tasks grammar
example word styles
programmer
natlinkutilsbj
natlinkutilsqh
Get functions
Module info
Word properties
Miscellaneous
global dictation
end of line considerations
Monitorfunctions
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
grammars
control
global grammars
folders
details
actions
virtual drives
environment variables
track folders history
remember
general
actions
lines
Implementation details
tasks
get task and doc positions
configuration
keystrokes
grammar
modes
repeat
actions
searching
nederlands
edit
latex
configuration
Syntax highlighting Word
Number grammar
Number extended
Use in other grammars
oops
show numbers plus
specify actions
Commando's Nederlands
tags
brackets
modes
specific grammars
Chrome_browsing
all commands English
commandos Nederlands
Installing Click by Voice
Firefox browsing
all commands English
commandos Nederlands
Installing MLB
Excel
unimacro test
Actions
Bringup
clipboard
messages
games
patience
solitaire
freecell
- - - - - -
About
Donation
History
- \ No newline at end of file diff --git a/website unimacro/source/unimacro.css b/website unimacro/source/unimacro.css deleted file mode 100644 index cc2da5a..0000000 --- a/website unimacro/source/unimacro.css +++ /dev/null @@ -1,143 +0,0 @@ -BODY {background-color: #dddddd; color: black; -font-family: Verdana, Helvetica, sans-serif} - -LI, TD, P, H1, H2, H3, H4, H5 {font-size: small; font-family: Verdana, Helvetica, sans-serif; -line-height:125%; margin:0px; padding:0px} - -LI {padding:2px 0px} -H1 {font-size:large; padding:0px 0px 10px 0px } -h2 {font-size:medium; padding:10px 0px 3px 0px} -h3 {font-size:small; padding:10px 0px 3px 0px} -H1, H2, H3, H4, H5 {font-weight: bold} -p {padding:3px 0px} - -a:link {color: black; font-family: Verdana, Helvetica, sans-serif;} -a:visited {color: black; font-family: Verdana, Helvetica, sans-serif;} -a:active {color: black; font-family: Verdana, Helvetica, sans-serif;} - -IMG.imageright {float:right; margin:5px 0px 10px 10px} -IMG.imageleft {float:left; margin:5px 10px 10px 0px} - -p.pre {margin:5px 0px 5px 0px; border: 1px solid black; - color: black; - padding:5px; - font-family: Lucida sans typewriter, fixed, courier; - font-size: small; - background-color: #dddddd} - -IMG.thumbme {border: red solid 4px; } -TD.topon {color: black; background-color: #cc9933; border:1px solid black;font-weight:bold} -TD.topon a:link, -TD.topon a:visited, -TD.topon a:active {text-decoration: none; font-weight: normal; -color: black} - - -TD.topoff {background-color: #669999; padding:3px;font-weight:bold} -TD.topoff, -TD.topoff a:link, -TD.topoff a:visited, -TD.topoff a:active {text-decoration: none; color: black} - - - -TD.lefton {background-color: #cc9933; padding:2px 2px 2px 7px; font-weight: bold; - color: black;border-bottom:1px solid black;border-top:1px solid black} - -TD.lefton a:link, -TD.lefton a:visited, -TD.lefton a:active {text-decoration: none; font-weight: normal} - -TD.leftoff {color: black; background-color: #aaaaaa; padding:2px 2px 5px 7px;font-weight:bold;border-right:1px solid black} -TD.leftoff a:link, -TD.leftoff a:visited, -TD.leftoff a:active {font-weight:bold; text-decoration:none} -TD.leftoff a:visited {color: #444444} - -TD.back {background-color: #aaaaaa} -TD.navline {background-color: #669999;padding:10px 0px 5px 0px} -TD.copyright {background-color: #669999; - font-size: xx-small; text-align: right; padding:5px} - -TD.body {padding:20px; font-family: Times, serif} -TD.body a:link {color: black} -TD.body a:visited {color: black} -TD.body a:active {color: black} -TD.body0 {vertical-align: top} - -P.pre {margin:20px 50px 1px 1px; border: thin solid #999999; padding:5px; - font-family: Lucida sans typewriter, fixed, courier} - -EM {font-weight:bold} -TD.tekst {font-family: Times, serif; color:black} -TD.leftmenu {padding:5px 0px 5px 5px ; background-color: #aaaaaa; vertical-align:top} -TD.leftpart {padding:5px 0px 5px 5px ; background-color: #aaaaaa; vertical-align:top} -TD.banner {background-color:#669999; text-align:center; color:#cc9933; font-weight: bold; font-size:x-large;padding:0px 0px 0px 10px} -TD.ibleft {padding:20px; vertical-align: top} -TD.ibtop {padding:20px} -TD.ibpright {padding:10px} -TD.ibpbottom {padding:20px} -TD.sitemapbutton {background-color:#669999; color:#ff9966; padding:5px; -font-weight: bold;text-align: center; width:7%; font-size:small; -text-decoration:none;border:1px solid black} -TD.sitemapbutton a:link {color:#ff9966; font-size:small;text-decoration:none} -TD.sitemapbutton a:visited {color:#ff9966; font-size:small;text-decoration:none} -TD.sitemapbutton a:active {color:#ff9966; font-size:small;text-decoration:none} -TD.emailbutton {background-color : #669999; color: white; padding:5px; font-weight: bold; -text-align: center; width:7%; font-size:small;border:1px solid black} -TD.emailbutton a:link {color:white; font-size:small;text-decoration:none} -TD.emailbutton a:visited {color: white;font-size:small;text-decoration:none} -TD.emailbutton a:active {color:white; font-size:small;text-decoration:none} -TD.contactbutton {background-color: #ff9966; color:white; padding:5px; -font-weight: bold; text-align: center; width:7%; font-size:small} -TD.contactbutton a:link {color:white; font-size:small;text-decoration:none} -TD.contactbutton a:visited {color:white; font-size:small;text-decoration:none} -TD.contactbutton a:active {color:white; font-size:small;text-decoration:none} -TD.printbutton {background-color: #ff9966; color:#99bbcc; padding:5px; -font-weight: bold; text-align: center; width:7%; font-size:small;text-decoration:none} -TD.printbutton a:link {color:#99bbcc; font-size:small;text-decoration:none} -TD.printbutton a:visited {color:#99bbcc; font-size:small;text-decoration:none} -TD.printbutton a:active {color:#99bbcc; font-size:small;text-decoration:none} - -TH.th1 {background-color: #99bbcc; padding:2px 2px 2px 5px} -TH.th {background-color: #aaaaaa; padding:2px 2px 2px 5px} -TD.td1 { background-color: #ccddee; text-align: left; vertical-align:top;padding:2px} -TD.td0 { background-color: #ccddee; text-align: left;padding:2px} -TD.td { background-color: #cccccc; padding:2px} -TABLE.table TD, -TABLE.table TD {padding:2px 5px} - -TABLE.menu {text-align: center} -TABLE.picmenu {background-color: #cccccc} -TABLE.indexmenu {background-color: #cccccc} -TABLE.inimenu {background-color: #cccccc} -TABLE.tabon {background-color: green; font-weight: bold} -TABLE.table { background-color: #999999} -DIV.header {background-color: #669999} -DIV.footer {background-color: #eeeeee} -DIV.body {background-color: #cc9933} - - - -IMG {border-width:0px} -@media print {TD.topon {font-size: medium; - border-top: 1px solid black; border-right: 1px solid black; - border-left: 1px solid black}} -@media print {TD.topon a:visited {font-size: medium}} -@media print {TD.topoff {font-size: small; border-bottom: 1px solid black}} -@media print {TD.topoff a:link {font-size: small}} -@media print {TD.topoff a:visited {font-size: small}} -@media print {TD.topspacer {border-bottom: 1px solid black}} -@media print {TD.copyright {border-top: 1px solid black}} -@media print {TD.lefton {font-size: medium}} -@media print {TD.lefton a:visited {font-size: medium}} -@media print {TD.leftoff {font-size: x-small}} -@media print {TD.leftoff a:link {font-size: x-small}} -@media print {TD.leftoff a:visited {font-size: x-small}} -@media print {TD.emailbutton {display:none}} -@media print {TD.leftpart {display:none}} -@media print {TD.sitemapbutton {display:none}} -@media screen {td.copprintonly {display:none}} -@media print {td.copprintonly {display:inline; border-top: 2px solid black; font-size: xx-small}} -@media print {td.copyright {display:none}} - diff --git a/website unimacro/source/unimacro.ini b/website unimacro/source/unimacro.ini deleted file mode 100644 index f362cef..0000000 --- a/website unimacro/source/unimacro.ini +++ /dev/null @@ -1,123 +0,0 @@ -[aboutunimacro] -new page = 03 Sep 2004 - - -[allinone] -new special entry = 07 feb 2010 - - -[cache next date] -next check date = 2021-03-13 - - -[cached links] - -docs dot python dot org 3 tutorial venv dot html = https://docs.python.org/3/tutorial/venv.html - -github dot com dictation-toolbox = https://github.com/dictation-toolbox - -github dot com dictation-toolbox natlink = https://github.com/dictation-toolbox/natlink - - -github dot com dictation-toolbox unimacro = https://github.com/dictation-toolbox/unimacro - - -github dot com mdbridge click-by-voice = https://github.com/mdbridge/click-by-voice - -github dot com t4ngo dragonfly = https://github.com/t4ngo/dragonfly/ - -gitter dot im dictation-toolbox home = https://gitter.im/dictation-toolbox/home - - -qh dot antenna dot nl en speechrecognition probleemopgelost index dot html = https://qh.antenna.nl/en/speechrecognition/probleemopgelost/index.html - -qh dot antenna dot nl index dot html = https://qh.antenna.nl/index.html -sourceforge dot net = https://sourceforge.net/ - -sourceforge dot net account registration = https://sourceforge.net/account/registration/ - - -sourceforge dot net projects natlink files = https://sourceforge.net/projects/natlink/files/ - - -sourceforge dot net projects natlink files natlink natlink4 dot 2 setup-natlink-4 dot 2 dot exe download = https://sourceforge.net/projects/natlink/files/natlink/natlink4.2/setup-natlink-4.2.exe/download - - -sourceforge dot net projects natlink files pythonfornatlink python2 dot 7 dot 14 python2 dot 7 dot 1 dot exe download = invalid - - -sourceforge dot net projects voicecode files voicecode = https://sourceforge.net/projects/voicecode/files/VoiceCode/ - -tortoisesvn dot net = invalid -vocola dot net default dot asp = http://vocola.net/default.asp -vocola dot net v2 = http://vocola.net/v2/ -vocola dot net v2 default dot asp = http://vocola.net/v2/default.asp -vocola dot net v2 nonenglish dot asp = http://vocola.net/v2/NonEnglish.asp - -vocola dot net v2 vocolaversions dot asp = http://vocola.net/v2/VocolaVersions.asp - - -www dot activestate dot com komodo-ide = https://www.activestate.com/komodo-ide - -www dot autohotkey dot com = invalid -www dot ergoarchitect dot com = invalid -www dot gena01 dot com win32pad = invalid - -www dot jrsoftware dot org isdl dot php = https://www.jrsoftware.org/isdl.php - - -www dot microsoft dot com resources documentation windows xp all proddocs en-us sysdm advancd environmnt addchange variable dot mspx = invalid - -www dot nuance dot com = https://www.nuance.com - -www dot python dot org downloads windows 299 = https://www.python.org/downloads/windows/299 - -www dot ultraedit dot com = https://www.ultraedit.com/ - -www dot youtube dot com watch v ijy6il3rizk feature youtu dot be = https://www.youtube.com/watch?v=IJy6IL3rizk&feature=youtu.be - - -www dot youtube dot com watch v ividxfyyplo feature share list plgayd2igmdfkqaw-bbwhuwhzgu-zoodlm = https://www.youtube.com/watch?v=iViDXfyYPLo&feature=share&list=PLgaYd2iGMDFkqaw-BBwhUWhZGU-ZOOdlM - -www dot zakbat dot com = invalid -youtu dot be 6qrjutcx6rw = https://youtu.be/6qrjuTCX6Rw -youtu dot be 8-qgdcjfty0 = https://youtu.be/8-qgdcJfTY0 -youtu dot be aidwpayciy0 = https://youtu.be/AIdwPayCiy0 -youtu dot be dvyl780 -l4 = https://youtu.be/DvYL780_-l4 -youtu dot be ox2lisi4fds = https://youtu.be/oX2LISi4FDs -youtu dot be ushjpsc5vb8 = https://youtu.be/UShjPsC5VB8 - -www dot python dot org downloads release python-2718 = https://www.python.org/downloads/release/python-2718/ - - -[classes] -new menu = 03 Sep 2004 - - -[features] -new menu = 03 Sep 2004 - - -[grammars] -new menu = 03 Sep 2004 - - -[index] -new index = 03 Sep 2004 - - -[installation] -new menu = 03 Sep 2004 -nice name = Installation Natlink/Vocola/Unimacro - - -[natlinkandinstallation] -new menu = 04 feb 2008 - - -[sitemap] -new special entry = 03 Sep 2004 - - -[top] -new top entry = 03 Sep 2004 diff --git a/website unimacro/source/unimacro.js b/website unimacro/source/unimacro.js deleted file mode 100644 index a87a7bc..0000000 --- a/website unimacro/source/unimacro.js +++ /dev/null @@ -1,154 +0,0 @@ -var isIE = (navigator.appName == "Microsoft Internet Explorer"); -var isLoaded = 0; -var isNetscape = (navigator.appName == "Netscape"); -var prevHeight = 0; -var prevWidth = 0; -function afterLoad() { -//records isLoaded and does onResize() -isLoaded = 1; -onLoadFunctions(); -onResize(); -} -function bodyHeight(subtract) { -// do at changing size also on load (through onResizeFunctions) -// expecting a div with id "body0" setting at height minus "subtract": -// or a "leftpart" (only IE); with Netscape 15 more - var height = 0; - var dh = document.body.clientHeight; - if (subtract > 0 && dh > subtract) { - var height = dh - subtract; - if (isNetscape) - height += 15; - } - else - var d = null; - if (isIE) - var d = document.getElementById("leftpart"); - if (d == null) - d = document.getElementById("body0"); - if (d == null) { - alert("no such id: leftpart or body0"); - return; - } - d.style.height = height; -} -function changeSize(frameName, Width, Height, minWPadding, minHPadding, scale) { -// do at changing size also on load -// expecting a div with id "frameName": -var dw = parseInt(document.body.clientWidth*scale); -var d = document.getElementById(frameName); -if (d == undefined) { - alert("no such id: frame"); - return; -} -var p = String(minWPadding); -var q = String(minHPadding); -if (Width > 0 && dw > Width) - var p = String(Math.max(minWPadding, parseInt((dw-Width)/2))); -var dh = document.body.clientHeight; -if (Height > 0 && dh > Height) - var q= String(Math.max(minHPadding, parseInt((dh-Height)/2))); -//style_node.appendChild(document.createTextNode( -var selector = "#" + frameName; -var declaration = "padding: " + q + " " + p; -setCssStyleScreenOnly(selector, declaration); -} -function doReload() { - //reloads if height or width changed more than 10 pixels -var dw = document.body.clientWidth; -var dh = document.body.clientHeight; -var deltax = Math.abs(prevWidth-dw); -var deltay = Math.abs(prevHeight-dh); -if (deltax < 10 && deltay < 10) - return; -document.location.href = document.location.href; -} -function m(a, b, s, t) { -var mm;mm='";w(mm); -} -function onResize() { - //acts if height or width changed more than 10 pixels - if (!isLoaded) return; - var dw = document.body.clientWidth; - var dh = document.body.clientHeight; - var deltax = Math.abs(prevWidth-dw); - var deltay = Math.abs(prevHeight-dh); - if (deltax < 10 && deltay < 10) - return; - prevHeight=dh; - prevWidth=dw; - onResizeFunctions(); -} -function onResizeReload() { - //reloads if height or width changed more than 10 pixels - if (!isLoaded) return; - var dw = document.body.clientWidth; - var dh = document.body.clientHeight; - var deltax = Math.abs(prevWidth-dw); - var deltay = Math.abs(prevHeight-dh); - if (deltax < 25 && deltay < 25) - return; - document.location.href = document.location.href; -} -function picmenu(Pic, Width, Height, Cl, Link, Text) { - var L = Pic.length; - var mw = 0; - for (var i=0; i'); - var al = "center"; - var im = ''; - var li = ''; - for (var i=0; i 0) { - document.write(''); - } - if (Pic[i] != "") { - im = '' + Text[i]+
-                     ''; - } - else { - im = Text[i]; - } - if (Link[i] != "") { - li = '' + im + ''; - } - else { - li = im; - } - document.write('' + li + ''); - } - document.write(''); -} -function setCssStyleScreenOnly(selector, declaration) { -// set style for element screen only. declaration WITHOUT braces!! -// example: see changeSize. -var style_node = document.createElement("style"); -style_node.setAttribute("type", "text/css"); -style_node.setAttribute("media", "screen"); -if (!isIE) { // firefox: -var text = selector + "{" + declaration + "}"; - style_node.appendChild(document.createTextNode(text)); - // append the style node - document.getElementsByTagName("head")[0].appendChild(style_node); -} -else { //IE - if (document.styleSheets && document.styleSheets.length > 0) { - var last_style_node = document.styleSheets[document.styleSheets.length - 1]; - if (typeof(last_style_node.addRule) == "object") last_style_node.addRule(selector, declaration); - } -} -} -function w(t) { - // helper function - document.write(t); -} \ No newline at end of file diff --git a/website unimacro/word dutch styles list.png b/website unimacro/word dutch styles list.png deleted file mode 100644 index 7ff9f0e..0000000 Binary files a/website unimacro/word dutch styles list.png and /dev/null differ diff --git a/website unimacro/word dutch.png b/website unimacro/word dutch.png deleted file mode 100644 index 14c730a..0000000 Binary files a/website unimacro/word dutch.png and /dev/null differ diff --git a/website unimacro/xxx.txt b/website unimacro/xxx.txt deleted file mode 100644 index ac8522f..0000000 --- a/website unimacro/xxx.txt +++ /dev/null @@ -1 +0,0 @@ -xxx \ No newline at end of file