Emily's Symbol Dictionary

A Plover python dictionary allowing for consistent symbol input with specification of attachment and capitalisation in one stroke.


This dictionary was created with the following goals in mind:

  • Have a consistent method to type (pretty much) every symbol
  • Specify spacing and capitalisation of that symbol in 1 stroke
  • Hackable and understandable to anyone who finds it useful :)


To support the design goals, for each symbol there are 6 different options specifiable in sections of each stroke:

  1. Unique Starter (Red)
  2. Spacing/Attachment (Orange)
  3. Capitalisation (Teal)
  4. Variant (Green)
  5. Symbol (Purple)
  6. Repetition (Blue)

These options are mapped to different sections of the steno board:

Coloured Layout Diagram

Unique Starter

The first part of the stroke is always the same and identifies all the symbols.
In the Magnum Steno dictionary that I use, SKHW is a unique key combination for the left hand that is never used.
(note that SKWHR is used, but by not using R-, this makes it unique)

Unique Starter Diagram

Due to this, all the combinations of remaining strokes will have no clashes and are free to be used to specify everything needed.
To adjust this starter to your dictionary just change the "uniqueStarter" variable at the top of the dictionary!


There is a consistent way to specify attachment to the text around a symbol using the A and O keys.
From community feedback there are two different attachment specification systems that are the inverse of each other:

  • space
  • attachment

space specification is the default system.
With space attachment, the attachment keys specify on which side of the symbol spaces should be inserted.
This means without any attachment keys used, no spaces will be inserted and the symbol will fully attach on both sides like the / in: usr/bin
Using A will insert a space before the symbol, and using O will insert a space after the symbol.

In contrast, with attachment specification, the attachment keys specify on which side of the symbol spaces should be removed.
This means with no attachment specified, spaces are inserted on both side of a symbol, like the & in: one & two.
Using A will remove the space before the symbol, and using O will remove the space after the symbol.

space may be easier for programming with, due to / in file paths and programming language syntax.
Whereas attachment may be easier for writing with, as most symbols in speech are on their own.
But try each one and see what works best for you!

To change which system you want to use, just change the attachmentMethod variable at the top of the dictionary between "space" and "attachment".

Keys space attachment
No Attachment Diagram x.x x . x
Keys space attachment
Left Attachment Diagram x .x x. x
Keys space attachment
Right Attachment Diagram x. x x .x
Keys space attachment
Both Attachment Diagram x . x x.x


The * can be used to specify capitalisation of the text following the symbol.

By default no capitalisation is applied.

