QMK Discussion Thread

Thanks @donutcat. Haven’t seen the macro support in keyboard layout editor but have seen it in kbfirmware.com. As a rookie to all this stuff I’m still surprised I was able to get some of this to work. This is the first time I ever soldered anything.

Originally built a custom keyboard (removed switches from a $40 mechanical TKL, removed PCB, hand wired the switches and added a Teensy) in KLE, took raw and imported to KBFirmware then exported the source and used that for my build environment on Linux Mint using Teensy command line from PJRC.com. But definitely have a bunch of basics to learn to hit productivity boost I’m looking for.

Thanks @noroadsleft, switched to TO(layer) and it works great. I’m really new to this stuff so I don’t necessarily need TT(layer) functionality. But I still don’t understand why the TT(BASE) won’t work when on the [OPEN] layer. It switches layers from each of the other 3 layers.

At this point is more of a need to satisfy my OCD of understanding than requiring the TT(layer) functionality. Thanks again I appreciate the help.

QMK’s layer functionality works like a stack. Think of each layer in your keymap as a sheet of paper, and the instances of _______ are holes cut into the sheet.

When your keyboard starts up, it’s on Layer 0. Triggering TT(LOAD) enables Layer 1, but doesn’t turn off Layer 0; it just puts another sheet of paper on the top of the stack. Same with TT(CREATE) and TT(OPEN). So when you get to Layer OPEN, every layer is switched on. TT(BASE) instructs QMK to toggle Layer BASE, but what it doesn’t do is tell QMK to turn any of the other layers off, so Layer OPEN is still active. Because the layer functionality works in a top-down method, Layer OPEN’s sheet of paper is still on top, and so your keymap is effectively:

KC_3,    XXXXXXX, TT(BASE), // XXXXXXX from Layer BASE, KC_3 and TT(BASE) from Layer OPEN
WPLOAD,  CAB    , ALTTAB    // WPLOAD and CAB from Layer LOAD, ALTTAB from Layer CREATE

Because your keycode doesn’t turn the OPEN layer off, that key is still assigned as TT(BASE).

Also, I misspoke before. TT() toggles the state of the target layer. If the target layer is off, the key enables it; if the layer is on, the key disables it.

Thanks @noroadsleft for taking so much time and space to explain, this definitely helps. I’m beginning to comprehend and I’ll be glad when this concept becomes second nature.

In QMK is it possible to call a macro from within a macro?

Trying to break a long process into manageable chunks.

Macro a pastes the contents of the clipboard into a web field.
Macro b tabs N times to reach the next field. (the number of tabs to hit the correct field varies).
Macro c pastes the contents of a second clipboard into a field.

Macro One:
Call macro a
Call macro b
Call macro c

For the record I’m sure there is a better approach but I’m still in the early stages of learning QMK.

Thanks.

Is it possible to use a macro from within a double tap?

Got a macro that works when called from the keymap. It selects all text in a field and deletes it.

[TD_CLRFLD] = ACTION_TAP_DANCE_DOUBLE(KC_D, CLRFLD),

Inside the keymap:

TD(TD_CLRFLD)

When I try to call it from a double tap nothing happens. The code compiles fine. Any ideas?

Thanks.

Ok, so I just got to qmk for the first time.

Dz60 rgb is my pcb, but if I choose that I then only get ANSI, is it OK to choose dz60?

There I almost find the layout I want (Layout_60_iso_4th_row_all_1u) but I want it with split backspace to. How do I change that? Nvm the last part, that won’t work =/

Hey guys.

I recently got a trackball (Kesington expert wireless)

I was wondering if I could program a key to so this:

  • when the key is pressed (and hold) , I can use the ball from the trackball to scroll up/down/lateral

  • also the option to toggle that scroll pressing the key

Thanks !