jtroo
jtroo
One might wonder: why do we need yet another way to do chording in Kanata? Well, I think doing "chording" in sequences has some significant differences. It: - operates on...
One thing that is definitely missing is the shift handling, but should be feasible to do. --- I tried experimenting to see what auto-spacing hackery is possible in the current...
If one wanted to experiment with adding a fully independent system (i.e. separate from input chords v1/v2 or sequences), the [output_logic file](https://github.com/jtroo/kanata/blob/main/src/kanata/output_logic.rs) might be of interest. For now I'll be...
So here's the result of more experimentation. I combined both `defchordsv2-experimental` and the new overlap-keys sequences functionality. configuration using sequences and chordsv2 ``` (defsrc f1) (deflayer base lrld) (defcfg process-unmapped-keys...
> one-shot timeout action Maybe this works: [simulator](https://jtroo.github.io?data=BQEwpgZgzgTgxgAgIYEoBQpIBskE8wwIBGSUYaCCwAtgK5YAuAlldUnDAPYICMADAIqVhI0cE4A7ALQAHGGChQEDJDKkA3ANZhcCcEhBsJUAO5MGcABYp0okeIlgpUS5wa8BfBFjgMsNtHRMCHUmGAZaJCxtXCghfUMkYzMLSypTcyshSmBgJgkZWgYpSyYoBk4YXXko5AQAJhsEAC9iGs0hdBQAH16+-oHukAAuJARaUeVh+s80EbGJsZGiceGVhmnPIA). Here `z` takes the placeholder of `cmd` because `cmd` isn't allowed in the simulator. > allow a pre one-shot action I think...
> Describe alternatives you've considered. > > A workaround seems to be using virtual keys like so: (multi (on-release tap-vkey some-one-shot-vkey) (on-idle 1 tap-vkey some-cmd-vkey)) Out of curiousity does this...
> Maybe this works: [simulator](https://jtroo.github.io/?data=BQEwpgZgzgTgxgAgIYEoBQpIBskE8wwIBGSUYaCCwAtgK5YAuAlldUnDAPYICMADAIqVhI0cE4A7ALQAHGGChQEDJDKkA3ANZhcCcEhBsJUAO5MGcABYp0okeIlgpUS5wa8BfBFjgMsNtHRMCHUmGAZaJCxtXCghfUMkYzMLSypTcyshSmBgJgkZWgYpSyYoBk4YXXko5AQAJhsEAC9iGs0hdBQAH16+-oHukAAuJARaUeVh+s80EbGJsZGiceGVhmnPIA) A weakness in this solution is that I don't think it works quite right if you double-tap the one-shot key. But maybe some extra logic...
Debateable if it's a "good" solution, but with some hackery with `tap-hold-press-timeout`, it can work: [sample](https://jtroo.github.io?data=BQEwpgZgzgTgxgAgIYEoBQpIBskE8wwIBGSUYaCCwUA7gJYAucAFlSlQLZJwwD2CARgAMIipXETJwXgDsAtAAcYYKFAQMkCuQDcA1mFwJwSEFxm1GLFOkm3JEJFiwNmfAK4BzZmLtsqsxWVVBCUVKB19QwYFdgcnF3cvHztgdmkZMDkoZl4GQREhBCw4BixYx2dXXk9mdHRMCG06GAY3R0ioMWUsMFIwTjdnOipu3rI5SIRcG19fYFG+iYMikrKZ6KoNLRysEECwuQY6DjBqvMKATguhZPEADTuEW8pgDkGjldKp5-FX7j58v55KFglsIssFmRrDNJA8ZsZTEhzPQmKxqCiWMlgMBIodjnQZB5BAgPHkrgBWawIABeCDilUS3gkqSB+2CkMyemW0XYRGUSF0YjqAB9RWLxRLhSAAFxIBBuWXqaUAJgKaBlcoVcoY0vJhRlRHl0sNOtVIiAA) I used switch as a weird-looking multi using `fallthrough` because it behaves slightly differently;...
Implementation notes in case someone wants to try their hand at this: SendInput: `MOUSEEVENTF_ABSOLUTE` in https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-mouseinput Interception: https://docs.rs/interception/latest/interception/struct.MouseFlags.html#associatedconstant.MOVE_ABSOLUTE Linux: https://docs.rs/evdev/0.12.1/evdev/struct.AbsoluteAxisType.html https://docs.rs/evdev/0.12.1/evdev/uinput/struct.VirtualDeviceBuilder.html#method.with_absolute_axis
Hmm looks like on Linux at least, the absolute axis is not usable for moving the mouse cursor. https://stackoverflow.com/questions/5190921/simulating-absolute-mouse-movements-in-linux-using-uinput On Linux there's already a pretty good keyboard-mouse solution in warpd...