Key Output
Lowercase Diagram x . x, (cons

With the * key used, the next input is capitalised.

Key Output
Uppercase Diagram x . X, said "To


There are a lot of similar symbols, to manage this, each symbol has a base symbol and a list of variant symbols.
The specific variant required is chosen with a combination of the E and U keys, this allows for 4 total variants of a symbol.

By default the base symbol is typed, this is generally the most common of all the variants.

Key Output
Variant 0 Diagram (, $

When the E key is used, the left (or first) variant is typed instead.

Key Output
Variant 1 Diagram [, ¥

When the 'U' key is used, the right (or second) variant is typed.

Key Output
Variant 2 Diagram <,

When both E and U are used, the final variant is typed.

Key Output
Variant 3 Diagram {, £

These variants are stored in the main symbols dictionary and you should edit them based on which ones are more frequent for you!
Though I hope my defaults are good enough.


The main section is the symbol section, used to specify the specific symbol to type.
Only a 2x3 grid is needed to address all the symbols, using variants.
All of the patterns for symbols are done according to shape, rather than phonetics or briefs, and so should be remember visually with the images as an aid.
For each symbol shape the pattern only addresses the base symbol, it doesn't apply as well to the variant symbols. As such, the variants should be anchored in memory to the base symbol itself rather than the pattern.

Pattern Symbols Description
Whitespace Diagram {#Tab} {#Backspace} {#Delete} {#Escape} The pattern aligns with the tips of the arrows on a tab key legend: ↹
Arrow Diagram {#Up} {#Left} {#Right} {#Down} Looks like an arrow key cluster
Arrow Symbols Diagram ↑ ← → ↓ Looks like an upside-down arrow key cluster
Navigation Diagram {#Page_Up} {#Home} {#End} {#Page_Down} Arrow key cluster but with an addition key held down
Music Diagram {#AudioPlay} {#AudioPrev} {#AudioNext} {#AudioMute} Like a strangely rotated L for err... _L_ovely music?
Audio Diagram {#AudioMute} {#AudioLowerVolume} {#AudioRaiseVolume} {#Eject} Like a smaller strangely rotated L for err... _l_ovely music control?
Blank Diagram '' {*!} {*?} {#Space} It's blank! Self descriptive
Capitalization Diagram {*-|} {*<} {<} {*>} Up at the top, separate, it's pointy like capital letters
Exclamation Diagram ! ¬ ↦ ¡ Vertical shape that's off to the left, like ! on a regular keyboard
Double Quote Diagram " “ ” „ Two dots up high like its shape, and off to the left like on ISO keyboards
Hash Diagram # © ® ™ Two vertical bars like in the shape
Dollar Diagram $ ¥ € £ Makes an S shape like a $
Percent Diagram % ‰ ‱ φ Same as a / but with the two extra keys representing the dots
Ampersand Diagram & ∩ ∧ ∈ Makes a mirror image of the standard 'and' brief (mirrored for ease)
quote Diagram ' ‘ ’ ‚ One dot up high, similar to ", on the index for importance
Open Diagram ( [ < { Similar to the standard steno brief
Close Diagram ) ] > } Similar to the standard steno brief
Star Diagram * ∏ § × single dot shape, off to the right like JIS, up high in the sky
Plus Diagram + ∑ ¶ ± single dot shape, off to the right like JIS, under the star
Comma Diagram , ∪ ∨ ∉ Single dot shape, below like on a keyboard, middle finger as less important
Dash Diagram - − – — Line in shape, up in the top right like a normal keyboard
Dot Diagram . • · … Single dot in shape, below like on a keyboard, index finger as important
Slash Diagram / ⇒ ⇔ ÷ Shape of a /
Colon Diagram : ∋ ∵ ∴ Vertical shape, off to the right like a normal keyboard
Semicolon Diagram ; ∀ ∃ ∄ Literally a , and . at the same time
Equals Diagram = ≡ ≈ ≠ Literally a - and a _ at the same time
Question Diagram ? ¿ ∝ ‽ Looks like the top of a ?
At Diagram @ ⊕ ⊗ ∅ Large complicated shape, only way to make a big spiral
Backslash Diagram \ Δ √ ∞ Shape of a \
Caret Diagram ^ « » ° Shape of a ^ and other pointy/raised symbols
Underscore Diagram _ ≤ ≥ µ A line down low opposing -, and other lowered symbols
Backtick Diagram ` ⊂ ⊃ π Single dot up high, next to '
Pipe Diagram | ⊤ ⊥ ¦ Nice symetrical vertical shape goes in the middle
Tilde Diagram ~ ⊆ ⊇ ˜ Makes the shape of a ~


You may want to duplicate certain symbols, such as logical OR || or org-mode headings ### Title.
Repetition is done with the -T and -S keys.

By default any symbol is typed out once.

Key Output
One Diagram :

When using the -S key, the symbol is typed twice in a row.
Think of 's' pluralising words.

Key Output
Two Diagram ::

When using the -T key, the symbol is typed out three times in a row.
Think _T_riple.

Key Output
Three Diagram :::

When using both -S and -T the symbol is typed out a combined 4 times.

Key Output
Four Diagram ::::


Check out the summary poster made by @sammdot for a nice one-page overview of how the whole dictionary works!