You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Kuba314 opened this issue
Mar 2, 2024
· 3 comments
Assignees
Labels
blockedBlocked on issues outside of the reasonable control of the kanata projectbugSomething isn't workingllhookPertains to the standard version of Kanata on WindowswindowsIssue pertains to Windows only
I'm trying to have lctl on my physical lsft and have lsft on my physical caps. This works well, but I noticed that virtual lctl is not held after I Press lctl, Press lsft, Release lsft. This stops me from entering for example C-S-a followed by C-d without releasing the lctl key between the two shortcuts.
From the logs it seems like a kanata bug; kanata should know it's holding lctl, but it sends Release lctl before sending the user-entered shortcut letter (see the log).
This behaviour happens on lsft and caps physical keys (not on a and s) and the shortcut key has to be in defsrc otherwise the bug isn't there and everything works fine.
Relevant kanata config
(defsrclsftcapsdf) ;; doesn't work for `C-d` and `C-f` shortcuts;; (defsrc a s d f) ;; seems to work for every `C-` shortcut
(deflayertestlctllsftd_)
To Reproduce
Press physical lsft (mapped lctl)
Press physical caps (mapped lsft)
Release physical caps
Press any letter
Observe that the key is sent without the ctrl modifier
Expected behavior
lctl remains pressed.
Kanata version
1.6.0-prerelease-1
Debug logs
Output of physical Press lsft, Press caps, Release caps, Press f with the attached config. Note the key release LCtrl and key press F lines and their timing.
Soo.... I don't know how exactly lsft-arrowkey workaround works, but removing LShift at its typical coordinate removes the lctl that I'm holding (probably because it's at lsft's typical coordinate.
Not sure why the lsft-arrowkey workaround has to guess like this and disregard any mapping that there can be to lsft (coord (0, 160)) but it's probably some ancient windows "feature". I do hope there's a fix for this...
In summary, without the workaround, in some cases the lsft button state gets stuck because of Windows weirdness.
Perhaps there needs to be a way to turn the workaround off - I originally decided not to add one because I figured most people would keep their shift keys mapped as shift. When the workaround is off though, you will have the risk that your physical caps key, pressed alongside certain other buttons, will cause the physical lsft key state to be stuck as pressed. There is a tradeoff either way. The other alternative is Interception (which comes with its own issues).
jtroo
added
the
blocked
Blocked on issues outside of the reasonable control of the kanata project
label
Mar 3, 2024
jtroo
changed the title
Bug: caps causes release of modifier key
Bug: other keys mapped to lsft causes undesired release of lsft key
Mar 3, 2024
blockedBlocked on issues outside of the reasonable control of the kanata projectbugSomething isn't workingllhookPertains to the standard version of Kanata on WindowswindowsIssue pertains to Windows only
Requirements
Describe the bug
I'm trying to have
lctl
on my physicallsft
and havelsft
on my physicalcaps
. This works well, but I noticed that virtuallctl
is not held after IPress lctl, Press lsft, Release lsft
. This stops me from entering for exampleC-S-a
followed byC-d
without releasing thelctl
key between the two shortcuts.From the logs it seems like a kanata bug; kanata should know it's holding
lctl
, but it sendsRelease lctl
before sending the user-entered shortcut letter (see the log).This behaviour happens on
lsft
andcaps
physical keys (not ona
ands
) and the shortcut key has to be indefsrc
otherwise the bug isn't there and everything works fine.Relevant kanata config
To Reproduce
lsft
(mappedlctl
)caps
(mappedlsft
)caps
ctrl
modifierExpected behavior
lctl
remains pressed.Kanata version
1.6.0-prerelease-1
Debug logs
Output of physical
Press lsft, Press caps, Release caps, Press f
with the attached config. Note thekey release LCtrl
andkey press F
lines and their timing.Operating system
Windows 11
Additional context
No response
The text was updated successfully, but these errors were encountered: