Comments (11)
Now, there may be ways to fix this. For example, we could release shift (and the keys it was chorded with), provided they were triggered by a single key (eg,
LSHIFT(Key_A)
would trigger this, butShift
+A
would not), as soon as any other, non-shifted key is pressed.This would allow
{
to repeat, pressing[
later would stop}
from repeating, and[
would start. Trilling would also work.The downside of this is that the code required for this may be a tad complicated, at least that's my gut feeling.
This is exactly what I have in mind for the "Unshifter" plugin that I have planned, but isn't done. The hard part is that it's impossible to tell for sure where the shift
bit in the HID report came from, so I was planning on implementing a keycode mask for the report. It would work the same was as the keyswitch mask – unmasking automatically when the keycode(s) stop appearing in the report on the input side.
This would require (in my opinion) a redesign of the hooks, with a true pre-report hook that gets called whenever a HID keyboard report is about to be sent.
from model01-firmware.
This also misbehaves if you try to type }\ too quickly: you get }| instead.
from model01-firmware.
from model01-firmware.
Ubuntu 14.04, with the version of the firmware that came pre-installed on my Keyboardio. (S/N 010049 if that is relevant)
from model01-firmware.
@algernon @bergey - This is the -opposite- of the problem we had just after PVT, right?
from model01-firmware.
I can reproduce this, and there is a perfectly clear explanation for why this happens. The good news is, this is not necessarily a bug (depends on how you look at it)!
I reproduced with trilling }
and [
, which sometimes resulted in }{
. So I added some key logging, and it turns out that this happens when [
is pressed while }
is still releasing, but has not released yet. This means that the Shift
is still pressed, so that's why [
gets it too. It's like if you were typing very fast, and you released shift, but the key is travelling up, and you hit another key: shift will still be applied, even though your finger is not on the key anymore.
This is exactly what happens here.
from model01-firmware.
Now, there may be ways to fix this. For example, we could release shift (and the keys it was chorded with), provided they were triggered by a single key (eg, LSHIFT(Key_A)
would trigger this, but Shift + A
would not), as soon as any other, non-shifted key is pressed.
This would allow {
to repeat, pressing [
later would stop }
from repeating, and [
would start. Trilling would also work.
The downside of this is that the code required for this may be a tad complicated, at least that's my gut feeling.
from model01-firmware.
@obra What do you think about my idea above? Would this be a desirable feature? If so, I'll have a go at implementing it.
from model01-firmware.
from model01-firmware.
Do you even have to send the shift-on and shift-off scancodes at all? There is a shift bit attached to each character scancode, isn't there? Are there some OSes that won't respect that unless you've sent the shift-on scancode before it?
from model01-firmware.
from model01-firmware.
Related Issues (20)
- Cannot buld with Kaleidoscope==07f3ca and firmware==03bee4 HOT 3
- Add commit SHA to BUILD_INFORMATION string HOT 2
- Error building after upgrading to Catalina: bad CPU type in executable HOT 6
- Weird behavior on linux 5.12? HOT 11
- variable or field 'anyKeyMacro' declared void HOT 4
- Relationship with kaleidoscope repo is confusing HOT 10
- Macro code is different from Arduino HOT 1
- How to have multiple "primary" layers? HOT 2
- Stuck in numlock on modified keymap HOT 6
- curly braces sometimes type square braces HOT 3
- Model01-Firmware doesn't seem to be in sync with the plugins anymore? HOT 2
- Magic combo or something to disable eeprom keymaps HOT 3
- Colormap support is incomplete HOT 1
- Keypresses are wrong over RDP HOT 8
- List default LED effect modes
- Building fails? HOT 4
- running `make flash` on OSX Catalina fails with "avrdude: butterfly_recv(): programmer is not responding" HOT 2
- build error in LED-Stalker HOT 19
- ps/2 fallback support HOT 2
- Consider replacing the Numpad plugin with a custom colormap for the layer
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from model01-firmware.