How do I swap '-' and '_' other characters?


I want to swap - and _. I also want to move ? to a function binding.

However, I have not found how to change the bindings for individual characters based on the shift modifiers, or how to make ‘?’ map to the function layer.

How can I go about accomplishing this?

There are two plugins that might help get you what you want — TopsyTurvy & ShapeShifter. One inverts the shift behaviour for specified Key values, the other changes the keycode produced when shift is applied.

TopsyTurvy should be able to swap - & _ easily enough.

You can certainly put a key that produces ? on some other layer, by using LSHIFT(Key_Slash) (assuming you want to be able to type it without also holding shift). With ShapeShifter, you could get that key to produce another shifted symbol when shift is held.

Even together, however, these two plugins don’t let you assign symbols completely independently to the shifted and unshifted states of a key, so you might not be able to get the keymap that you want. (I wanted total shift-dissociation, so I wrote my own version of Kaleidoscope to get it).

That is a really interesting question. I just opened Chrysalis and found the same thing as you, most (all?) of the shift modifier symbols are missing. I checked every menu to no avail. Perhaps this is something to be added to Chysalis in the future.

I don’t think Chrysalis can do TopsyTurvy or ShapeShifter configuration, but that’s just a guess — @algernon could tell you for sure. The shifted symbols don’t appear because they don’t represent independent keycodes. I’ve only looked at Chrysalis briefly one time, so I’m not sure how to apply modifier flags to keymap entries there, but I’m sure you can do it.

I map the parens on my function layer for easy access without having to hold shift. Is this what you’re looking to do in Chrysalis?

I’m looking to have the _ character when I don’t press shift and the - when I do. in addition to putting ? on the functional layer.

basically I’d want to define a shift layer, and an FN layer. Unfortunately I couldn’t find the keycodes for ?.

I guess the problem is that as a user I think in character not keycodes and shift modifiers and how _ is really <- + SHIFT>. Basically what I think is that there is a series of bits that represent - or _ so why deal with the keycodes? why not just create character maps and have overrides for the shift layer or something. This way I don’t have to redefine everything if I want to change things around because in the end, some series of bits represents a specific chacacter so just send out that series of bits and forget the keycodes.

With that said I am a new user and this way of working with may exist and I’m just unaware of it. I havn’t used Chrysalis or other keyboardio tools besides the arduino c files I edited to get dvorak.

Thank you to everyone for the replies so far… much appreciated.

Moving ? to the Fn layer is the easier part: it’s just Shift+/, which you should be able to set up in Chrysalis (if not, please open a GitHub issue, and we’ll fix it quick).

Swapping - and _ is more complicated, due to how keyboards report to the host. You can use the TopsyTurvy plugin to swap these two: #include <Kaleidoscope-TopsyTurvy.h>, add TopsyTurvy to KALEIDOSCOPE_INIT_PLUGINS, and replace Key_Slash on your keymap with TOPSY(Slash), and you should be good to go.