"You don't know you need it until you try it". Nowadays, almost everyone used computers since childhood, not excluding me.

Despite being an advanced Windows OS user, I wasn't having any idea that I might need it. I haven't asked myself the question "Maybe I need to remap FN keys to something else?" (not even once). But recently, I spilled water on my laptop's keyboard, and it stopped working. Then I started using a Bluetooth keyboard "Logitech Keys-To-Go", which I always have in my backpack. And this keyboard doesn't have FN keys at all. Instead, it has media keys, which cannot be configured as FN keys.

Logitech Keys-To-Go Media Keys

FN keys are often used in programming, and often it's important to see the number of FN key. For example, F5 is often used as "start debugging" key. But which keys to assign to this function to quickly find it when I need it? Obviously, below those media keys we have digit keys! Though, they only have numbers from 1 to 9, it's easy to assume that 0 is F10, "minus" is F11, and "equal" is F12.

Logitech Keys-To-Go Number to FN Keys

The last thing to figure out is which modifier key to use? "Shift" isn't a good choice because it used to insert special characters; "control" and "alt" can be used in other key combinations, like Ctrl+F1. But what about "space"? Space is the easiest to press on any keyboard because of its location, so let's use it!

I can tell even more - when I started using it, I realized that it's even more convenient than the default FN1-FN12 keys on keyboards that have those keys. Because I often struggle finding a corresponding FN key when I need it - and press the wrong one. But I've noticed that when I use + as FN keys, I do less mistakes. I've get used to find those keys even without looking at them because I use them frequently. Now, even on a new laptop I use this remap instead of the original FN keys.

And here is the complete AutoHotkey configuration for such a mapping:

Space & 1::SendInput, {Blind}{F1}
Space & 2::SendInput, {Blind}{F2}
Space & 3::SendInput, {Blind}{F3}
Space & 4::SendInput, {Blind}{F4}
Space & 5::SendInput, {Blind}{F5}
Space & 6::SendInput, {Blind}{F6}
Space & 7::SendInput, {Blind}{F7}
Space & 8::SendInput, {Blind}{F8}
Space & 9::SendInput, {Blind}{F9}
Space & 0::SendInput, {Blind}{F10}
Space & -::SendInput, {Blind}{F11}
Space & =::SendInput, {Blind}{F12}
*Space::SendInput, {Blind}{Space}

Notice: "blind" is needed to trigger ALT+F4 or other key combinations, order is important: Space+Alt+4

For mac, you could probably achieve the same result using apps like Karabiner

That's it, happy coding!