Setup: Mirroring, runtime macros, thumb trackball, etc

This is my configuration. This is to convey the high-level idea. I will try to cover specific features in more detail in separate threads.


Base layer

Notice 7890 keys which together with trackball act as regular thumb trackball with buttons on 7890

  • 7890 keys map to mouse buttons, basic tab switching, new tab, close tab, and trackball-scrolling
  • mouse/caps button alone mirrors entire keymap… …so it is possible to write single-handedly.

Mouse layer - arrow clusters

Case buttons activate arrow keys:

  • A-insert is terminal paste shortcut

Mod layer - actual mouse keys (sorry for confusion!)

Case button + mouse/caps button activates mouse key layer

  • A-arrows, C-PgUp/Down are browser history and tab switching
  • C-T C-W are “new tab” “close tab”

Fn layer - symbols and other functions

Right “space” activates symbol/macro/Fkey layer:

  • top row are runtime macros (vim-like style), ~ key acts as vim Q (Q+key starts recording)
  • Emoji contains shortcuts to commonly used emoji alt codes, e.g. Emoji+c+r = cry, Emoji + h + r = heart, etc…
  • Bind allows rebinding part of the keymap:
    • Bind+a - maps arrows onto jilk, and regular escape on the mouse/caps key
    • Bind+m - maps the 7890 keys to regular mouse actions (this disables rocking gestures, middle-hold scrolling and middleclick simulation, but works reliably in games etc)
  • RGB allows switching backlight colour, e.g., RGB+r = red, RGB+y = yellow, RGB+n = warm white, RGB+f = functional…

And then there is another keymap which realizes that mirroring setup, via holdKeymapLayer references replaceLayer in $onKeymapChange QT3 macro event…


See also:

6 Likes

If you had time to post it, and can, it would be wonderful to look at your keyboard files that implement this.

Sure! UserConfig.json (It is the QT3 map.)

1 Like

Thanks for sharing master! I’ll look into it.

This is really interesting, I think there’s some really good ideas in here. Mind if I ask some stupid questions…

1 - I love the idea of using the 7890 keys as buttons, but how do you access those keys when you need to enter those numbers?

2 - “mouse/caps button alone mirrors entire keymap” - I don’t really know what this means - can you explain?

fn (right space) + a = 1
fn (right space) + s = 2
fn (right space) + d = 3

mouse (the key that would be called CapsLock on a normal keyboard) + a = ;
mouse + s = l
mouse + d = k

And this setup works for layers too, so:
mouse + fn + a = 0
mouse + fn + s = 9

Thanks @kareltucek !

I’ll play around with some of this, it’s stretching the limits of the customisation for sure, but I like a lot of these ideas!

1 Like