e7e49be

Pinchord · pinchord.git · Tickets · Changelog

Branches > pre-release-31-4 > e7e49be > files / .gitignore

Remove Javelin support

Grahp, 2026-10-24

Commit: e7e49bef9d79852c7b68f2aa7856ad06edd6ba28
Parent: 1bb903b

12 changed files:

.gitignore modified (view file)

@@ -1,6 +1,5 @@ .clj-kondo/ .lsp/ .nrepl-port-pythontest.py dist/ *.egg-info/

README.md modified (view file)

@@ -4,7 +4,7 @@  It is in pre-release, so keep that in mind. -This repo has Javelin and Plover systems.+It runs on Plover, the open steno engine.  Feel free to port Pinchord to other platforms as well :p @@ -13,11 +13,3 @@ Everything is versioned with a suffix number, see https://grahp.dev/pinchord-changelog  Thanks to Kate (https://codeberg.org/StrawberryTurtle, https://github.com/StrawberryTurtle), Harri (https://github.com/StenoHarri), Zak (https://zakventer.com), @novachromatic, Tink, and a bunch of others (hi :p) for help and influence :D--# Dictionary--Chords can be found in "chords.edn" or "pinchord-chords.vx.y.json" if that is a more useful format to you.--To generate the Javelin files from `chords.edn`, run `./generate-dict.clj` (requires babashka - https://babashka.org).--Or you can just edit the generated dictionary directly of course.

bb.edn modified (view file)

