DualUse with shifted brackets?

I’m just getting my Model 01 flashed with a comfy layout, but I ran into one issue with the awesome DualUse plugin. The shifted bracket keys just output their unshifted versions.

What works: Most tapped keys, like Escape and LeftBracket/RightBracket
Examples: CTL_T(LeftBracket), MT(RightControl, RightBracket)

What doesn’t work: LeftCurlyBracket or RightCurlyBracket - it only outputs a [ or ]
Examples: ALT_T(LeftCurlyBracket), MT(RightAlt, RightCurlyBracket)

Now, LeftCurlyBracket and RightCurlyBracket work fine when they’re on their own keys. They’re in the default Model 01 layout, after all. It’s just with DualUse that they seem to revert to their unshifted selves.

Has anyone else run into this? Is there a fix, or another way to accomplish it? Thanks!

Might be a bug in dual use this issue might be related.

you could try the https://github.com/keyboardio/Kaleidoscope-SpaceCadet plugin instead

1 Like

Is this maybe related to the warning in the DualUse README about not being able to use it with shifted keys? Curly brackets would be shifted, I think.

I’ll second the suggestion of the SpaceCadet plugin – I’ve used it to put {, [, ( and ), ], } on the tapped version of the inner three arc keys on both sides, respectively. Haven’t had a chance to really get used to it yet, but I expect it’ll work out quite nicely.

1 Like

I must have missed that warning! I don’t see it in the README at https://github.com/keyboardio/Kaleidoscope-DualUse – is there somewhere else?

Thanks for the SpaceCadet suggestions – that’s working for me. I prefer the DualUse mechanism, so I hope I can figure that out, but it’s not a big deal. :slight_smile:

1 Like

@Kipples was referring to this part of the README, the last sentence of the paragraph. Should be made more evident, I guess.

The reason for this limitation is that we have a finite amount of bits to store what the DualUse key does, and we already use 8 bits (out of the 16 we have) to store the key part. LeftCurlyBracket is already a shifted key, and uses more than 8 bits for description. Combined with DualUse, we drop some of those bits, which results in the plugin only storing the 8 that correspond to the unshifted char.

A possible solution is to use SpaceCadet - you can get very similar behaviour with that too, and its interface allows for this kind of thing too.

1 Like

Unfortunately, and confusingly, SpaceCadet worked for the shifted keys in Linux but not in Windows 7. In Windows, the LeftBracket/RightBracket keys are fine, but LeftCurlyBracket and RightCurlyBracket just make the computer beep and no input is recognized. When held down, the modifiers work fine, so it’s just the taps that are broken.

I also found that my Escape mapping doesn’t work – but this time, it’s because it outputs the modifier and the tap key. I use a GUI/Escape mapping, which means every time I want Escape I also get the Windows menu popping up. :frowning: