Attachment: Chords Format Implementation
Pinchord · pinchord.git · Tickets · Changelog
An attachment for pinchord-14 Chords Format:
- What I do should be the same as what everybody else does.
- I need to maintain 2 version of pinchord, the main one and the one with my personal changes that aren't right for everybody, most people will only need 1 of course
- There's nothing wrong with maintaining a repo and generating artifacts whenever you change things.
- So, just have a
generate.cljscript to build the plover plugin and javelin files and/or the firmware images! - Everything is built off
chords.ednor whatever, you can add javelin files to that as well and such probably.
Is this reasonable for casual people who just want to edit the layout?
This isn't really reasonable for casual people who just want to edit the layout, but there isn't really a better way. For people just using Plover, you can edit the files directly, for Javelin, you have to rebuild anyway.
- Perhaps
chords.edncould be used in the Plover plugin so you can edit it directly and then move those changes.
Current Implementation Idea
- A
chords.ednfile generates the entire plover plugin, and the javelin files + pre-built firmware images. - That
chords.ednfile is the main dictionary of the Plover plugin, and it can be edited directly to make trivial chord changes without needing to rebuild anything. - As for larger changes, such as changing the layout, adding a new javelin
Chords.edn:
{:name "System Name"
:short-description "Short Description for the Plover plugin"
:long-description "Full System Description for the Plover plugin"
:plugin-name "plover-pinchord"
:package-name "plover_pinchord"
:version "system version (vx.y or whatever)"
:bank-order [:prefixes :initials :vowels :finals :suffixes]
; Which bank has implicit hypen keys and which should have -s?
:split-bank :vowels
:bank-keys {:prefixes "#+"
:initials "TSPWHR&"
:vowels "AOIU^"
:finals "LRPKFST*"
:suffixes "es"}
; So bank keys should actually look like
:bank-keys {:prefixes ["#-" "+-"] ...}
:implicit-hypen-keys ["A" "O" "I" "U" "^"]
; Document the 6 character limit
:banks {:initials {...}
; :starters [{:stroke "#+" :definition "{^}{-|}" :mask "#+"}
; Kinda need that
:prefixes {"#+" {:javelin-special-prefix "{^}{-|}"}}
; Can use - {^} for suppressing naked finals
:vowels {"-" "{^}" ...}}}
:pinchord.javelin/prefixes {"#+" "{^}{-|}"}
:undo-stroke "-LR"}
The generating code can then be customizable, so you can fork it if you want and add your own keys.
-
Warn on unused key.
- If you're forking and making a new key for a single engine, what's the same problem currently happening of engine fragmentation from just happening again?
- So I guess this question is "Should
chords.ednbe a monolithic holy source of chords?" - I don't think this is a problem, because the engine could always be implemented later without having to completely rethink how everything is done. For some derivations, parity may not be important, and that's fine.