@@ -2,12 +2,6 @@  {:requires ([babashka.fs :as fs]              [clojure.edn :as edn]) -  generate {:doc "Generate the Javelin and Plover files from chords.edn"-            :task (let [mods (str "pinchord-mods-" (:version (edn/read-string (slurp "chords.edn"))) ".json")]-                    (shell "bb generate-dictionary.clj")-                    (shell "bb generate-mods.clj")-                    (fs/move mods (fs/path "plover_pinchord/dictionaries" mods) {:replace-existing true}))}-   pypi {:doc "Clean build the Plover plugin, and upload it to PyPI"         :task (do (fs/delete-tree "dist")                   (shell "nix shell nixpkgs#python3Packages.build nixpkgs#python3Packages.twine"

chords.edn deleted (view file)

@@ -1,347 +0,0 @@-{:version "v30.2"- :banks {:prefixes "#+"-         :initials "TSPWHR&"-         :vowels "AOIU^"-         :finals "LRPKFST*"-         :suffixes "es"}- :keys "#+TSPWHR&AOIU^LRPKFST*es"- :initials {"T" "t"-            "TSP&" "sk"-            "TP" "f"-            "TP&" "ph"-            "TSWR" "kr"-            "THR" "thr"-            "TPR" "fr"-            "PWR" "br"-            "SH&" "sch"-            "TSPR" "scr"-            "TSPR&" "skr"-            "TSWH" "kn"-            "TWH" "thw"-            "PWHR" "bl"-            "SPWHR" "cl"-            "SPWHR&" "chl"-            "TS" "st"-            "TSH" "sth"-            "TS&" "ts"-            "SPR" "spr"-            "SHR&" "shr"-            "HR" "l"-            "HR&" "ll"-            "WH" "wh"-            "WH&" "hw" ; The two hwat?-            "TW" "tw"-            "S" "s"-            "SR" "v"-            "SR&" "vr"-            "TPWR" "dr"-            "TPWH" "x"-            "H" "h"-            "PR" "pr"-            "TSPWR" "gr"-            "SHR" "sl"-            "SW" "sw"-            "SW&" "sv"-            "SWR" "y"-            "TSPWH" "gh"-            "R" "r"-            "R&" "rh"-            "SWHR" "squ"-            "TSR" "str"-            "TSR&" "tz"-            "TWHR" "j"-            "SH" "sh"-            "PH" "m"-            "TSP" "sc"-            "TR" "tr"-            "P" "p"-            "WHR" "qu"-            "WHR&" "q"-            "TPHR" "fl"-            "TPHR&" "phl"-            "TPR&" "phr"-            "TH" "th"-            "WR" "wr"-            "SPWR" "cr"-            "SPWR&" "chr"-            "SPH" "sm"-            "SPH&" "schm"-            "TSW" "k"-            "SPHR" "spl"-            "TSPWHR" "gl"-            "TSWHR" "kl"-            "SPW" "c"-            "SWH" "z"-            "PHR" "pl"-            "SPWH" "ch"-            "TSPW" "g"-            "W" "w"-            "SP" "sp"-            "SP&" "sph"-            "TSPH" "sn"-            "TSPHR" "scl"-            "TPH" "n"-            "TPH&" "mn"-            "TPW" "d"-            "PW" "b"-            "" "{^}"}-- :vowels {"OU" "ou"-          "OU^" "uo"-          "AU" "au"-          "AOI" "ei"-          "AO" "oa"-          "AO^" "ao"-          "AU^" "ua"-          "AI^" "ia"-          "IU^" "ee"-          "IU" "e"-          "AIU" "ea"

Show all 348 lines

generate-dictionary.clj deleted (view file)

@@ -1,88 +0,0 @@-#!/usr/bin/env bb-(def sections [:prefixes :initials :vowels :finals :suffixes])--(def priority-  "Priorities used for javelin orthospelling."-  (zipmap sections-          (rest (range))))--(comment-  (def yaml-dict (yaml/parse-string (slurp "pinchord-javelin-dictionary.yaml")))--  (->> (:letters yaml-dict)-       (filter #(= (:order %) 2))-       (map (fn [m] [(:stroke m) (:data m)]))-       (into {})))--(defn finalize [m]-  (update-keys m (partial str "-")))--(defn mask [s1 s2]-  (apply str (remove (set s1) s2)))--  (defn abbreviate-    "Javelin entries can only be 6 characters long!"-    [s]-    (if (> (count s) 6)-      (let [new-s (-> s-                      (str/replace #"TSPW" "G")-                      (str/replace #"PKS" "C")-                      (str/replace #"PKFS" "G")-                      (str/replace #"KFS" "SH")-                      (str/replace #"LR" "N"))]-        (if (> (count new-s) 6)-          (throw (ex-info "Too long!" {:s s :new-s new-s}))-          new-s))-      s))--  (defn all-chords [s]-    (if (empty? s)-      #{""}-      (let [rest-combos (all-chords (rest s))]-        (set (concat-               rest-combos-               (map #(str (first s) %) rest-combos))))))--  (defn abbreviate-long-chords [s]-    (update-vals s abbreviate))--  (defn with-gaps-filled [bank chords]-    (let [s (remove (bank chords) (all-chords (bank (:banks chords))))]-      (merge (bank chords) (abbreviate-long-chords (zipmap s s)))))--(defn ^:private new-value [chords]-  (assoc chords-         :initials (with-gaps-filled :initials chords)-         :vowels   (with-gaps-filled :vowels chords)-         :finals   (with-gaps-filled :finals chords)))--; TODO make this make all chords that aren't in chords.edn map to themself :D-(let [chords (-> (edn/read-string (slurp "chords.edn"))-                 new-value-                 (update :finals finalize)-                 (update :suffixes finalize))-      banks (:banks chords)-      dict {:name (str "Pinchord Base " (:version chords))-            :maximumOutlineLength 1-            :starters [{:stroke "#+" :definition "{^}{-|}" :mask "#+"}-                       {:stroke "" :definition "{}" :mask ""}]-            :letters (->> (reduce (fn [acc [bank entries]]-                                    ; TODO if the bank has no keys, map it to itself?-                                    (if-let [bank-keys (banks bank)]-                                      (into acc (mapv (fn [[stroke translation]]-                                                        {:stroke stroke :data translation :order (priority bank)-                                                         :avoidMask (str (when (= bank :finals)-                                                                           "-")-                                                                         (mask stroke bank-keys))})-                                                      entries))-                                      (into acc (mapv (fn [[stroke translation]]-                                                        {:stroke stroke :data translation :order (priority bank)})-                                                      entries))))-                                  #{} (select-keys chords sections))-                          (sort-by (comp - count :stroke))-                          ; Use this if you want finals to suppress space by default :)-                          #_(cons {:stroke "-" :data "{^}" :order (priority :finals)}))}-      dict-path (str "pinchord-javelin-dictionary-" (:version chords) ".yaml")-      json-chords-path (str "pinchord-chords-" (:version chords) ".json")]-  (spit dict-path (yaml/generate-string dict))-  (spit json-chords-path (json/generate-string chords)))

generate-mods.clj modified (view file)

@@ -378,6 +378,4 @@         (str "#+" fingerspelling-starter "-" chord) (str "{^}{-|}" letter)         ])])) -(def version (:version (edn/read-string (slurp "chords.edn"))))--(spit (str "pinchord-mods-" version ".json") (json/generate-string (merge symbols-dict fingerspelling-dict numbers-dict movement-dict)))+(spit "pinchord-mods.json" (json/generate-string (merge symbols-dict fingerspelling-dict numbers-dict movement-dict)))

pinchord-chords-v30.2.json deleted (view file)

@@ -1 +0,0 @@-{"version":"v30.2","banks":{"prefixes":"#+","initials":"TSPWHR&","vowels":"AOIU^","finals":"LRPKFST*","suffixes":"es"},"keys":"#+TSPWHR&AOIU^LRPKFST*es","initials":{"":"{^}","WH&":"hw","T":"t","TWH&":"TWH&","TPWHR&":"TPWHR&","TSP&":"sk","TS&":"ts","TSPHR":"scl","TP":"f","TPWR&":"TPWR&","TSWR":"kr","THR":"thr","TPR":"fr","TSWH&":"TSWH&","HR&":"ll","PWR":"br","TPWHR":"TPWHR","TSWHR&":"TSWHR&","TSPHR&":"TSPHR&","TSPR":"scr","TSWH":"kn","TH&":"TH&","SWHR&":"SWHR&","TWH":"thw","SHR&":"shr","TP&":"ph","PWHR":"bl","TPH&":"mn","W&":"W&","PHR&":"PHR&","TPR&":"phr","SPWHR&":"chl","SPWHR":"cl","PR&":"PR&","TSPH&":"TSPH&","TS":"st","SW&":"sv","SPW&":"SPW&","SPR":"spr","SWHR":"squ","PH&":"PH&","HR":"l","H&":"H&","WH":"wh","TW":"tw","S":"s","SR":"v","TPWR":"dr","TSH":"sth","H":"h","PR":"pr","TSPWR":"gr","T&":"T&","SHR":"sl","TSR&":"tz","SW":"sw","TSPWHR&":"GHR&","SWH&":"SWH&","SWR&":"SWR&","SWH":"z","TSPWH":"gh","TSPR&":"skr","R":"r","TPWH&":"TPWH&","TPWH":"x","TPW&":"TPW&","TWR":"TWR","TSR":"str","TWHR":"j","TWHR&":"TWHR&","SPH&":"schm","TSPW&":"TSPW&","PW&":"PW&","SH":"sh","SPWR&":"chr","TR&":"TR&","PH":"m","TSP":"sc","TR":"tr","TSW&":"TSW&","P&":"P&","&":"&","P":"p","PWH":"PWH","SH&":"sch","TPHR":"fl","SPWH&":"SPWH&","TPHR&":"phl","TH":"th","WR":"wr","SP&":"sph","SPWR":"cr","TSHR&":"TSHR&","TW&":"TW&","WR&":"WR&","SPH":"sm","TSW":"k","SR&":"vr","PWH&":"PWH&","TSH&":"TSH&","SPHR":"spl","TSPWHR":"gl","SWR":"y","SPR&":"SPR&","PWHR&":"PWHR&","TSPWH&":"TSPWH&","TSWHR":"kl","SPW":"c","TSHR":"TSHR","PWR&":"PWR&","WHR&":"q","TSWR&":"TSWR&","PHR":"pl","THR&":"THR&","SPWH":"ch","TSPW":"g","S&":"S&","TSPWR&":"TSPWR&","W":"w","R&":"rh","SP":"sp","TSPH":"sn","TPH":"n","TWR&":"TWR&","SPHR&":"SPHR&","TPW":"d","WHR":"qu","PW":"b"},"vowels":{"":"","OU":"ou","AU":"au","AOI":"ei","AOIU^":"AOIU^","OU^":"uo","AU^":"ua","IU":"e","AOU^":"iu","IU^":"ee","AIU":"ea","AO^":"ao","O^":"oo","A^":"aa","U^":"ue","I^":"eu","AOU":"ui","OI^":"io","U":"u","AI^":"ia","O":"o","AO":"oa","A":"a","AIU^":"ae","I":"i","AOIU":"AOIU","OIU^":"oe","OIU":"eo","AOI^":"ie","OI":"oi","^":"y","AI":"ai"},"finals":{"-LPFT*":"lly","-LRF*":"fn","-PFS":"z","-RPFT":"ry","-RPKFST":"rcy","-LRT*":"n't","-PKF*":"dd","-PKST":"ct","-LRPKT":"mph","-LT*":"ttl","-LFT":"lft","-LK":"lk","-KFS*":"gh","-LKS*":"lsk","-LRPKFST*":"ngth","-LRPKF":"nd","-LPKFS*":"gl","-LKST":"lxt","-RPKST*":"rkt","-RT*":"rnt","-FT":"ft","-PF":"n","-LRPKFS*":"gn","-LPST":"LPST","-PKF":"d","-LFT*":"ltion","-KFS":"sh","-K":"k","-LRKST":"nxt","-PKT":"ph","-RPKFT*":"rcky","-RKS*":"rsk","-P*":"pp","-RPKT":"rph","-LPS":"lm","-LPFS*":"LPFS*","-R*":"rr","-RFT*":"stion","-LF*":"fl","-RP":"rp","-LRPKFT*":"ncky","-LPF":"ln","-LRPKFS":"ng","-RPKS":"rc","-LRPF":"nn","-RPT":"rpt","-LPFT":"ly","-LPST*":"LPST*","-LRPKT*":"'d","-RPS":"rm","-*":"*","-RPK":"rb","-LRKST*":"nj","-LPKT*":"'ll","-LRKS":"nx","-RF":"rf","-PF*":"w","-LRPKS":"nc","-LPKST*":"lkt","-LRPFT*":"nny","-F":"f","-LST":"lst","-PKFST":"cy","-LRFST*":"ndth","-RPKFS*":"dg","-RS*":"RS*","-RK*":"rck","-PKFS":"g","-RPKS*":"rsc","-":"","-LRT":"nt","-RFST":"rth","-KFST":"ty","-LRK":"nk","-LKS":"lx","-LRKFT*":"nction","-RKFT*":"stian","-LRPKST":"nct","-LPKT":"lph","-PKFT*":"cky","-LRK*":"nck","-LKT*":"LKT*","-LK*":"lck","-RPKFS":"rg","-RKF":"rch","-LPKS*":"lsc","-LPT*":"LPT*","-RKT*":"RKT*","-LKF":"lch","-PFT":"y","-RKFST*":"RKFST*","-KS":"x","-LRPT":"mpt","-LRFS*":"LRFS*","-LRKF*":"nsion","-RPFS":"rz","-LPKFT*":"lcky","-LRPKST*":"nkt","-LKFST*":"y'd","-LPKFST*":"LGT*","-LPK*":"bl","-S":"s","-RPKT*":"'re","-P":"p","-LRPK":"mb","-LRPFS*":"LRPFS*","-RKFS*":"RKFS*","-LKST*":"lj","-LPS*":"'m","-PFST":"PFST","-LRPKFT":"nky","-RK":"rk","-LRKFST*":"NSHT*","-LPFST":"LPFST","-LRFT*":"ntion","-LRST*":"LRST*","-RP*":"RP*","-RF*":"RF*","-LKFT*":"sion","-PST*":"PST*","-LRST":"nst","-PFS*":"zz","-LKFS":"lsh","-RPF":"rn","-PS*":"sp","-RKST":"rxt","-LRKFT":"ntch","-LPKF*":"ndl","-LF":"lf","-K*":"ck","-ST*":"ts","-RPFT*":"rry","-LRPFT":"ny","-PKT*":"hp","-LRKT*":"LRKT*","-LPKF":"ld","-RKF*":"RKF*","-RKFS":"rsh","-RKST*":"rj","-F*":"ff","-LKF*":"LKF*","-KT":"h","-PK*":"PK*","-FST":"th","-LRPF*":"wn","-LRPFS":"nz","-LRF":"nf","-RFS*":"RFS*","-L*":"ll","-RST":"rst","-PT":"pt","-LPKFST":"lcy","-LRPKS*":"nsc","-S*":"ss","-T":"t","-PS":"m","-PFST*":"PFST*","-KFT":"tch","-LS":"ls","-LR*":"rly","-LPKS":"lc","-LRKFST":"nty","-LRKS*":"nsk","-LRS*":"LRS*","-RPKF":"rd","-PKFT":"ky","-LPF*":"wl","-FST*":"fth","-LST*":"t's","-PKST*":"kt","-LRKT":"hn","-LRFT":"nft","-LRPT*":"LRPT*","-RKT":"hr","-LRFST":"nth","-RPF*":"rw","-LPKFS":"lg","-RPST":"RPST","-LKT":"hl","-LRFS":"nv","-RPFST*":"RPFST*","-RPKST":"rct","-RPKFT":"rky","-LRPFST*":"NPFST*","-PST":"PST","-RPFS*":"RPFS*","-LFST*":"lfth","-LP":"lp","-LRKF":"nch","-LRP":"mp","-RPFST":"RPFST","-LFST":"lth","-LRPKFST":"ncy","-LRPFST":"LRPFST","-T*":"tt","-RPT*":"RPT*","-LKFT":"ltch","-LT":"lt","-LRS":"ns","-RFS":"rv","-ST":"st","-LRP*":"mpl","-LRPST":"LRPST","-KFST*":"ght","-LP*":"pl","-R":"r","-RPKF*":"rld","-LRPST*":"LRPST*","-LPKFT":"lky","-RKS":"rx","-PKFST*":"sy","-RPST*":"RPST*","-FT*":"tion","-RKFT":"rtch","-PT*":"PT*","-LRPS":"mn","-LRPK*":"bbl","-LRKFS":"nsh","-RPKFST*":"RGT*","-LFS*":"'ve","-LKFS*":"LKFS*","-LPT":"lpt","-FS*":"vv","-RFST*":"rmth","-LRKFS*":"LRKFS*","-LPFST*":"LPFST*","-KST":"xt","-KT*":"hh","-FS":"v","-LFS":"lv","-RPK*":"RPK*","-RKFST":"rty","-LPKST":"lct","-PFT*":"ption","-PKS*":"sc","-RPS*":"RPS*","-KF":"ch","-KFT*":"ction","-KST*":"j","-LPK":"lb","-LS*":"'s","-LRPS*":"gm","-LRPKF*":"ddl","-PKS":"c","-RS":"rs","-PK":"b","-LPFS":"lz","-RFT":"rft","-LR":"rl","-KS*":"sk","-L":"l","-RT":"rt","-PKFS*":"gg","-RST*":"RST*","-KF*":"q","-LKFST":"lty"},"prefixes":{"#":"{-|}","+":"{^}"},"suffixes":{"-e":"{^}e","-s":"{^}s","-es":"{^}es"}}\ No newline at end of file

pinchord-javelin-dictionary-v30.2.yaml deleted (view file)

@@ -1,427 +0,0 @@-name: Pinchord Base v30.2-maximumOutlineLength: 1-starters:-- {stroke: '#+', definition: '{^}{-|}', mask: '#+'}-- {stroke: '', definition: '{}', mask: ''}-letters:-- {stroke: -LRPKFST*, data: ngth, order: 4, avoidMask: '-'}-- {stroke: -LRPKFST, data: ncy, order: 4, avoidMask: -*}-- {stroke: -LRPKFT*, data: ncky, order: 4, avoidMask: -S}-- {stroke: -LRKFST*, data: NSHT*, order: 4, avoidMask: -P}-- {stroke: -RPKFST*, data: RGT*, order: 4, avoidMask: -L}-- {stroke: -LRPFST*, data: NPFST*, order: 4, avoidMask: -K}-- {stroke: -LRPKFS*, data: gn, order: 4, avoidMask: -T}-- {stroke: -LPKFST*, data: LGT*, order: 4, avoidMask: -R}-- {stroke: -LRPKST*, data: nkt, order: 4, avoidMask: -F}-- {stroke: -RPKFST, data: rcy, order: 4, avoidMask: -L*}-- {stroke: -LPKFS*, data: gl, order: 4, avoidMask: -RT}-- {stroke: -LRPFT*, data: nny, order: 4, avoidMask: -KS}-- {stroke: -RPKFS*, data: dg, order: 4, avoidMask: -LT}-- {stroke: -LRPFS*, data: LRPFS*, order: 4, avoidMask: -KT}-- {stroke: -RPKST*, data: rkt, order: 4, avoidMask: -LF}-- {stroke: -LPKFST, data: lcy, order: 4, avoidMask: -R*}-- {stroke: -LRPKF*, data: ddl, order: 4, avoidMask: -ST}-- {stroke: -LRKFST, data: nty, order: 4, avoidMask: -P*}-- {stroke: -LKFST*, data: y'd, order: 4, avoidMask: -RP}-- {stroke: -LRPKT*, data: '''d', order: 4, avoidMask: -FS}-- {stroke: -RPFST*, data: RPFST*, order: 4, avoidMask: -LK}-- {stroke: -LRPKFT, data: nky, order: 4, avoidMask: -S*}-- {stroke: -LRKFT*, data: nction, order: 4, avoidMask: -PS}-- {stroke: -LRFST*, data: ndth, order: 4, avoidMask: -PK}-- {stroke: -LRPST*, data: LRPST*, order: 4, avoidMask: -KF}-- {stroke: TSPWHR&, data: GHR&, order: 2, avoidMask: ''}-- {stroke: -LRPFST, data: LRPFST, order: 4, avoidMask: -K*}-- {stroke: -LRPKFS, data: ng, order: 4, avoidMask: -T*}-- {stroke: -RKFST*, data: RKFST*, order: 4, avoidMask: -LP}-- {stroke: -LRKFS*, data: LRKFS*, order: 4, avoidMask: -PT}-- {stroke: -LRKST*, data: nj, order: 4, avoidMask: -PF}-- {stroke: -LPKST*, data: lkt, order: 4, avoidMask: -RF}-- {stroke: -LPFST*, data: LPFST*, order: 4, avoidMask: -RK}-- {stroke: -LRPKST, data: nct, order: 4, avoidMask: -F*}-- {stroke: -LPKFT*, data: lcky, order: 4, avoidMask: -RS}-- {stroke: -PKFST*, data: sy, order: 4, avoidMask: -LR}-- {stroke: -RPKFT*, data: rcky, order: 4, avoidMask: -LS}-- {stroke: -LRPKS*, data: nsc, order: 4, avoidMask: -FT}-- {stroke: -LPST*, data: LPST*, order: 4, avoidMask: -RKF}-- {stroke: TSPHR&, data: TSPHR&, order: 2, avoidMask: W}-- {stroke: -LRPK*, data: bbl, order: 4, avoidMask: -FST}-- {stroke: TPWHR&, data: TPWHR&, order: 2, avoidMask: S}-- {stroke: -LRKST, data: nxt, order: 4, avoidMask: -PF*}-- {stroke: -LRKT*, data: LRKT*, order: 4, avoidMask: -PFS}-- {stroke: -RFST*, data: rmth, order: 4, avoidMask: -LPK}-- {stroke: -RPKS*, data: rsc, order: 4, avoidMask: -LFT}-- {stroke: -LFST*, data: lfth, order: 4, avoidMask: -RPK}-- {stroke: -LPKF*, data: ndl, order: 4, avoidMask: -RST}-- {stroke: -LPFT*, data: lly, order: 4, avoidMask: -RKS}-- {stroke: -RPKF*, data: rld, order: 4, avoidMask: -LST}-- {stroke: -RPFST, data: RPFST, order: 4, avoidMask: -LK*}-- {stroke: -RKST*, data: rj, order: 4, avoidMask: -LPF}-- {stroke: -PFST*, data: PFST*, order: 4, avoidMask: -LRK}-- {stroke: -RPKFT, data: rky, order: 4, avoidMask: -LS*}-- {stroke: -LRPT*, data: LRPT*, order: 4, avoidMask: -KFS}-- {stroke: -LRKF*, data: nsion, order: 4, avoidMask: -PST}-- {stroke: -LRPS*, data: gm, order: 4, avoidMask: -KFT}-- {stroke: -LRPKS, data: nc, order: 4, avoidMask: -FT*}-- {stroke: -PKFS*, data: gg, order: 4, avoidMask: -LRT}-- {stroke: -LKFS*, data: LKFS*, order: 4, avoidMask: -RPT}-- {stroke: -LRPFS, data: nz, order: 4, avoidMask: -KT*}-- {stroke: -LPKST, data: lct, order: 4, avoidMask: -RF*}-- {stroke: -RPKFS, data: rg, order: 4, avoidMask: -LT*}-- {stroke: -RPFT*, data: rry, order: 4, avoidMask: -LKS}-- {stroke: -LRPFT, data: ny, order: 4, avoidMask: -KS*}-- {stroke: -LPFS*, data: LPFS*, order: 4, avoidMask: -RKT}-- {stroke: -PKFT*, data: cky, order: 4, avoidMask: -LRS}-- {stroke: -LPFST, data: LPFST, order: 4, avoidMask: -RK*}-- {stroke: TSWHR&, data: TSWHR&, order: 2, avoidMask: P}-- {stroke: -PKFST, data: cy, order: 4, avoidMask: -LR*}-- {stroke: TSPWR&, data: TSPWR&, order: 2, avoidMask: H}-- {stroke: -RKFST, data: rty, order: 4, avoidMask: -LP*}-- {stroke: -LRST*, data: LRST*, order: 4, avoidMask: -PKF}-- {stroke: TSPWH&, data: TSPWH&, order: 2, avoidMask: R}-- {stroke: -LPKT*, data: '''ll', order: 4, avoidMask: -RFS}-- {stroke: -KFST*, data: ght, order: 4, avoidMask: -LRP}-- {stroke: -LRKFS, data: nsh, order: 4, avoidMask: -PT*}-- {stroke: -LRPKT, data: mph, order: 4, avoidMask: -FS*}-- {stroke: -RPKT*, data: '''re', order: 4, avoidMask: -LFS}-- {stroke: -LPKS*, data: lsc, order: 4, avoidMask: -RFT}-- {stroke: -RPFS*, data: RPFS*, order: 4, avoidMask: -LKT}-- {stroke: -LRFST, data: nth, order: 4, avoidMask: -PK*}-- {stroke: -LPKFT, data: lky, order: 4, avoidMask: -RS*}-- {stroke: -LRKFT, data: ntch, order: 4, avoidMask: -PS*}-- {stroke: -RPKST, data: rct, order: 4, avoidMask: -LF*}-- {stroke: -LKFST, data: lty, order: 4, avoidMask: -RP*}-- {stroke: -LPKFS, data: lg, order: 4, avoidMask: -RT*}-- {stroke: -LRFS*, data: LRFS*, order: 4, avoidMask: -PKT}-- {stroke: -PKST*, data: kt, order: 4, avoidMask: -LRF}-- {stroke: -LRKS*, data: nsk, order: 4, avoidMask: -PFT}-- {stroke: SPWHR&, data: chl, order: 2, avoidMask: T}-- {stroke: -RKFT*, data: stian, order: 4, avoidMask: -LPS}-- {stroke: -RKFS*, data: RKFS*, order: 4, avoidMask: -LPT}

Show all 428 lines

pinchord-javelin-system-v30.2.yaml deleted (view file)

@@ -1,320 +0,0 @@-name: "Pinchord"-## Eventually I think I could make this work with the normal extended stenotype layout?-## Requiring only the # S thing and to make ^+ maybe?-keys:-  - name: "#"-    mask: 0x02-  - name: "+"-    mask: 0x04-  - name: "T"-    mask: 0x08-  - name: "S"-    mask: 0x10-  - name: "P"-    mask: 0x20-  - name: "W"-    mask: 0x40-  - name: "H"-    mask: 0x80-  - name: "R"-    mask: 0x100-  - name: "&"-    mask: 0x200--  - name: "A"-    mask: 0x400-  - name: "O"-    mask: 0x800-  - name: "-"-    mask: 0-    absentMask: 31744 ## match AOIU^-    # presentMask: 16744448 ## Every key after AOIU^-    presentMask: 8384512-  - name: "I"-    mask: 0x1000-  - name: "U"-    mask: 0x2000-  - name: "^"-    mask: 0x4000--  - name: "L"-    mask: 0x8000-  - name: "R"-    mask: 0x10000-  - name: "P"-    mask: 0x20000-  - name: "K"-    mask: 0x40000-  - name: "F"-    mask: 0x80000-  - name: "S"-    mask: 0x100000-  - name: "T"-    mask: 0x200000-  - name: "*"-    mask: 0x400000-  - name: "e"-    mask: 0x800000-  - name: "s"-    mask: 0x01--undo: "-LR"--layout:-  - mask: 1-    name: "#"-    center: { "x": 0.5, "y": 0.06 }-    path: [-      { "c": "m", "p": [0.00454, 0] },-      { "c": "l", "p": [0.99545, 0] },-      { "c": "l", "p": [0.99545, 0.12] },-      { "c": "l", "p": [0.00454, 0.12] },-      { "c": "c" }-    ]-  - mask: 0x800000-    name: "^"-    center: { "x": 0.04545, "y": 0.275 }-    path: [-      { "c": "m", "p": [0.00454, 0.15] },-      { "c": "rl", "p": [0.08181, 0] },-      { "c": "rl", "p": [0, 0.25] },-      { "c": "rl", "p": [-0.08181, 0] },-      { "c": "c" }-    ]-  - mask: 0x1000000-    name: "+"-    center: { "x": 0.04545, "y": 0.53 }-    path: [-      { "c": "m", "p": [0.00454, 0.41] },-      { "c": "rl", "p": [0.08181, 0] },-      { "c": "rl", "p": [0, 0.17] },-      { "c": "rq", "p": [0, 0.12, -0.08181, 0.12, -0.08181, 0] },-      { "c": "c" }-    ]-  - mask: 2-    name: "S"-    center: { "x": 0.13636, "y": 0.4 }-    path: [-      { "c": "m", "p": [0.09545, 0.15] },-      { "c": "rl", "p": [0.08181, 0] },

Show all 321 lines

pinchord-starboard-layout-v30.2.javelin-layout deleted (view file)

@@ -1,591 +0,0 @@-{-	"layers": [-		{-			"id": 0,-			"name": "Default",-			"keys": [-				[-					{-						"t": "p",-						"d": {-							"a": {-								"t": "p",-								"c": "stenoNum1"-							}-						}-					},-					{-						"t": "r",-						"d": {-							"a": {-								"t": "r",-								"c": "stenoNum1"-							}-						}-					}-				],-				[-					{-						"t": "p",-						"d": {-							"a": {-								"t": "p",-								"c": "stenoS2"-							}-						}-					},-					{-						"t": "r",-						"d": {-							"a": {-								"t": "r",-								"c": "stenoS2"-							}-						}-					}-				],-				[-					{-						"t": "p",-						"d": {-							"a": {-								"t": "p",-								"c": "stenoKL"-							}-						}-					},-					{-						"t": "r",-						"d": {-							"a": {-								"t": "r",-								"c": "stenoKL"-							}-						}-					}-				],-				[-					{-						"t": "p",-						"d": {-							"a": {-								"t": "p",-								"c": "stenoWL"-							}-						}-					},-					{-						"t": "r",-						"d": {-							"a": {-								"t": "r",-								"c": "stenoWL"-							}-						}-					}-				],-				[-					{-						"t": "p",-						"d": {-							"a": {-								"t": "p",-								"c": "stenoRL"-							}-						}-					},-					{-						"t": "r",-						"d": {

Show all 593 lines

plover_pinchord/dictionaries/pinchord-v30.2.py modified (view file)

@@ -1,14 +1,12 @@ ## Pinchord Plover python dictionary-## Copyright Grahp under https://grahp.dev/pinchord.git/LICENSE+## Copyright Grahp under Pinchord's License (GNU GPL v2) https://grahp.dev/pinchord.git/LICENSE import re  ## Longest valid outline, Pinchord only needs one stroke outlines :) LONGEST_KEY = 1 -## TODO move this into the dict, or just wait until chords.edn is the dictionary format? BANKS = ["prefixes", "initials", "vowels", "finals", "suffixes"] -## Specified by and generated from 'chords.edn' (https://grahp.dev/pinchord.git/chords.edn) ## Unlike Shrimple, Pinchord enumerates all bank chords! DICT = {"initials": {"WH&": "hw",                      "T": "t",@@ -344,8 +342,7 @@ def banks(stroke):     match = re.match(BANK_SPLITTING_REGEX, stroke)     if match:-        ## Due to javelin limitations I think making these banks extensible would be tricky, actually-        ## The regex definitely should be though.+        ## These should really be extensible!         prefix, initials, vowels, finals, suffixes = match.groups()         return {"prefixes": prefix, "initials": initials, "vowels": vowels, "finals": finals, "suffixes": suffixes}     else:

pythonify.clj deleted (view file)

@@ -1,34 +0,0 @@-(defn stringifyify [x]-  (str \" (name x) \"))--(defn pythonify [x]-  (cond-    (map? x) (str "{"-                  (str/join ",\n"-                            (map (fn [[k v]]-                                   (str (stringifyify k) ": " (pythonify v)))-                                 x))-                  "}")-    (string? x) (stringifyify x)-    :else (str x)))--    ; "prefixes": {-    ;     "+": "{^}",-    ;     "#": "{-|}",-    ;     "#+": "{^}{-|}",-    ;     "": "{}",-    ; },--(def plover-prefixes {"+" "{^}"-                      "#" "{-|}"-                      "#+" "{^}{-|}"-                      "" "{}"})--(defn slurpandshit []-  (update (assoc (select-keys (edn/read-string (slurp "chords.edn"))-                              [:initials :vowels :finals :suffixes])-                 :prefixes plover-prefixes)-          :initials dissoc ""))--(comment-  (spit "pythontest.py" (pythonify (slurpandshit))))