476548e

Pinchord · pinchord.git · Tickets · Changelog

Branches > serial-mods > 476548e > files / generate-mods.clj

Format generate-mods.clj

Grahp, 2026-10-26

Commit: 476548e14a2c81f8775901f43c4a471cb83b67a9
Parent: 93feb91

1 changed file:

generate-mods.clj modified (view file)

@@ -1,6 +1,6 @@ ; Map of symbols to names #_(def symbol-names-  {"." "period"})+    {"." "period"})  (def symbol-names   {"á" "aacute"@@ -143,8 +143,8 @@             "RPK" ")"             "KF" ">"             "PFS" "]"-            "^PFS" "\\}"-            }+            "^PFS" "\\}"}+    :shortcuts {"RK" "backspace" "^RK" "delete"                "LPF" "escape"}    :mod-shortcuts {"RF" {:no-mods "{^}\n"@@ -173,8 +173,8 @@ (defn apply-mods [x combos]   (str "{#"        (reduce (fn [acc mod]-            (str mod "(" acc ")"))-          x combos)+                 (str mod "(" acc ")"))+               x combos)        "}"))  (defn ->map [xs]@@ -187,50 +187,46 @@  (def symbols-dict   (->map-    (let [{:keys [starter chords shortcuts mod-shortcuts]} symbols]-      [(for [[mod symbol] chords-             [chord combo] vowel-chords]-         [-          (str starter chord mod) (str "{^}" (apply-mods (symbol-name symbol) combo))-          (str "+" starter chord mod) (str "{^}" (apply-mods (symbol-name symbol) combo))-          ])-       (for [[mod shortcut] shortcuts-             [chord combo] (assoc vowel-chords "-" [])]-         [-          (str starter chord mod) (apply-mods shortcut combo)-          (str "+" starter chord mod) (apply-mods shortcut combo)-          ])-       (for [[mod {:keys [no-mods with-mods]}] mod-shortcuts]-         [-          ; TODO need to add repitition for these?-          [(str starter "-" mod) no-mods-           (str "+" starter "-" mod) no-mods]-          (for [[chord combo] vowel-chords]-            [(str starter chord mod) (apply-mods with-mods combo)-             (str "+" starter chord mod) (apply-mods with-mods combo)])-          ])-       (for [[mod symbol] chords]-         [-          ; the 4 combos of T* with and without e-          (str starter "-" mod) (str "{}" symbol)-          (str "+" starter "-" mod) (str "{^}" symbol)-          (str starter "-" mod "e") (str "{}" symbol "=")-          (str "+" starter "-" mod "e") (str "{^}" symbol "=")+   (let [{:keys [starter chords shortcuts mod-shortcuts]} symbols]+     [(for [[mod symbol] chords+            [chord combo] vowel-chords]+        [(str starter chord mod) (str "{^}" (apply-mods (symbol-name symbol) combo))+         (str "+" starter chord mod) (str "{^}" (apply-mods (symbol-name symbol) combo))]) -          (str starter "-" mod "*") (str "{}" (rep 2 symbol))-          (str "+" starter "-" mod "*") (str "{^}" (rep 2 symbol))-          (str starter "-" mod "*e") (str "{}" (rep 2 symbol) "=")-          (str "+" starter "-" mod "*e") (str "{^}" (rep 2 symbol) "=")+      (for [[mod shortcut] shortcuts+            [chord combo] (assoc vowel-chords "-" [])]+        [(str starter chord mod) (apply-mods shortcut combo)+         (str "+" starter chord mod) (apply-mods shortcut combo)]) -          (str starter "-" mod "T") (str "{}" (rep 3 symbol))-          (str "+" starter "-" mod "T") (str "{^}" (rep 3 symbol))-          (str starter "-" mod "Te") (str "{}" (rep 3 symbol) "=")-          (str "+" starter "-" mod "Te") (str "{^}" (rep 3 symbol) "=")+      (for [[mod {:keys [no-mods with-mods]}] mod-shortcuts]+        [          ; TODO need to add repitition for these?+         [(str starter "-" mod) no-mods+          (str "+" starter "-" mod) no-mods]+         (for [[chord combo] vowel-chords]+           [(str starter chord mod) (apply-mods with-mods combo)+            (str "+" starter chord mod) (apply-mods with-mods combo)])]) -          (str starter "-" mod "T*") (str "{}" (rep 4 symbol))-          (str "+" starter "-" mod "T*") (str "{^}" (rep 4 symbol))-          (str starter "-" mod "T*e") (str "{}" (rep 4 symbol) "=")-          (str "+" starter "-" mod "T*e") (str "{^}" (rep 4 symbol) "=")])])))+      (for [[mod symbol] chords]+        [          ; the 4 combos of T* with and without e+         (str starter "-" mod) (str "{}" symbol)+         (str "+" starter "-" mod) (str "{^}" symbol)+         (str starter "-" mod "e") (str "{}" symbol "=")+         (str "+" starter "-" mod "e") (str "{^}" symbol "=")++         (str starter "-" mod "*") (str "{}" (rep 2 symbol))+         (str "+" starter "-" mod "*") (str "{^}" (rep 2 symbol))+         (str starter "-" mod "*e") (str "{}" (rep 2 symbol) "=")+         (str "+" starter "-" mod "*e") (str "{^}" (rep 2 symbol) "=")++         (str starter "-" mod "T") (str "{}" (rep 3 symbol))+         (str "+" starter "-" mod "T") (str "{^}" (rep 3 symbol))+         (str starter "-" mod "Te") (str "{}" (rep 3 symbol) "=")+         (str "+" starter "-" mod "Te") (str "{^}" (rep 3 symbol) "=")++         (str starter "-" mod "T*") (str "{}" (rep 4 symbol))+         (str "+" starter "-" mod "T*") (str "{^}" (rep 4 symbol))+         (str starter "-" mod "T*e") (str "{}" (rep 4 symbol) "=")+         (str "+" starter "-" mod "T*e") (str "{^}" (rep 4 symbol) "=")])])))  (def numbers   {:starter "TPWHR"@@ -277,38 +273,34 @@             "RST*" "F10"             "RFT*" "F10"             "RS"   "F11"-            "RS*"  "F12"-            }})+            "RS*"  "F12"}})  (def numbers-dict   (->map-    (let [{:keys [starter left right F-starter F-keys]} numbers]-      [(for [[number-chord number] (merge left right)-             [mod-chord combo] vowel-chords]-         [-          (str starter mod-chord number-chord) (str "{^}" (apply-mods number combo))-          (str "+" starter mod-chord number-chord) (str "{^}" (apply-mods number combo))-          ])-       (for [[f-chord f-key] F-keys-             [mod-chord combo] (assoc vowel-chords "-" [])]-         [-          (str F-starter mod-chord f-chord) (apply-mods f-key combo)-          (str "+" F-starter mod-chord f-chord) (apply-mods f-key combo)-          ])-       (for [[left-chord left-number] left-             [right-chord right-number] right]-         [(str starter left-chord right-chord) (str "{}" left-number right-number)-          (str "+" starter left-chord right-chord) (str "{^}" left-number right-number)+   (let [{:keys [starter left right F-starter F-keys]} numbers]+     [(for [[number-chord number] (merge left right)+            [mod-chord combo] vowel-chords]+        [(str starter mod-chord number-chord) (str "{^}" (apply-mods number combo))+         (str "+" starter mod-chord number-chord) (str "{^}" (apply-mods number combo))]) -          (str starter "^" left-chord right-chord) (str "{}" left-number right-number "0")-          (str "+" starter "^" left-chord right-chord) (str "{^}" left-number right-number "0")+      (for [[f-chord f-key] F-keys+            [mod-chord combo] (assoc vowel-chords "-" [])]+        [(str F-starter mod-chord f-chord) (apply-mods f-key combo)+         (str "+" F-starter mod-chord f-chord) (apply-mods f-key combo)]) -          (str starter left-chord right-chord "e") (str "{}" left-number right-number "00")-          (str "+" starter left-chord right-chord "e") (str "{^}" left-number right-number "00")+      (for [[left-chord left-number] left+            [right-chord right-number] right]+        [(str starter left-chord right-chord) (str "{}" left-number right-number)+         (str "+" starter left-chord right-chord) (str "{^}" left-number right-number) -          (str starter "^" left-chord right-chord "e") (str "{}" left-number right-number "000")-          (str "+" starter "^" left-chord right-chord "e") (str "{^}" left-number right-number "000")])])))+         (str starter "^" left-chord right-chord) (str "{}" left-number right-number "0")+         (str "+" starter "^" left-chord right-chord) (str "{^}" left-number right-number "0") +         (str starter left-chord right-chord "e") (str "{}" left-number right-number "00")+         (str "+" starter left-chord right-chord "e") (str "{^}" left-number right-number "00")++         (str starter "^" left-chord right-chord "e") (str "{}" left-number right-number "000")+         (str "+" starter "^" left-chord right-chord "e") (str "{^}" left-number right-number "000")])])))  (def movement-starter "PWH") (def movement-chords@@ -323,12 +315,10 @@  (def movement-dict   (->map-    [(for [[mod-chord combo] (assoc vowel-chords "-" [])-           [chord movement] movement-chords]-       [-        (str movement-starter mod-chord chord) (apply-mods movement combo)-        (str "+" movement-starter mod-chord chord) (apply-mods movement combo)-        ])]))+   [(for [[mod-chord combo] (assoc vowel-chords "-" [])+          [chord movement] movement-chords]+      [(str movement-starter mod-chord chord) (apply-mods movement combo)+       (str "+" movement-starter mod-chord chord) (apply-mods movement combo)])]))  (def fingerspelling-starter "TWR") (def letters@@ -364,18 +354,15 @@  (def fingerspelling-dict   (->map-    [(for [[mod-chord combo] vowel-chords-           [chord letter] letters]-       [-        (str fingerspelling-starter mod-chord chord) (apply-mods letter combo)-        (str "+" fingerspelling-starter mod-chord chord) (apply-mods letter combo)-        ])-     (for [[chord letter] letters]-       [-        (str fingerspelling-starter "-" chord) (str "{}" letter)-        (str "#" fingerspelling-starter "-" chord) (str "{}{-|}" letter)-        (str "+" fingerspelling-starter "-" chord) (str "{^}" letter)-        (str "#+" fingerspelling-starter "-" chord) (str "{^}{-|}" letter)-        ])]))+   [(for [[mod-chord combo] vowel-chords+          [chord letter] letters]+      [(str fingerspelling-starter mod-chord chord) (apply-mods letter combo)+       (str "+" fingerspelling-starter mod-chord chord) (apply-mods letter combo)])++    (for [[chord letter] letters]+      [(str fingerspelling-starter "-" chord) (str "{}" letter)+       (str "#" fingerspelling-starter "-" chord) (str "{}{-|}" letter)+       (str "+" fingerspelling-starter "-" chord) (str "{^}" letter)+       (str "#+" fingerspelling-starter "-" chord) (str "{^}{-|}" letter)])]))  (spit "pinchord-mods.json" (json/generate-string (merge symbols-dict fingerspelling-dict numbers-dict movement-dict)))