Releases: MetalBlueberry/chkb
v0.2.2
v0.2.1- Fixes
The ChangeLayer form config has been fixed and a race condition has been solved due to deleted timers. chkb keeps improving!
V0.2.0 - Ready
I think that chkb it is ready to be used.
This version has the following major changes
- Integrates with cobra cli, which gives a better interaction.
- Allows the user to specify configuration path
- TapDelay is now a setting in the config file
- Half of the code has been documented, it takes time T.T
You will find bugs for sure, and I will be really happy to fix them =). You can run the app with -v flag to print a detailed log that you can send in case you find an unexpected error.
No more race conditions
The previous release introduced race conditions due to the timers. This issue has been resolved by introducing a lock for the key process.
Also, there is a minor new feature that allows you to specify multiple keyboard inputs that will be handled as if it were a single keyboard. Provably it is only useful for me because I'm using two keyboards as if it were a split keyboard.
Software TapDelay
This version handles the difference between Tap/Hold by using internal timers. This is important because from now on there will be different goroutines that may cause race conditions. I'm still thinking about how to detect such scenarios.
The configuration file now has the layers section that contains all the previous conf. This is to allow other parameters at the root of the configuration.
Now key events are held until Tap/Hold events are resolved. This is only active when you map Tap/Hold events in your configuration. Let's say that you want the Shift to be a ( when tap and a normal shift when Held. If you Tap shift, you won't see the ( after the TapDelay expires or you press another key. You do not really need to be aware of this, It basically behaves as you expect. If not, feel free to open an issue
Initial Version
This version works pretty well! It is simple yet powerful.
The major drawbacks are that every event must be triggered by a keypress and this has limitations when reordering keystrokes due to Tap/Hold events.