pinchord-12 Serial Mods
Pinchord · pinchord.git · Tickets · Changelog
A Pinchord Ticket (Open):
Ticket · History
- August 8, 2026 Add all the things (title: Serial Mods)
Changes
@@ -0,0 +1,33 @@+---+title: Serial Mods+permalink: pinchord/serial-mods/+ticket: open+---++*A [[pinchord-tickets|Pinchord Ticket]] (Open):*++After finishing [[pinchord-mods]], [[Pinchord|Pinchord]] seems ready for full-time use, but there are still a few things you just can't do.++There is no way to hold down keys for a specific amount of time, which I don't think is used very often, except for holding mods, for things like a control click and drag or what have you. There's just no way to do that right now.++This is a necessary workflow for many people, and the only option right now is to disable Pinchord and use your keyboard normally, or switch layers in Javelin. I think this kind of thing is okay for very clearly separate purposes, like gaming, but for what is just regular computer usage, I don't think it's acceptable.++## Potential Solutions++If you're using a keyboard that has additional keys, like a 3rd row, you can just assign some of these keys to serial mods, but Pinchord has never required extra keys, so I don't think it's a very good answer.++Pinchord already has mod chords, so you could maybe do some logic to actually press and release mod keys in the middle of a stroke, which would keep behavior the same, but instead of only sending the mod key press and release as they're needed to emulate the shortcut, they could be sent when you press and release the mod chords. I'm not sure whether this would really work, even if you can properly detect when these keys are pressed down (see Implementation below), but it seems to make sense in theory at least.++## Implementation++### Plover++With the standard Gemini PR protocol, strokes are sent as they are completed, which means there's no way to detect keypresses and respond to them.++With the keyboard protocol, this should be possible probably with an extension to the plugin.++The Plover HID protocol, which keyboards may start adopting(?), I believe all key events are sent to Plover, which should also make this possible.++### Javelin++- Could be done with a Javelin script capturing keypresses... - October 20, 2026 Change formatting
Changes
@@ -6,7 +6,7 @@ *A [[pinchord-tickets|Pinchord Ticket]] (Open):* -After finishing [[pinchord-mods]], [[Pinchord|Pinchord]] seems ready for full-time use, but there are still a few things you just can't do.+After finishing [[pinchord-mods|mods]], [[Pinchord]] seems ready for full-time use, but there are still a few things you just can't do. There is no way to hold down keys for a specific amount of time, which I don't think is used very often, except for holding mods, for things like a control click and drag or what have you. There's just no way to do that right now. - October 21, 2026 Update the rest of the ticket pages to use numbers (renamed from pinchord-serial-mods.md, status: none → open, category: none → unscreened, type: none → addition)
Changes
@@ -1,12 +1,13 @@ --- title: Serial Mods-permalink: pinchord/serial-mods/-ticket: open+status: open+category: unscreened+type: addition+redirect_from:+ - pinchord/serial-mods/ --- -*A [[pinchord-tickets|Pinchord Ticket]] (Open):*--After finishing [[pinchord-mods|mods]], [[Pinchord]] seems ready for full-time use, but there are still a few things you just can't do.+After finishing [[pinchord@4|mods]], [[Pinchord]] seems ready for full-time use, but there are still a few things you just can't do. There is no way to hold down keys for a specific amount of time, which I don't think is used very often, except for holding mods, for things like a control click and drag or what have you. There's just no way to do that right now. - October 23, 2026 Remove trailing slashes
Changes
@@ -4,7 +4,7 @@ category: unscreened type: addition redirect_from:- - pinchord/serial-mods/+ - pinchord/serial-mods --- After finishing [[pinchord@4|mods]], [[Pinchord]] seems ready for full-time use, but there are still a few things you just can't do. - October 24, 2026 Removed screened/unscreened pinchord tickets, just make them all open (category: unscreened → none)
Changes
@@ -1,7 +1,6 @@ --- title: Serial Mods status: open-category: unscreened type: addition redirect_from: - pinchord/serial-mods - October 24, 2026 Rename tickets to <project>-<number> <title> (renamed from pinchord@12.md, title: Serial Mods → none)
Changes
@@ -1,12 +1,11 @@ ----title: Serial Mods status: open type: addition redirect_from: - pinchord/serial-mods --- -After finishing [[pinchord@4|mods]], [[Pinchord]] seems ready for full-time use, but there are still a few things you just can't do.+After finishing [[pinchord-4 Mods]], [[Pinchord]] seems ready for full-time use, but there are still a few things you just can't do. There is no way to hold down keys for a specific amount of time, which I don't think is used very often, except for holding mods, for things like a control click and drag or what have you. There's just no way to do that right now. - October 24, 2026 Replace ticket status, category and resolution with ticket (status: open → none)
Changes
@@ -1,5 +1,5 @@ ----status: open+ticket: open type: addition redirect_from: - pinchord/serial-mods - October 26, 2026 Edited
Changes
@@ -5,28 +5,18 @@ - pinchord/serial-mods --- -After finishing [[pinchord-4 Mods]], [[Pinchord]] seems ready for full-time use, but there are still a few things you just can't do.+## Symptom -There is no way to hold down keys for a specific amount of time, which I don't think is used very often, except for holding mods, for things like a control click and drag or what have you. There's just no way to do that right now.+Pinchord has had [[pinchord-4 Mods]], but it has no way hold down mods, for things like holding control and dragging. This is quite an essential thing for a lot of applications, and a lot of people. -This is a necessary workflow for many people, and the only option right now is to disable Pinchord and use your keyboard normally, or switch layers in Javelin. I think this kind of thing is okay for very clearly separate purposes, like gaming, but for what is just regular computer usage, I don't think it's acceptable.+The only options right now are to either disable Pinchord and use another layer in QMK/Javelin, to use an extra row of keys for mods, if your board has one, or to keep another keyboard around and use its mod keys. None of these are particularly appealing options. -## Potential Solutions+## Potential Solution -If you're using a keyboard that has additional keys, like a 3rd row, you can just assign some of these keys to serial mods, but Pinchord has never required extra keys, so I don't think it's a very good answer.+The Plover HID protocol sends _all_ keys as they're pressed, unlike say the Gemimi PR protocol, which send the entire stroke after all keys have been released. -Pinchord already has mod chords, so you could maybe do some logic to actually press and release mod keys in the middle of a stroke, which would keep behavior the same, but instead of only sending the mod key press and release as they're needed to emulate the shortcut, they could be sent when you press and release the mod chords. I'm not sure whether this would really work, even if you can properly detect when these keys are pressed down (see Implementation below), but it seems to make sense in theory at least.+Similarly, the keyboard protocol also gets key presses and releases, and a custom version of it (and the Plover HID protocol) could check whether a certain stroke is being held down at the current moment. This would allow you to check whether the mod stroke is held down, and start pressing the mod. -## Implementation+## Questions -### Plover--With the standard Gemini PR protocol, strokes are sent as they are completed, which means there's no way to detect keypresses and respond to them.--With the keyboard protocol, this should be possible probably with an extension to the plugin.--The Plover HID protocol, which keyboards may start adopting(?), I believe all key events are sent to Plover, which should also make this possible.--### Javelin--- Could be done with a Javelin script capturing keypresses...+- If you start holding the control stroke, then release it the `A` key, then press the `O` key to start holding shift, and then press `T` and release the stroke, what should get sent out? Control+shift+t, or just shift+t? - October 26, 2026 MODS
Changes
@@ -20,3 +20,11 @@ ## Questions - If you start holding the control stroke, then release it the `A` key, then press the `O` key to start holding shift, and then press `T` and release the stroke, what should get sent out? Control+shift+t, or just shift+t?+- How do you actually send these key ups and downs, I don't think plover has a way to do that.++## Notes++- You can hack the `parse_key_combo` function to skip sending key releases and only send key presses.+- If releasing one of `AOIU` releases that modifier, then sending a stroke like `TWRAT` for control+t might have you release `A` before `T`, causing you to press and release control, and then press and release control t, when you only meant to do the latter. For this reason, I don't think releasing keys can work. You should also release `TWR` and do the whole pressing and releasing as a unit. This also reflects the behavior of not having first up chord send on, which most people don't (it's off by default). I think it would also work better with first up chord send on, where releasing keys would cause the entire stroke to be released?++See also [[pinchord-35 One-handed Mods]]