Keyboard Shortcuts Not Detected with Corne ZMK Split Keyboard
Bug Report: Keyboard Shortcuts Not Detected with Corne ZMK Split Keyboard
Description
When using a Corne ZMK split keyboard, most of the common keyboard shortcuts are not detected by TiXL.
Examples of shortcuts that fail to register include:
DeleteCtrl + ZCtrl + V- ...
When testing with other regular keyboards, all shortcuts work as expected. This issue seems specific to the Corne ZMK keyboard input handling.
Steps to Reproduce
- Connect a Corne ZMK keyboard. (tested in both Bluetooth and wired mode).
- Open TiXL.
- Attempt to use standard editing shortcuts (e.g.,
Delete,Ctrl + Z,Ctrl + V). - Notice that they are not recognized by the application.
Environment
- TiXL Version: 4.0.6 (And also previous versions)
- OS: Windows 11
- Keyboard: Corne ZMK split keyboard
- Other Keyboards Tested: Regular full-size keyboard (works fine)
Additionally, the problem also occurs when using AutoHotkey (AHK) to remap keys.
For example:
Space & D::Delete
this seems like an issue with how your keyboard is executing inputs on your machine - i run a vial/qmk-powered keyboard and dont have this issue. AHK would be similar, in that it is explicitly performing "virtual inputs". I get different, mouse-based issues when using virtual mice with TiXL using VNC.
i believe that this can and should be fixed, but im not sure the best way to go about it at the moment. I think something like an SDL-based input backend would serve us well and may just solve the issue altogether, but we're a good ways off from implementing that right now. (though it's something i'd like to get to seeing as i'm doing a bunch of work on that for Silk.NET)
in the meantime, if you are the type to find it easy to switch to QMK/Vial, I'd recommend doing so as it works for me right now. if you're dead set on using ZMK, the resolution for your issue may take some time.
Thanks for the quick reply!
I also tested with another QMK-powered keyboard and can confirm that it works fine with TiXL.
Unfortunately, the issue seems to be specific to ZMK, which doesn’t get recognized properly.
Switching my main keyboard to QMK isn’t an option for me, since I often need to use it wirelessly — and ZMK is much better suited for that use case.
understandable. it may also simply be that the ZMK firmware or your particular mapping scheme doesnt handle modifier keys all that well - though that doesnt quite explain your particular "delete" mapping. are there any other applications that you experience issues like this with? it's also possible that our keyboard shortcut handling is intolerant to certain conditions that it doesn't need to be intolerant to
Thanks for the follow-up!
This issue only occurs when using TiXL — I haven’t encountered the same problem in any other application.
The strange part is that sometimes the key does get detected. For example, if I press Delete multiple times, occasionally it will delete the selected node. So the input is being sent, but TiXL doesn’t consistently recognize it.
From my testing:
AltandShiftmodifiers work correctly.Ctrlshortcuts don’t work at all (e.g.Ctrl+Z,Ctrl+V).- No keys like
Delete,Enter, andBackspacealso don’t get recognized reliably.
I also tested this on multiple PCs, and the issue occurs consistently across them.
this is sounding more familiar now to my experience with VNC. can you test the following?
if you spam ctrl shortcuts like you could with Delete/backspace, do they occasionally trigger too? if you enable V-sync in the editor (by clicking the little framerate stats thing up top IIRC), does the issue get better or worse?
Yes, enabling V-sync does improve things — especially with Ctrl key execution, which started working much more reliably.
However, I noticed a very weird sound on from my PC after enabling it 😊
nice!! you're gonna wanna mess with the audio settings - im not terribly familiar with them atp myself, but i recall a "resync interval" which you may want to set to something like your monitor's refresh rate (e.g. 60hz monitor = 16ms)
Got it — thanks for the hint! I’m not sure where to find the audio settings or the “resync interval” option in TiXL. Should I be looking under the Debug menu, or somewhere else? If you could point me in the right direction, I’ll try setting it to match my monitor’s refresh rate (60Hz = 16ms).
i think only really applies if you're using a "soundtrack", but when enabled for your project, it looks like this
@pixtur could definitely fact check me on this.
i think the Resync threshold here is more-or-less a seconds-based measurement, so setting it to .01667 or a multiple of that should help? maybe?
I tried decreasing the Resync Threshold, but unfortunately that didn’t fix the issue.
could be worth also trying to increase it over the default threshold until it's a multiple of 60hz (0.1667), but at this point the issue sounds like it's an entirely different one from the input-related issues - that being that vsync negatively impacts audio. feel free to search for existing issues or create one if there isn't one, but yeah the audio playback system needs some work