Feature request: Better handle e.g. `S-(a a)` in sequences
Author: mi2ebiCreated Sep 9, 2026Updated Sep 9, 2026
Labelsenhancement
Is your feature request related to a problem? Please describe.
One of the sequences I have is
(defvirtualkeys seq:lpar-lpar (unicode u+2e28))
(defseq seq:lpar-lpar (S-9 S-9 nop0) )(with ralt as sldr when tapped and rctl as nop0 when tapped). So now I can press
shift↓ 9 shift↑ shift↓ 9 shift↑
to get u+2e28. But I'd also like to be able to do
shift↓ 9 9 shift↑
If I try this, I get
13:47:00.2537 [ERROR] × Error in configuration
╭─[seqs.kbd:195:1]
195 │
196 │ seq:lpar-lpar (S-(9 9) nop0)
· ──┬──
· ╰── Error here
197 │
╰────
help: defseq expects pairs of parameters: <virtual_key_name> <key_list>
Found invalid key/chord in key_list
For more info, see the configuration guide:
https://github.com/jtroo/kanata/blob/main/docs/config.adoc
13:47:00.2538 [ERROR] failed to parse fileDescribe the solution you'd like.
For chords it makes perfect sense that S-(9 9) is banned, you can't press 9 and 9 at the same time, they're the same key. For sequences, S-(thing1 thing2) instead means tapping thing1 and then thing2 all while shift is being held. I'd like this to also work when thing1 and thing2 are the same key.
Describe alternatives you've considered.
Accepting the inconsistency.
Additional context
No response
Source: jtroo/kanata