Well, it sort of worked the first time, but I got it to work right the second time around. For the archives:
Code:
enum { QWERTY, NUMPAD, FUNCTION, ANY }; // layers
...
[QWERTY] = KEYMAP_STACKED
(___, Key_1, Key_2, Key_3, Key_4, Key_5, Key_LEDEffectNext,
Key_Backtick, Key_Q, Key_W, Key_E, Key_R, Key_T, Key_Tab,
Key_PageUp, Key_A, Key_S, Key_D, Key_F, Key_G,
Key_PageDown, Key_Z, Key_X, Key_C, Key_V, Key_B, Key_Escape,
Key_LeftControl, Key_Backspace, Key_LeftGui, Key_LeftShift,
ShiftToLayer(FUNCTION),
ShiftToLayer(ANY), Key_6, Key_7, Key_8, Key_9, Key_0, LockLayer(NUMPAD),
Key_Enter, Key_Y, Key_U, Key_I, Key_O, Key_P, Key_Equals,
Key_H, Key_J, Key_K, Key_L, Key_Semicolon, Key_Quote,
Key_RightAlt, Key_N, Key_M, Key_Comma, Key_Period, Key_Slash, Key_Minus,
Key_RightShift, Key_LeftAlt, Key_Spacebar, Key_RightControl,
ShiftToLayer(FUNCTION)),
...
[ANY] = KEYMAP_STACKED
(___, LCTRL(LALT(Key_Delete)), M(MACRO_ENPASS), XXX, XXX, XXX, XXX,
XXX, XXX, XXX, XXX, XXX, XXX, XXX,
XXX, XXX, XXX, XXX, XXX, XXX,
XXX, XXX, XXX, XXX, XXX, XXX, XXX,
XXX, XXX, XXX, XXX,
XXX,
___, XXX, XXX, XXX, XXX, XXX, XXX,
XXX, XXX, XXX, XXX, XXX, XXX, XXX,
XXX, XXX, XXX, XXX, XXX, XXX,
XXX, XXX, XXX, XXX, XXX, XXX, XXX,
XXX, XXX, XXX, XXX,
XXX
)
Initially I set up all unused keys as XXX except for Prog. But if I did that with the Any key, it would get stuck in the Any layer and never go back to Qwerty. Once I set Any to ‘___’ it all worked fine.
Thanks for your help!