(pronounced /ʁwaʁp/)
Stuff for stoiners (pronounced /stwæ.ɲe/)
I basically just git initted in my plover dir and started committing WIPs
This README is better viewed in full width (> 1100 pixels)
File formats for storing stenography dictionaries are extremely limited: JSON is the default (among other interchangeable rudimentary key–value formats), while a few plugins allow for Python scripts (dynamic dictionaries) or Markdown documents (entries embedded in code blocks interweave with verbose comments in Literate Programming style) to behave as dictionaries.
There is no systematic capability available for rich, well-structured dictionary data with annotations, tags, or metadata holding explanatory comments, part of speech, multiple categories (such as domain or context of use), interlinking cross-references, creation/modification dates, usage or misstroke statistics, review or conflict status, preferred/prescribed outlines, or any other elaborating information or methodology. There is no preprocessor or advanced abstraction to factor common entries in terms of other entries, like affixes, constituents, compounds (e.g. “always capitalize any combination of united followed by kingdom”). This is not conducive to learning or communicating, since dictionaries often function as first references in the absence of adequate pedagogic material.
The only option is to maintain many separate dictionaries.
There are many advantages to splitting: Each dictionary’s filename labels its purpose. It is easier to manually inspect and manipulate entries, since similar entries tend to be closer to each other. Separate dictionaries can be reordered, enabled, or disabled at will. Entries demonstrating one concept are found in a single file easily shared with others (“here are all of, and only, the entries that follow the AEBGT → ject pattern”) that can be borrowed without worrying about massive conflicts.
Indeed, it is unwieldy to maintain a large number of dictionaries in Plover’s interface, and not all entries cleanly fit within a single dictionary (but choosing one is not a science).
Introduces ^ to represent a pre-initial schwa.*
Requires the plover-stenotype-extended
plugin.
A few groups of rhymes so you can see why this might be useful:
Group | Word | Steno | Pseudosteno | Plover default entries |
---|---|---|---|---|
-end | pend | PEPBD | (PEND) |
PEPBD |
spend | SPEPBD | (SPEND) |
SPEPBD | |
append | ^PEPBD | (^PEND) |
A(P)/PEPBD | |
expend | KPEPBD or ^SPEPBD |
(XEND) or(^SPEND) |
KPEPBD or EBGS/PEPBD | |
extend | ^STEPBD | (^STEND) |
EBGS/(S)TEPBD | |
-ent | sent | SEPBT | (SENT) |
SEPBT |
assent | ^SEPBT | (^SENT) |
AS/SEPBT | |
ascent | ^SKREPBT | (^SCENT) |
AS/KREPBT | |
accent | ^KPEPBT | (^XENT) |
ABG/SENT or ABGS/EPBT or KP*EPBT | |
stent | STEPBT | (STENT) |
STEPBT | |
extent | ^STEPBT | (^STENT) |
EBGS/((S)T)EPBT | |
competent | KPEPBT | (KPENT) |
KPEPBT or KPE/TEPBT or KOFRP/TEPBT etc. | |
scent | SKEPBT or SKREPBT |
(SKENT) or(SCENT) |
SKEPBT or SKREPBT |
|
consent | SK*EPBT | (SK*ENT) |
SK*EPBT or KAUPB/SEPBT etc. | |
-ent | intent | SPWEPBT | (INTENT) |
SPWEPBT or EUPB/TEPBT |
absent | ^SPWEPBT | (^SBENT) |
AB/SEPBT |
*
Note: This is not a new idea; people have implemented similar ideas before in different ways
(see phenrsteno for where I got the inspiration).
I chose ^
since it looks like both a small superscript A
and also the IPA symbol ʌ, which is used to represent a (usually stressed) schwa in English.
I like using a punctuation character (rather than e.g. a
or e
)
because I like the ability to easily grep for steno strokes as strings of only uppercase letters or symbols,
and because in general-purpose search engines I can search for strokes and it will return results that ignore the symbol
(although that could eventually be a footgun).
Sample of other groups of words that ^ trivially or neatly solves:
Group | Word | Steno | Pseudosteno | Plover default entries |
---|---|---|---|---|
1 | way | WAEU | (WAI) |
WAEU |
away | ^WAEU | (^WAI) |
W*AEU | |
ware | WAEUR | (WAIR) |
WAEUR | |
aware | ^WAEUR | (^WAIR) |
A/WAEUR | |
long | HROPBG | (LONG) |
HROPBG | |
along | ^HROPBG | (^LONG) |
AOLG | |
2 | lesson | HREFPB | (LEFN) |
HR*EFPB or HR-FPB |
eleven | ^HREFPB | (^LEFN) |
HREFPB | |
3 | limit | HREUPLT | (LIMT) |
HREUPLT |
eliminate | ^HREUPLT | (^LIMT) |
HREUPL/TPHAEUT | |
4 | least | HRAOEFT | (LEEFT) |
HRAOEFT |
alleviate | ^HRAOEFT | (^LEEFT) |
A/HRAOEFT or HRAOEF/KWRAEUT | |
5 | motion | PHOEGS | (MOESHUN) |
PHOEGS |
emotion | ^PHOEGS | (^MOESHUN) |
AOEGS or AOE/PHOEGS | |
6 | norms | TPHORPLS | (NORMS) |
TPHORPLS |
enormous | ^TPHORPLS | (^NORMS) |
TPHO*RPLS or TPHOERPLS | |
7 | involve | SROFL | (VOFL) |
SROFL |
evolve | ^SROFL | (^VOFL) |
SRO*FL etc. | |
8 | vice | SRAOEUS | (VIIS) |
SRAOEUS¹ |
device | TKWAOEUS | (DVIIS) |
TKWAOEUS etc. | |
advice | ^TKWAOEUS | (^DVIIS) |
SREUS etc. | |
9 | stipulate | STEUPLT | (STIPLT) |
STEUP/HRAEUT |
stimulate | STEUFRLT | (STImLT) |
ST*EUPLT | |
estimate | ^STEUPLT | (^STIMT) |
STEUPLT |
¹ I call these Kipling-style briefs since they drop the entire first minor syllable
IDK ^TK-BG why you would avoid ^SROEUD using pre-initial ^TPHEURBL schwa at this point ^THEUPT. It’s the easiest and most consistent available ^SRAEUBL iteration ^TRAEUGS upon the ^POPBT English ^STKPWHREURB layout that you can incorporate ^TKPORPT to advance ^TKWAPBS efficiency ^TPEURBS without unnecessary ^TPHES memorization. Its omission ^PH*EUGS by Ward Stone Ireland seems unusual ^TPHAOURBL in retrospect ^TPHRERPT. Thankfully, it is easy to acquire ^KWAOEUR and accessible ^SEBL, ^KPES/-BL, etc. to exploit ^SPHROEUT on most hobbyist steno keyboards by customizing a few ^TPAOU essential ^SERBL things as needed ^STPHAOETD.
Apologies ^POLGS for a little bit of ^HREUFBLT innocuous ^TPHOBGS fun. This extra ^KPRA key just makes me want to express ^KPRES emotions ^PHOEGSZ about how I feel so alive ^HRAOEUF and as free as ^STPRAOES an avian ^SRAOEPB animal ^TPHEUFRL! Join the avant ^SRAPBT garde! You’re not alone ^HROEPB and can learn it in a day ^TKAEU or only within a ^W-PB week. I welcome you to opine ^PAOEUPB with your approach ^PROEFP to writing all of the ^HR-FT assorted ^SORTD marked words. Hoping I don’t annoy ^TPHOEU or offend ^TPEPBD a ton of ^TOFPB people by evangelizing ^SRAPBLGZ/-G its appeal ^PAOEL, but its existence ^KPEUFPBS is actually ^TWAEUL a huge asset ^SET.
Tip
It is not necessary to know these terms, as their meaning can still be understood in context and through the examples.
- Stop
- Consonant with sudden release after blocked airflow: p, b, t, d, k, g.
- Nasal
- Consonant with continuous release and airflow through nose: m, n.
- Fricative
- Consonant with continuous release and turbulent airflow: f, v, s, z, sh, th, h.
- Affricate
- Consonant that combines stop followed by fricative: ch, j.
- Liquid
- Consonant with continuous release and non-turbulent airflow: l, r.
- Initial
- Consonant (or consonant cluster) forming the onset (beginning part) of a syllable.
- Pre-initial
- Minor syllable before main syllable part. Usually limited to weak, unstressed light syllables: about, embed.
- Schwa
- Neutral vowel “uh” (ə) common in English unstressed syllables.
These dictionaries do not claim to solve the ex-/comp- conflict systematically or completely, but represent the general direction I was going for. In the case of a conflict, usually the leftmost option or the more common word gets priority.
no prefix | prefixed with S | prefixed with ^ | prefixed with ^S |
---|---|---|---|
T t- | ST st- | ^T att- | ^ST est-¹ or ext- |
P p- | SP sp- | ^P app- | ^SP esp- or exp- |
K c- | SK sc- | ^K acc- | ^SK esc- or exc- |
KP comp- or ex- | SKP and- | ^KP ex- or exC-² | ^SKP |
Note that this table is designed to be mnemonic, not comprehensive. For example:
- ^ST: “est-” is shorthand for “ast-, aust-, est-, ist-, ost-, etc.” (as in astute, austere, estate, Istanbul, ostensible)
- ^KP: is ext- or exp- or exc- when used with R (as in extra ^KPRA, express ^KPRES)
In development (not really). Looking for permanent homes for certain starters (marked with ? for now).
For certain other combinations (stop, fricative + stop, stop + fricative, stop + fricative + stop), see the table under the ex-/comp- conflict.
Type | Starter | Steno | Pseudo | Starter | Steno | Pseudo |
---|---|---|---|---|---|---|
no prefix | prefixed with com- con- K- | |||||
Nasal + nasal | ||||||
MM | amm- emm- imm- | ^PH | (^M) |
comm- | KPH | (KM) |
NN | ann- enn- inn- | ^TPH | (^N) |
conn- | K | (K) |
Nasal + stop | ||||||
MP | amp- emp- imp- | KPW | (IMP) |
comp- | KP | (KP) |
MB | amb- emb- imb- | KPW | (IMP) |
comb- | KPW | (KB) |
NT | ant- ent- int- | SPW | (INT) |
cont- | K | (K) |
ND | and- end- ind- | SKP | (AND) |
cond- | K | (K) |
NK | anc- enc- inc- ank- enk- ink- |
^TKP | (INK) |
conc- conk- |
K | (K) |
NG | ang- eng- ing- | ^STKPW | (ING) |
cong- | K | (K) |
Nasal + affricate | ||||||
NJ | enj- inj- ang- eng- ing-³ |
^SKWHR | (INJ) |
conj- cong-³ |
? | |
Nasal + fricative | ||||||
NF | enf- inf- | TPW | (INF) |
comf- conf- |
TKP or TKP*¹ |
(KF) or(KF*) ¹ |
NV | env- inv- | TPWH | (NW) |
conv- | KW | (KW) |
NS | ans- ens- ins- anc- enc- inc-³ |
STPH | (SN) |
cons- conc-³ |
SK | (SK) |
Nasal + fricative + stop | ||||||
NSP | insp- | STPH | (SN) |
consp- | SKP | (KSP) |
NST | inst- | STPH | (SN) |
const- | ? | |
NSK | insc- | STPH | (SN) |
consc- | ? | |
Stop + fricative | ||||||
BS | abs- obs- | SPW or ^SPW² |
(SB) or(^SB) ² |
n/a | ||
DF | def- dif- | TKP or TKW¹ |
(DF) or(DW) ¹ |
|||
DV | dev- div- | TKW | (DW) |
|||
DS | des- dis- dec-³ desc- disc-³ |
STK | (DS) |
|||
Fricative + fricative | ||||||
SF | suff- surf- | STP | (SF) |
n/a | ||
SV | subv- surv- | SW | (SW) |
- when it conflicts with dep- TKP
(DP)
- when it conflicts with int- SPW
(INT)
- followed by a front vowel (e, i, y) only, i.e. “soft” pronunciations of c or g
Note that NK can optionally come before W to form a starter for NQ:
inquire ^TKPWAOEUR (INKWIIR)
.
Example mnemonics for a few starters:
Starter | Steno | Explanation | Shape | Resembles |
---|---|---|---|---|
NK | ^TKP | (K) + ^TP,like (N) shifted left |
▜▘ | ⚓️ anchor 💂🏿♂️ Mr. T, who encouraged kids to stay in class |
NG | ^STKPW | (G) + ^S |
█▌ | 🔳 quadrangle ingot |
NJ | ^SKWHR | (J) + ^H |
▙▟ | 🌉 engineer’s suspension bridge 🚂 train engine |
NF | TPW | (F) + W |
▜ | ꟻ an inverted F 7️⃣ infamous favorite number |
NV | TPWH | (NW) |
▝▛ | ✉️ envelope invitation |
The pattern for the prefix con- plus a consonant can be thought of as K alone when the consonant is a non-labial non-continuant, and K overlapped with the consonant otherwise. This is because in the former case, consonant chords already overlap with K. Alternatively, it can be thought of as dropping the consonant after K when it is a non-labial non-continuant.
Labial | Coronal | Velar | |||||
---|---|---|---|---|---|---|---|
Non-continuants | Nasal | KPH comm- | K conn- | ||||
Stop | KP comp- | KPW comb- | K cont- | K cond- | K conc- conk- | K cong- | |
Affricate | K conj- cong-³ | ||||||
Continuants | Fricative | TKP comf- conf- | KW conv- | SK cons- conc-³ | |||
Liquid | KHR coll- | KR corr- |
As usual, the asterisk is used for conflict resolution here,
but K* can also be thought of as representing a doubling or strengthening of K
for words that would require two K
s,
such as concord KO*RD (≠ cord KORD)
or concave KA*EUF (≠ cave KAEUF).
Recently thinking about adding a few more starters, inspired by wooningeire. Most seem rare though (not counting productive prefixes like in-). My dictionary contains some ad-hoc solutions, e.g. anthology SPWO*LG (INT*OLG)
that try to get away with dropping consonants, e.g. enthusiast ^THAOUFT (^THUUſT)
, which I mostly dislike.
Type | Starter | Steno | Explanation | Example |
---|---|---|---|---|
MF | amph- emph- | KPWH TPW |
KPW + H | amphibious, emphatic |
NTH | anth- enth- | SPWH | SPW + H | anthem, anthology, anthropology, enthrone |
NKP | incap- incomp- | ^TKP | ^TKP (P reused) | incapable, incapacitate, incompatible, incompliant |
NKSP | inconsp- | ^STKP | ^TKP + S | inconspicuous |
NKV | inconv- | ^TKPW | ^TKP + W | inconvenient |
NCH | ench- incoh- | ^TKPH | ^TKP + H | enchant, incoherent |
Sometimes the dictionary includes:
- shifty inversions,
such as album ^PWHRUPL
(^BLUM)
or abduct ^TKPWUBGT(^DBUKT)
- fingery conveniences,
such as elected ^HREBGD
(^LEKD)
for canonical ^HREBGTD(^LEKTD)
– as per themain.json
entry AOE/HREBGD(EE/LEKD)
misstrokesactually just manual data entry errors at this point- generous brainfarty fallbacks, such as active ^TWEUF for canonical ^TW (core of the activ- word family)
- redundant redundancies that I’ll never actually use but are there for completionism’s sake,
such as upon ^POPB
(^PON)
- opinionated briefs, such as pretty much most of the dictionary (I had an example but it slipped my mind)
- or orphans,
such as apple ^PHR
(^PL)
because before I got deep into this whole rabbit hole I tried defining it as WAPL although I guess that conflicts with wam so it was cute while it lasted
Sometimes the conceit is stretched to include
any pre-initial vowel, even stressed, if convenient,
such as era ^RA,
or if it would be annoying to write out.
But words like efficacy are not really in scope.
Without a lot of repetition, I’ll usually reach for briefs along the lines of
APLZ rather than ^PHAFPB for Amazon
due to the stress mismatch.
(I’ll move these into caret-stressed.json
, okay)
Words without initial stress take precedence, so even the misstroke eleventh ^HREFPBT precedes elephant.
Word families are kept together in the core part of the dictionary, even if one word happens to be stress-initial. For example, illustrate and illustrative. Similarly, words with ambiguous initial stress are kept in core, such as apparatus.
Note that word family starters usually contain the primary stress (e.g. elèctr). This is different from most other caret entries, which conventionally have unstressed starters.
Starter | Steno | Pseudosteno | Example |
---|---|---|---|
activ | ^TW | (^TW) |
activate ^TWAEUT activity ^TWEUT |
autom autonom |
^TPWH | (^TWM) |
automate ^TPWHAEUT autonomy ^TPWHEU |
electr | ^TWR | (^TWR) |
electron ^TWROPB electric ^TWREUBG |
Tries to use * to more or less resolve conflicts based on an informal hierarchy of differently colored schwas:
- Spelled with a etc. or pronounced with a low-mid vowel or schwa (“schwa”) /ə æ ʌ/ etc.
- Spelled with e, i, etc. or pronounced with a front vowel or i-colored schwa (“schwi”) /i ɪ ɨ ᵻ ɛ/ etc.
- Spelled with o, au, etc. or pronounced with a back vowel or u-colored schwa (“schwu”) /ɵ ᵿ oʊ ɔ ɒ/ etc.
So for example:
- addition ^TKEUGS
(^DISHUN)
- edition ^TK*EUGS
(^D*ISHUN)
auditionwould be next in line but alas the overworked * key only allows distinguishing one bit of conflict
Another example:
a missionwould be first in line if this phrase were actually needed, but the two worthier words below take more priority- emission ^PHEUGS
(^MISHUN)
- omission ^PH*EUGS
(^M*ISHUN)
The farther the vowel is from mid central, the lower the priority:
- elicit ^HREUS/EUT
(^LIS/IT)
- illicit ^HR*EUS/EUT
(^L*IS/IT)
But derivations of asterisked words can be unasterisked if there is no longer a conflict:
- allusion ^HRAOUGS
(^LUUSHUN)
- illusion ^HRAO*UGS
(^L*UUSHUN)
- illusory: both ^HRAOUS/REU
(^LUUS/RI)
and ^HRAO*US/REU(^L*UUS/RI)
because *allusory isn’t a word
The a lot/allot
and a lot of/aloft conflicts
are resolved by using AU for the latters.
Although per the above, allotment is both
^HRAUPLT (^LAUMT)
and ^HROPLT (^LOMT)
.
Not yet consistent, might try to keep word families together. TODO figure out better efficient/officiate and acceptable/accessible
When relevant, ^
can be written in pseudosteno
as initial a
e
or o
instead.
For example, ^DISHUN
→ aDISHUN
, ^D*ISHUN
→ eD*ISHUN
or whatever.
I guess ^sT
for ext ^ST can work too
Contains non-word prefixes such as extens ^STENS to make longer words from parts. For example, extensible does not need to be explicitly defined as it can be formed from extens + -able -BL. (Wait, this is a bad example oof)
Though some entries are arguably independent words,
such as anon ^TPHOPB (^NON)
or admin ^TKPHEUPB (^DMIN)
,
I put them here due to their intentional function of taking suffixes.
For this reason, these entries are not literally prefixes of the form {blah^}
.
Those affixes (prefixes and suffixes) are in *-affixes.json
.
Multi-word entries that could be considered part of a more memorization-heavy “phrasing” system.
Half the entries are just short mandatories + ^
that give the word a appended on either before or after,
such as a bit ^PWEUT (^BIT)
or from a ^TPR (^FR)
Highly attested phrasings that seem wholly uncontroversial,
such as akin to ^KEUPBT (^KINT)
or according to ^KORGT,
are in the non-phrasing dictionaries instead.
Keeps words with stylized official spellings in the same place to make it easy to review, find patterns, etc.
Shape-based outlines that relied on top S have been redefined with ^ in place of S
Testing ground for some guys I’m trying out, will see how it feels
Fingerspelling dictionary for IPA symbols used in (American) English as well as a selection of commonly used IPA symbols in general. Omits ordinary letters, like s, as they can be fingerspelled normally. Intended to be iconic and useful, rather than comprehensive.
Like ordinary fingerspelling, the left bank is used for consonants and the vowel bank is used for vowels, but the right bank is used for some vowel variants and suprasegmentals as well.
^*- is used for IPA fingerspelling, and
^*-P for suprasegmental symbols.
The consonants follow the convention of
H
for fricative (if the base is plosive)
or palato-alveolar (if the base is already fricative),
R
for retroflex, and
HR
for palatal (i.e. alveolo-palatal).
The vowels follow the convention of
-F
for turned or barred variants.
IPA | Chord | Base | Explanation |
---|---|---|---|
Suprasegmentals | |||
ʰ | ^-FPD | -P | -FD (-H) |
ˈ | ^-PD | -P | -D top |
ː | ^-PDZ | -P | -DZ top and bottom |
ˌ | ^-PZ | -P | -Z bottom |
Consonants | |||
ɸ | ^TP* | TP (F) | F, since ^PH* is used for ɱ |
β | ^PWH* | PW (B) | B + fricative H |
θ | ^TH* | T (T) | T + fricative H |
ʈ | ^TR* | T (T) | T + retroflex R |
ɬ | ^THR* | T (T) | T + HR (L) |
ð | ^TKH* | TK (D) | D + fricative H |
ɖ | ^TKR* | TK (D) | D + retroflex R |
ɟ | ^TKHR* | TK (D) | D + palatal HR |
dʒ | ^SKWR* | SKWR (J) | convenient for d TK* + ʒ |
ʃ | ^SH* | S (S) | S + fricative H |
ʂ | ^SR* | S (S) | S + retroflex R |
ɕ | ^SHR* | S (S) | S + palatal HR |
ʒ | ^STKPWH* | STKPW (Z) | Z + fricative H |
ʐ | ^STKPWR* | STKPW (Z) | Z + retroflex R |
ʑ | ^STKPWHR* | STKPW (Z) | Z + palatal HR |
χ | ^KH* | K (K) | K + fricative H |
ç | ^KHR* | K (K) | K + palatal HR |
ɡ | ^TKPW* | TKPW (G) | |
ɣ | ^TKPWH* | TKPW (G) | G + fricative H |
ʁ | ^TKPWR* | TKPW (G) | ɢ’s uvularity + rhotic R |
ʔ | ^TKPWHR* | TKPWHR (GL) | GLottal |
ɱ | ^PH* | PH (M) | |
ŋ | ^TPH* | TPH (N) | |
ɳ | ^TPHR* | TPH (N) | N + retroflex R |
ɹ | ^R* | R (R) | |
Semivowels | |||
ʍ | ^WH* | WH (WH) | |
ɥ | ^WHR* | W (W) | W + palatal HR |
ɰ | ^WR* | WR | |
Long vowels and diphthongs | |||
iː | ^AO*E | AOE (EE) | |
ɪəɹ | ^AO*ER | AOE (EE) | + R |
eɪ | ^A*EU | AEU (AI) | |
ɛəɹ | ^A*EUR | AEU (AI) | + R |
aɪ | ^AO*EU | AOEU (II) | |
aɪəɹ | ^AO*EUR | AOEU (II) | + R |
uː | ^AO*U | AOU (UU) | |
ʊəɹ | ^AO*UR | AOU (UU) | + R |
oʊ | ^O*E | OE (OE) | |
ɔəɹ | ^O*ER | OE (OE) | + R |
aʊ | ^O*U | OU (OU) | |
aʊɹ | ^O*UR | OU (OU) | + R |
ɔɪ | ^O*EU | OEU (OI) | |
Short vowels | |||
ɪ | ^*EU | EU (I) | |
ɪəɹ | ^*EUR | EU (I) | + R |
ɨ | ^*EUF | EU (I) | + F for barred |
ɛ | ^*E | E (E) | |
əɹ | ^*ER | E (E) | + R |
ə | ^*EF | E (E) | + F for turned |
æ | ^A* | A (A) | |
æ | ^A*E | AE (AE) | (redundant) |
ɑɹ | ^A*R | A (A) | + R (redundant) |
ɐ | ^A*F | A (A) | + F for turned |
ɑ | ^A*U | AU (AU) | |
ɑɹ | ^A*UR | AU (AU) | + R |
ɒ | ^A*UF | AU (AU) | + F for turned |
ɔ | ^O* | O (O) | |
ɔɹ | ^O*R | O (O) | + R |
ɵ | ^O*F | O (O) | + F for barred |
œ | ^O*EF | OE (OE) | + F for ligature |
ʊ | ^AO* | AO (OO) | |
ʌ | ^*U | U (U) | |
ɜːɹ | ^*UR | U (U) | + R |
ʉ | ^*UF | U (U) | + F for barred |
ɯ | ^PH*F | PH (M) | + F for turned |
Contains words spelled with diacritics (e.g. café) as well as multi-stroke fingerspelling entries for letters with diacritics (e.g. ä = A*/^-FL) based on iconic right-hand shapes. See another precedent of this.
Diacritic | Symbol | Chord | Shape |
---|---|---|---|
Acute | ´ | ^-RP | ⠐⠁⠀ |
Grave | ` | ^-PG | ⠀⠑⠀ |
Circumflex | ˆ | ^-RPG | ⠐⠑⠀ |
Háček | ˇ | ^-FBL | ⠈⠊⠀ |
Macron | ¯ | ^-FPL | ⠈⠉⠀ |
Breve | ˘ | ^-FRBLG | ⠘⠚⠀ |
Tilde | ˜ | ^-RPBL | ⠐⠋⠀ |
Umlaut | ¨ | ^-FL | ⠈⠈⠀ |
Ring | ˚ | ^-P | ⠀⠁⠀ |
Slash | ̷ | ^-RL | ⠐⠈⠀ |
Cedilla | ¸ | ^-RPB | ⠐⠃⠀ |
I mean sure? but probably of little interest until Chordial exists
Cause I really don’t like these defaults.
Also includes some prefixes,
such as zee SAO*E (ZEE)
or ob OB (OB)
,
but I put them in this file because the intent is entirely
to cover up annoying defaults that confuse me
when typing stroking outlining writing longer words
“Sentence” means sentence-contextual (built-in feature that attaches punctuation to preceding word). Add * to the first four (Period, Comma, Question, Exclamation) for unspaced versions.
I envision ? KW-PL and ! TP-BG as shape-based complements of each other: the shape of KW-PL ascends from left to right like a question’s intonation rising ↗︎, and the shape of TP-BG descends like the inflection of an exclamation falling ↘︎. (See also)
Code | Command | Spacing | Steno | Shape | Explanation | Plover default |
---|---|---|---|---|---|---|
{.} | Period | Sentence | TP-PL | ⠈⠁⠀⠀⠉⠀ | middle+ring, also FuLL stoP | yes |
{,} | Comma | Sentence | KW-BG | ⠐⠂⠀⠀⠒⠀ | low mnemonic for descender | yes |
{?} | Question | Sentence | KW-PL | ⠐⠂⠀⠀⠉⠀ | shaped like rising intonation, also quasi-p. QUestion Mark |
yes |
{!} | Exclamation | Sentence | TP-BG | ⠈⠁⠀⠀⠒⠀ | shaped like falling intonation, also quasi-phonetic BanG |
yes |
{^:^} | Colon | Unspaced | TH-FL | ⠈⠈⠀⠈⠈⠀ | dot pairs, on upper row like . | KHR-PB (CoLoN) |
{:} | Colon | Sentence | ^P-PT | ⠁⠁⠀⠀⠁⠁ | same but further out | STPH-FPLT |
{^;^} | Semicolon | Unspaced | KR-RG | ⠐⠐⠀⠐⠐⠀ | dot pairs, on lower row like , | TH-FL |
{;} | Semicolon | Sentence | SW-BS | ⠂⠂⠀⠀⠂⠂ | same but further out | STPH*FPLT, SP-PT |
{^…} | Ellipsis | After | SW* | ⠂⠂⠂⠀⠀⠀ | three dots on lower left row | HR-PS (eLliPSis) |
{^_^} | Underscore | Unspaced | KWR-RBG | ⠐⠒⠀⠐⠒⠀ | low line, index-middle-ring | RUPBD (UNDeR) |
{^-^} | Hyphen | Unspaced | H-F | ⠀⠈⠀⠁⠀⠀ | tiny line across upper row | H-PB (HypheN) |
- | Dash | Spaced | PH-FP | ⠀⠉⠀⠉⠀⠀ | short line across upper row | H*PB |
– | En dash | Spaced | TPH-FPL | ⠈⠉⠀⠉⠁⠀ | longer line across upper row | TPH-RB (NdaSH) |
— | Em dash | Spaced | ^TPH-FPLT | ⠉⠉⠀⠉⠉⠀ | longest line across upper row | PH-RB (MdaSH) |
For paired punctuation, such as (opening and closing) brackets and quotation marks.
I prefer outlines based on iconic symbol shapes to outlines based on symbol names. Outlines for the opening/closing square brackets, curly braces, and angle brackets use exclusively the left/right key banks respectively. To avoid conflicts, the main outlines for opening/closing parentheses use both banks, with vowels A and U meaning opening/closing respectively. When I want to type symbols, I don’t want my hands to feel like they’re typing real words, and vice versa.
For aesthetic reasons, the vowel keys in the diagrams below are positioned to line up with the WR and RG keys, although by default the Uni lines them up with R*₂ and *₄R. This layout decision does not apply to other sections of this document.
Code | Command | Spacing | Steno | Shape | Explanation | Plover default |
---|---|---|---|---|---|---|
{~|(^} | Paren open | Before | KPAPG | ⠐⠅⠀⠀⠑⠀ | shaped like parenthesis, left vowel for open |
PREPB (PaREN) |
{^~|)} | Paren close | After | KPUPG | ⠐⠁⠀⠀⠕⠀ | shaped like parenthesis, right vowel for close |
PR*EPB |
{~|()^} {#Left} |
Paren both | Before | KPAUPG | ⠐⠅⠀⠀⠕⠀ | shaped like parentheses, cursor in between |
PR*EPBS (meant for code, not prose) |
{[^} | Bracket open | Before | TKPA | ⠘⠅⠀⠀⠀⠀ | shaped like square bracket | PWR-BGT (BRacKeT) |
{^]} | Bracket close | After | UPLG | ⠀⠀⠀⠀⠝⠀ | shaped like square bracket | PWR*BGT |
{~|[]^} {#Left} |
Bracket both | Before | TKPAUPLG | ⠘⠅⠀⠀⠝⠀ | shaped like square bracket | none |
{[^} | Brace open | Before | SKPWA | ⠒⠅⠀⠀⠀⠀ | left brace protruding out | TPR-BGT (FRench bracKeT) |
{^]} | Brace close | After | UPBGS | ⠀⠀⠀⠀⠕⠂ | right brace protruding out | TPR*BGT |
<{^} | Angle open | Before | TKWA | ⠘⠆⠀⠀⠀⠀ | left angle tilted 45° CCW ⤺ | PWRABG (BRACKet) |
{^}> | Angle close | After | UBLG | ⠀⠀⠀⠀⠞⠀ | right angle tilted 45° CW ⤸ | PWRA*BG |
{'^} | Quote open | Before | KW-LT | ⠐⠂⠀⠀⠈⠁ | analog of KW-GS for " open, top row mnemonic for ' form; also quasi-p. QUote LefT |
SKW-T (Single QUoTe) |
{^'} | Quote close | After | KR-LT | ⠐⠐⠀⠀⠈⠁ | analog of KR-GS for " close, top row mnemonic for ' form; also quasi-p. Quote RighT |
SKW*T, -PBT |
Some alternate versions:
Code | Command | Spacing | Steno | Shape | Explanation |
---|---|---|---|---|---|
{~|(^} | Paren open | Before | STKPWA | ⠚⠇⠀⠀⠀⠀ | shaped like thicker paren |
{^~|)} | Paren close | After | UPBLGS | ⠀⠀⠀⠀⠟⠂ | shaped like thicker paren |
<{^} | Angle open | Before | TPWA | ⠈⠇⠀⠀⠀⠀ | left angle tilted 135° CW ⤸ |
{^}> | Angle close | After | UPBL | ⠀⠀⠀⠀⠏⠀ | right angle tilted 135° CCW ⤺ |
Add * for unspaced versions.
Code | Command | Spacing | Steno | Shape | Explanation | Plover default |
---|---|---|---|---|---|---|
{^}({^} | Paren open | Unspaced | STKPWA* | ⠚⠇⠀⠂⠀⠀ | shaped like thicker paren | P*PB (PareN) |
{^}){^} | Paren close | Unspaced | *UPBLGS | ⠀⠀⠂⠀⠟⠂ | shaped like thicker paren | P*PBT (PareNThesis) |
etc. |
Left side of the board is mnemonic for “retroactive.”
Code | Command | Steno | Pseudosteno | Shape | Explanation |
---|---|---|---|---|---|
{*+} | Repeat Last Stroke | # | # |
wiki default | |
{*} | Toggle Asterisk | #* | #* |
wiki default | |
{*?} | Retro Add Space | #SK | i.e. #SK | ⠒⠄⠀⠀⠀⠀ | horizontal is mnemonic for add space |
{*!} | Retro Delete Space | 2K | i.e. #TK | ⠘⠄⠀⠀⠀⠀ | vertical is mnemonic for no gap |
#NOOP | 2K3W | i.e. #TKPW | ⠘⠇⠀⠀⠀⠀ | used for notes-to-self |
Need to add backspace
Code | Command | Steno | Shape | Explanation | Plover default |
---|---|---|---|---|---|
{^^} | Suppress Next Space | TK-TS | ⠘⠀⠀⠀⠀⠃ | 2nd-furthest columns | TK-LS (DeLete Space) |
{^^} | Suppress Next Space | TK-LG | ⠘⠀⠀⠀⠘⠀ | both ring fingers | TK-LS (DeLete Space) |
I'm going to change most of these into shape-based briefs
Code | Command | Steno | Pseudosteno | Explanation | Plover default |
---|---|---|---|---|---|
{*-|} | Retro Capitalize | KPA*D | KPA*D |
+ -D past tense | yes |
{>} | Next Lower | HRO*ER | LO*ER |
LOwERcase | yes |
{*>} | Retro Lower | HRO*ERD | LO*ERD |
+ -D past tense | yes |
{<} | Next All Caps | KPA*L | KPA*L |
CaP ALL | yes |
{*<} | Retro All Caps | *UPD | *UPD |
UPpercase + -D | yes |
{MODE:CAPS} | All Caps On | KA*PS | KA*PS |
all CAPS | yes |
Code | Command | Steno | Pseudosteno | Explanation |
---|---|---|---|---|
{#Control_L(a)} | ⌃A (like Home on Mac) | ^H*FT | ^H*FT |
* + SH-FT for Home, with ^ for top S |
{#Control_L(e)} | ⌃E (like End on Mac) | SR*RS | SR*RS |
* + SR-RS for End |
{#Shift_L(Tab)} | ⇧⇥ | STA*B | STA*B |
Shift + Tab |
{#Super_L(f)} | ⌘F | KPH-F | KPH-F |
|
{#Super_L(s)} | ⌘S | KPH-S | KPH-S |
Code | Command | Steno | Pseudo/Shape | Explanation | Plover default |
---|---|---|---|---|---|
{PLOVER:LOOKUP} | Lookup | HR-FR | ⠀⠘⠀⠃⠀⠀ | both index fingers | PHR*UP |
{PLOVER:ADD_T…} | Add Translation | PWHR-FRPB | ⠀⠛⠀⠛⠀⠀ | both index+middle | TKUPT |
{PLOVER:FOCUS} | Show Plover | PHROERB | PLOESH |
PLover SHOW | PHROFBGS |
{PLOVER:FOCUS}{# Super(Shift(K))} |
Open Word Tray† | PHRORTD | PLORDT |
PLover wORD Tray | |
{PLOVER:FOCUS}{# Super(Shift(L))} |
Open Spectra Lexer | PHRERBGT | PLERKT |
PLover spEKTRa | |
{PLOVER:FOCUS}{# Super(Shift(S))} |
Open SVG Layout† | PHROFGS | PLOSFG |
PLover SVG | |
=wt_prev_page | Word Tray Prev | #-RB | ⠀⠄⠀⠐⠂⠀ | plugin-suggested | |
=wt_next_page | Word Tray Next | #-GS | ⠀⠄⠀⠀⠐⠂ | plugin-suggested | |
=wt_reload | Word Tray Reload | #-RBGS | ⠀⠄⠀⠐⠒⠂ | plugin-suggested |
† To use, patch word_tray_ui.py
by adding SHORTCUT = "Ctrl+Shift+K"
in class WordTrayUI
and SHORTCUT = "Ctrl+Shift+S"
in layout_ui.py
Code in plugins/
, third-party-dictionaries/
, and main.json
is not my own.
It’s just version controlled here to record my modifications
in order to prevent any updates from overwriting them.
OERZ TKO WHAFRT TPUBG UPT
^TR-BGS WELG
KR-BGS WELG
- Document repo contents
- Methodology (how I went about finding what words to include)
- Split user.json into phrasing, plurals/edge-cases, prefixes, glaring-omissions
- Add one-liners, scripts, exploratory research (with documentation)
- Dictionary generator/preprocessor
to define e.g.
accustom
in terms of ^ +{custom}
- If I ever do all that I’ll name my
babytheoryplonkverthoeur (pronounced /θwɑːɹ/)
- Declarative open phrasing engine, my WIP rewrite of Jeff phrasing