Skip to content
yellownoggin edited this page Aug 31, 2016 · 18 revisions

Getting Started

Text Commands

Text commands are for typing text. There are many of them under the 'text' tag on the commands page. Essentially, for each text command you speak the keyword followed by one or more arbitrary words. The words after the keyword are transformed by whichever transform applies to that text command and then typed onto the screen.

For example: to type the text hello_there_you, you would say snake hello there you

Symbols

Symbol Command
. dot
* star
/ slash
\ shalls
, comma
~ tilde
: colon
= equeft
-= minquall
+= pluqual
!= banquall
== longqual
<= lessqual
>= grayqual
=> shrocket
; sunk
! clamor
@ loco
& amper
# pounder
? questo
` `
+ plus
- minus
-> lambo
% percy
$ dolly
_ crunder
:: coaltwice
-- mintwice
` tinker
^ caret
... ellipsis

Bracketing symbols

Symbol Command
< clangle
<< langlang
> wrangle
>> rangrang
( precorp
) prekose
[ brackorp
] brackose
" quatches
' quatchet

Some bracketing sequences can be generated on both sides of the bracketing, followed by cursor movement to the middle of the brackets. In the following cases, the cursor placement is represented by _.

Symbol Command
<_> angler
` _
'_' posh
"_" coif
(_) prex
{_} kirk
[_] brax
="_" qualcoif
='_' qualposh
("_") prexcoif

Launching / Opening Things

Repetition Commands

Individual Repetition

VoiceCode takes a unique and powerful approach to 'repetition'. In fact ANY VoiceCode command can be spoken in such a way that it is executed repeatedly instead of just once.

In previous versions of VoiceCode certain commands were designated as 'repeatable', and you could follow the command name with a spoken number. For example the command 'shock ten' would press the return key 10 times.

While this approach was easy to learn, it created many ambiguities and issues in the language. For example what if you actually want to press the return key once then insert the number '10'? You would have to pause in the phrase to achieve this. Additionally, you had to mentally keep track of which commands were repeatable and which were not - for example, the letter "b", pronounced "brov", was not designated as 'repeatable', but what if you wanted to type: '#bbbbaa' in a CSS file?

The solution to these issues is to introduce dedicated 'repetition' words into the language. Repetition is mostly used for small numbers of repeats, therefore only the numbers 1-5 have their own dedicated repetition words.

These are:

1: wink
2: soup
3: trace
4: quarr
5: fypes

To repeat something more than five times you use the special word: repple [X] where [X] is any positive integer. So, shock repple fifty would press Return fifty times.

So to press the Return key twice you would say shock soup, or three times would be shock trace. Or to insert four spaces would be skoosh quarr, or to write #bbbccc would be pounder brov trace char trace

Additionally, each of these commands can operate on their own. For example if you said "shock" it will press the Return key. After a pause, if you say trace it will press Return three more times. Whatever command was used most recently will be repeated by any of the repetition commands.

Phrase Level Repetition

Phrase level repetition means that the previous phrase spoken will be executed again. A phrase may be made up of 1 or more commands.

The command to repeat the previous spoken phrase is:

creek

See the video here for an example

The creek command takes a positive integer as an argument, so to repeat the previous command 3 times, you could say either creek three OR creek trace, which will achieve the same result.

Mouse Commands

Modifier Commands

There is an explicit command for every combination of the following keys and modifiers:

Keys:

  A: "arch"
  B: "brov"
  C: "char"
  D: "dell"
  E: "etch"
  F: "fomp"
  G: "goof"
  H: "hark"
  I: "ice"
  J: "jinks"
  K: "koop"
  L: "lug"
  M: "mowsh"
  N: "nerb"
  O: "ork"
  P: "pooch"
  Q: "quash"
  R: "rosh"
  S: "souk"
  T: "teek"
  U: "unks"
  V: "verge"
  W: "womp"
  X: "trex"
  Y: "yang"
  Z: "zooch"
  n1: "won"
  n2: "too"
  n3: "three"
  n4: "four"
  n5: "five"
  n6: "six"
  n7: "seven"
  n8: "ate"
  n9: "nine"
  n0: "zero"
  Return: "return"
  Slash: "slash"
  Period: "period"
  Comma: "comma"
  Semicolon: "sunk"
  Delete: "junk"
  ForwardDelete: "spunk"
  Space: "skoosh"
  Escape: "cape"
  Tab: "tarp"
  Equal: "equal"
  Minus: "minus"
  Up: "up"
  Down: "down"
  Left: "left"
  Right: "right"
  RightBracket: "race"
  LeftBracket: "lets"
  Backslash: "pike"

Modifiers:

  chomm: ["command"]
  shoff: ["command", "shift"]
  shay: ["command", "option"]
  flock: ["command", "option", "shift"]
  crop: ["option"]
  snoop: ["option", "shift"]
  troll: ["control"]
  mack: ["command", "control"]
  triff: ["control", "shift"]
  prick: ["command", "control", "shift"]
  sky: ["shift"]

So you can choose any modifier from the second list, and use its name as a prefix to any key from the first list, for example

shaynine

Will press:

command+option+9

Combination or 'Contraction' Commands

Continuous versus non-continuous

The grammar has a concept of "continuous" and "non-continuous" commands. Continuous means that the command can be chained in a phrase. "Non-Continuous" means that the command can only trigger if it is the first element in a phrase - but other continuous commands can still follow a non-continuous command.

By default, all commands are "continuous".

To designate a command as "non-continuous", simply set continuous: false in the command definition. As an example:

Commands.create
  "new file":
    triggerScopes: ["Atom"]
    continuous: false
    action: (input) ->
      @runAtomCommand "trigger", "tree-view:add-file"

Rationale

You want to make a command "non-continuous" when its name is something that you would like to be able to still speak in other places without accidentally triggering the command. In other words, when the command name is not a "nonsense-word" and it is an english phrase or word that you would still like to use in other places, make the command continuous: false

Example

Continuous: If I have a command named "new file", which is continuous - than when I say "create a new file", it will type the text: "create a", then it will run the command "new file"

Non-Continuous: If the same command is made non-continuous, then saying "new file" will still trigger it, but saying "create a new file", will not trigger it - it will just type the text "create a new file"

Clone this wiki locally