-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix Auto-Type modifiers on Windows #7629
Conversation
Also add documentation on modifiers. * Fix #7626
* Fix #7743 - Include # in placeholder list * This change fixes typing single character placeholders (escaped placeholders) on Windows. Previously we were sending these as raw key presses which didn't properly press Shift or other modifiers. Now they are sent as unicode characters unless in virtual mode (the expected behavior).
e780555
to
91ebc7b
Compare
Codecov Report
@@ Coverage Diff @@
## develop #7629 +/- ##
===========================================
- Coverage 64.31% 64.29% -0.02%
===========================================
Files 339 339
Lines 43450 43454 +4
===========================================
- Hits 27943 27937 -6
- Misses 15507 15517 +10
Continue to review full report at Codecov.
|
@droidmonkey Why are the existing ASCII sequences used for special charaters? This change in backwards incompatible with all existing auto-type sequences that might have +, ^, % and #, and indeed this breaks a significant number of my auto-type sequences. |
Take that up with keepass, they chose this syntax not us. |
As a career implementer of POSIX and ISO C interfaces, I can certainly understand the "Because the standardizing organization said it was this way", thank you for answering my question. I see that "@" is the Windows Key (as modifier) (https://keepass.info/help/base/autotype.html) where is the specification for "#" to be used as Win/Cmd? I'm just trying to write a cleanup pass to export, process, and import my auto-type entries. |
@ is only defined for keepass 1.x. We chose # for keepassxc to provide that capability since @ is way more common to be used in a sequence as a character and not a modifier. |
Certainly, if you used @ it would break emails in auto-type sequences and require escaping, which is why I assume Keepass 2.x deprecated @ usage in auto-type, and switched to recommending VKEY. Does the choice of # (special meaning for standard ASCII character) for keepassxc cause compatibility problems between keepass and keepassxc when it comes to sharing auto-type sequences? How can # be used for @? Is # a single-key modifier? Are {VKEY 91 D}e{VKEY 91 U} and #e equivalent now? So if I have #e in my keepass auto-type and I migrate it to keepassxc it will not be interpreted the same? Is it possible to remove # from the special characters to avoid this incompatibility with upstream keepass? |
We don't support the VKEY syntax, and no we aren't going to revert this feature. You should almost never Auto-Type raw characters, placeholders don't apply the modifier logic. If you define a sequence using # to hold down the win key in keepassxc, you can easily define a second sequence that uses VKEY in keepass.
|
Also add documentation on modifiers.
Testing strategy
Tested on Windows
Type of change