Trouble with keyboard layout / QMK/ VIA

I’m sure this is just a knowledge gap, and nothing is actually wrong, but I seem stuck.
From https://keyboard.frame.work, I have clicked on a key, not realizing that there is no “commit,” “save,” “upload,” etc., to push the change… click a button, and the change is made instantly.

I seem to have unmapped the function (Fn) key and can’t seem to get it back.
My F3 (for example) is always F3, not Vol+… regardless if I’m holding the Fn key.

From the QMK docs, it seems that there is no key code for Fn, rather it maps to a momentary layer shift, and from the layouts in VIA, it seems that should be layer 1 or 2 to get F key functions and layer 0 should have the media, lighting, etc. functions mapped to the F keys.

What is mapped to the Fn key in the default key maps?
It would be super handy if VIA had a “reload default” feature…

The more I look at this, the less sense it makes to me…


If I’m on Layer 0, F3 should get me Vol+, right?
And Fn should momentary to layer 1?


in layer1, F3 should be F3…

but if I hit F3 w/o Fn, It’s processing an F3 (in the browser, I get the find/search text dialogue)
and with Fn pressed, I get the same

You unmapped the normal Fn key next to Ctrl, right? Not Fn-lock.

The normal Fn key on layer 1 would be MO(1). You find this under the “LAYERS” section.

This is what should happen if you’re in Fn-lock. This is handled by a custom function.
When you’re in Fn-lock layer 3 becomes your base/default layer.

The default layers are setup like so
Layer 0 - normal: Alt functions for F-keys, other keys normal.
Layer 1 - Fn momentary: F1-F12 for F-keys, alt functions for other keys.
Layer 2 - Fn-lock: F1-F12 for F-keys, other keys normal.
Layer 3 - Fn-lock Fn momentary: Alt functions for F-keys, alt functions for other keys.

Yes, the Fn key next to Left Ctrl.
I did set it back to MO(1), but functionality isn’t back to expected.
Although Fn-lock may explain it… perhaps I have Fn-lock set and messed up the esc key mapping, so I can’t turn Fn-lock off?
What does the layer 1 default esc key map look like? I have “CUSTOM(65)”

CUSTOM(65) is correct for fn-lock, on layer 1.

But when in fn-lock, which it sounds like you are in, you don’t use layer 1. Layer 3 is your fn layer (again, when when in fn-lock). Do you have CUSTOM(65) there?

So, I’m in Fn-lock?
I can’t seem to get back… shift, with or without Fn, doesn’t seem to toggle me back to Fn-lock off

Yeah, sounds like your in fn-lock. What’s on your layer 3? That is your fn layer, when in fn-lock.

Hmm? Shift doesn’t affect fn-lock.
It’s Fn + Esc to toggle fn-lock. Presuming those keys are mapped properly.

Layer 3 has Custom(65) for ESC, but it also has media controls for the F keys… and Im not getting media controls


I seem to be getting actual Fkeys, which seems to be layer 1 or 2 ?

layer 1 also has Custom(65) for ESC, but layer 2 has pass-through

sorry, mistype
I was trying to toggle Fn-lock with Fn+ESC

So no combination of Fn or Fn+Esc is giving you media controls?

What OS are you on?

Win 11
And the media controls did work earlier today… before I messed with VIA :frowning:

I could provide a Via layout save file, but not sure if that will help.
Clearing your persistent memory is what I’d try. The hid tool offers that option. It’s labeled Clear EEPROM FrameworkComputer/qmk_hid: tool for interacting with QMK devices over HID
Direct link qmk_gui_v0.1.12.exe

Via default layout save for ANSI (American) https://we.tl/t-cKrfh2FEWa
@anyone else wandering by, do not use this file if you do not have an ANSI (American) keyboard.

1 Like

@MJ1 you rock!
That resolved it. After that, I could get media controls with Fn, so I was in Fn-lock-on, Fn+ESC toggled me back to Fn-lock-off and it seems to work as expected.

1 Like

Glad to help.
It was clearing eeprom with the hid tool that fixed it, right? Not loading a saved layout.

Yes, clearing the eeprom.
Can you explain why? I’m guessing the FW defaults are baked into the firmware and then VIA saves overrides to eeprom? Clearing the eeprom with the hid tool wipes that and the firmware defaults are in place again?
I had already tried rebooting to see if clearing volatile memory would resolve…

Yeah, in order to be able to configure your layout live Via saves the data to persistent memory, known as eeprom in qmk. I think sometimes Via just glitches and screws up its memory. Clearing it should bring you back to the default state for everything. The default layouts are compiled into the firmware, and they are what’s used before Via saves any changes, or if you clear eeprom.

Both Via changes and the fn-lock status are persistent non-volatile memory stored in the keyboard. Since it would be annonying if they reset every time you reboot.

1 Like