Replies: 6 comments 7 replies
-
Thank you very much for the suggestion and detailed explanation. This approach is indeed quite different (and at first read, I thought incompatible) but it could be done, and there are significant parts of this that would benefit even the very different approach that ZipChord has. ZioChord currently has a simple correspondence of one chord expands to one expression. (And it is possible to string the chords together to form longer words.) A big step towards your approach is an ability to have a correspondence of a sequence of chords to an expanded text, and (to get even closer) a sequence of a mix of chords and regularly typed characters to an expanded text. The correspondences could be defined manually in a chord dictionary as "sequence to expanded" or theoretically (to get to probably a full implementation of your idea), those correspondences could be inferred from a dictionary of all words in a given language. I would like to implement at least the first part of this. Before I say more on that, here are two complications (and one consideration) why ZipChord uses a different approach -- not to say this is "right" or that you are not aware of these.
So chorded systems use tricks to reduce the amount of keys pressed simultaneously while encoding enough information (like having the same "sounds" represented on left and right part of the keyboard). But that comes with a steep learning curve. So the story behind ZipChord was to leverage Zipf's law and get to being able to enter half of our typing with only 50-80 simple chords. I understand your suggestion could address things like "aloof" by breaking it to "A" and "LOF" chord and while the latter could also be "fool", there's no "afool" in English. But for most of the typing, like "part" and "trap" it's either between typing them manually or memorizing custom chords (whether those would be short like So that was a long detour but wanted to bring up that I am not sure if implementing the whole thing makes sense for ZipChord because most frequent words are short, and they conflict a lot. But that's also why I like your idea a lot, because while ZipChord allows you to do:
And type It does not let you do:
These are not necessarily how I would define actual chords but they illustrate your point. It would change "their" to "therefore" if the TR chord is followed by FR. (And ideally allow combinations with single letters too as the third line illustrates.) This is doable and maybe would even be interesting for other people. As I wrote, to get from this to your full request is not trivial, but it technically would be about inferring the corresponding combinations from a dictionary. But then there could appear more conflicts on this next level. But still, it is technically possible, and if you wanted ZipChord to use for that, this is how I think it could get there. |
Beta Was this translation helpful? Give feedback.
-
If using a scriptable editor such as Vim or Emacs, a chord might call a script, e.g., to translate a sequence of previous chord outputs into a different output. This would go a long way towards steno emulation if that is a goal. |
Beta Was this translation helpful? Give feedback.
-
A quick update on this feature request: This week, I spent time outside of my day job on fixing bugs in v.2.0 RC1 and updating the documentation. Next, there are two things I need to do before implementing this: add testing automation and refactor some of the code to a more flexible design. As much as I’m tempted to bolt this feature on without these steps, I know they will save time (and pain) in development and testing. Thanks for your patience on this! |
Beta Was this translation helpful? Give feedback.
-
Wishing you all the best in this! |
Beta Was this translation helpful? Give feedback.
-
Hi! I'm all for advancement but for me Zipchord is almost perfect the way it is, I don't want it to type all my words, just the most used ones (chords) and the longest/most annoying ones (autocomplete) All that with almost no learning curve and minimal setup. I also don't want to learn rules and/or a new typing system, I have enough aggravation learning Colemak, If I ever want or need to type really fast there's Plover, awesome software but you need at least six months to learn it and a very expensive keyboard. Would I stop using Zipchord if it got too complicated? No, I think the app can get as advanced as possible while still being easy to use for non-techies like me. Obsidian does that, they have plug-ins that can cook a turkey (Dataview 🤨)for the chosen ones, we mere mortals just type plain notes, everybody's happy. Just my noob opinion, keep up the good work! |
Beta Was this translation helpful? Give feedback.
-
The initial working implementation is now available in version 2.2 Alpha: #155 |
Beta Was this translation helpful? Give feedback.
-
PROBLEM & PROPOSED THEORY/SOLUTION
If I want to have simple chords, like
ear
and I have another chordaer
(a root of the English language), their chords collide with one another . This is because we are using one database for all chords. There is no way around this (except having another dictionary), but we can mitigate the effect when typing whole words (made up of chords + character entry) by creating a context mode/feature when chording.GENERAL EXAMPLE
Take for example the word
aerospace
. A person may chord + character entry something like:aer + o + space
. However, one can't do that if they have the chordear
in their dictionary.LOGIC
aer
) and it has no anagram in the chord database, then we output it immediately.ear
) and then start observing the user's input to make a change to that chord based on context.CONCRETE EXAMPLE
To summarize, we need 2 text documents: 1) a dictionary of chords 2) a dictionary of words that we would chord with (e.g., the english language dictionary). Here are the chords:
And our English dictionary:
Observe this case (written in a poorly written tree form to show the (terminal) sequence (diagram)) where a user mashes the
e
a
andr
keys together (in any order) and we have a conflict whose state is resolved:To reiterate, as a user types we would get this:
aer
->ear
earo
->aero
aero + space
-> aerospaceCONCLUSION
I know the chance this would get implemented is small, but I wanted to post it here as I have also posted it another place and hopefully it does get implemented somewhere. The biggest advantage for me is that I could chord words out of their roots or prefixes more easily...we don't have to do non-mnemonic chords for silly things like
ear
in order to avoid other chordsare
if we are typing them as a part of a larger word (e.g., earwax). I hope this sparks an interest in someone or at least entertains them 😂. Thank you for offering this great project!Beta Was this translation helpful? Give feedback.
All reactions