I...don't think this is a thing.Muirium wrote: ↑11 Dec 2023, 11:11Sounds like all of your issues stem from this keyboard actually showing up to the host as two separate physical keyboards you just happen to be typing on simultaneously. One Shift doesn't uppercase characters on the other, [...]tiltowait wrote: ↑10 Dec 2023, 21:41The problem I have is that holding shift (or any other modifier) on one side doesn't activate it on the other. In the instructions, I see something about a workaround involving numlock state? I'm not sure if this is supposed to address the issue, but if so, I'm not sure how to make use of it. I'm using a Mac, which doesn't have a numlock.
First, in testing this myself, I can't reproduce the reported issue where "any modifier" (which would be inclusive of Shift, Ctrl, Alt, ...) held down on one side "doesn't activate it on the other". If I have two keyboards -- any two keyboards! not even xwhatsit based 'boards! -- plugged into my computer, I can hold Shift on one, press a letter or number on the other, and that letter comes out capitalized or the symbol for that key on the number key row is outputted. I can hold down Ctrl on one, and C on the other, and I get Ctrl+C outputted. I can hold down Alt on one, press F4 on the other, and (on Windows) have the current window close.
That's because modifier key state is something that is determined and tracked by the host computer, and is not some form of state that the keyboard itself is keeping track of. When you press any of those modifier keys, a scan code is transmitted to the host, and at that point the host is what's keeping track of the state of that modifier. Globally. And then when another key is pressed in concert with that modifier key being held, it is the software running on the host that determines what action should be taken. Ergo, if Shift + S is pressed, it is code running on the host PC that decides to make the S capitalized. The keyboard doesn't send a "capital S" to the host...what the keyboard transmits when someone presses the "s" key is the same regardless of whether any modifier is being held down in concert with it. That is, it sends "shift key scan code" plus "s key scan code". If a capital S doesn't result from that, that's (generally) on the host, not on the keyboard (unless something really funky is going on).
The keyboard is just dumbly reporting to the host what key or keys happen to be pressed at any given time, and leaves it completely up to the computer what to do.
The only exception is the so-called "Fn" key, which is not a normal modifier key. It's really a special QMK layer-selection key that does NOT transmit a scan code to the host PC. Instead, the keyboard controller is monitoring and tracking the state of that key internally within itself.
So sharing of standard modifiers is not a problem, nor has it ever been. The one and only problem has been trying to figure out how to share the state of a specialized QMK layer selection key between two discrete QMK-based keyboards.
That's what the Num Lock based layer selection & sharing feature attempts to solve. So we are (potentially) conflating two completely separate things here. The whole Num Lock thing has nothing whatsoever to do with any of the regular modifier keys; it's just a hack that relies on the fact that Num Lock state is also tracked by the host, and exploits that fact to let one keyboard half "talk" to the other keyboard half in order to tell it what QMK function layer should be selected at that moment (Num Lock off == layer 0, Num Lock on == layer 1).
Hope this helps to clarify.
EDIT: I intended to but forgot to address the comment about "using a Mac, which doesn't have a numlock".
I talked about this in my original post about the Num Lock layer implementation:
NathanA wrote: ↑21 Sep 2023, 10:44The final big disclaimer is that this doesn't work on Macs, at least out of the box, because Macs don't have a native concept of "Num Lock". Fortunately, I did run across a very simple open source utility called SetLedsMac, which allows you to turn on or off any of the lock LEDs on one or more keyboards attached to your system. In and of itself this doesn't solve the problem, but somebody else forked the project and made a version with an added feature that listens for a lock LED change on one keyboard, and rebroadcasts that change to all of the other attached keyboards. So if you have a Mac, all you have to do is install this little utility, et voila! I tested it out, and it worked great for me on Catalina at least.