Your solution does work, and it’s the one I currently use, but it has one annoying side effect: If you get to L3 by pressing L1 and L2 (no matter in what order), you cannot get out of L3 unless you release both FN/layer keys. So if you want to get back from L3 to, say, L1 by releasing the right FN key, you still remain in L3.
@nevd I think MagicCombo does not have this problem. I’ll have to try it too.
Edit: MagicCombo works nicely. It solved the problem of getting stuck in a layer as mentioned above. Here’s the code I’m using:
enum MC {
SwitchToLayerLFNandRFN
};
void switchToLayerLFNandRFN(uint8_t combo_index) {
ShiftToLayer(LFNandRFN);
}
USE_MAGIC_COMBOS(
[MC::SwitchToLayerLFNandRFN] = {
.action = switchToLayerLFNandRFN,
.keys = {R3C6, R3C9} // Left Fn + Right Fn
});