/roirpt

For my steno dictionaries and stuf

Primary LanguagePython

roirprt

I basically just git initted in my plover dir and started committing WIPs

This README is better viewed in full width (> 1100 pixels)

Contents

caret-*.json

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 (XEND) KPEPBD or EBGS/PEPBD
extend ^STEPBD (^STEND) EBGS/(S)TEPBD
-ent sent SEPBT (SENT) SEPBT
assent ^SEPBT (^SENT) AS/SEPBT
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

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 the main.json entry AOE/HREBGD (EE/LEKD)
  • misstrokes actually 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

Stressed pre-initials

Sometimes the conceit is stretched to include any pre-initial vowel if convenient, even if stressed, such as era ^RA, or if it would be annoying to write out. But words like efficacy are probably not in scope. (I’ll move these into caret-stressed.json, okay)

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.

Compound sounds

In development (not really)

Looking for permanent homes for:

  • ang-
  • abs-/obs-

Conflict theory

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)
  • audition would be next in line but alas the overworked * key only allows distinguishing one bit of conflict

Another example:

  • a mission would 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

Pseudosteno

When relevant, ^ can be written in pseudosteno as initial a e or o instead. For example, ^DISHUNaDISHUN, ^D*ISHUNeD*ISHUN or whatever. I guess ^sT for ext ^ST can work too

*-prefix-word-parts.json

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.

*-phrasing.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.

caret-as-s.json

Shape-based outlines that relied on top S have been redefined with ^ in place of S

caret-trying-out.json

Testing ground for some guys I’m trying out, will see how it feels

user-*.json

I mean sure? but probably of little interest until Chordial exists

user-main-overrides.json

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

user-punctuation.json

“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, middle-ring-pinky 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)

user-commands.json

Retroactives

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

Spacing control

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)

Capitalization

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

OS cursor movement and shortcuts

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

Plover dictionary and GUI/plugin manipulation

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
=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

License

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

Contributing

KR-BGS WELG

TODO

  • 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 baby theory plonkver