NUMLOCK on login with Windows 10

For those of us that have been working with computers for a number of years (or decades *cough*) it’s been relatively easy to have your NUMLOCK stay on when you boot.  Most computers have it on by default, and others can be changed with a quick BIOS change.

It is not so easy in Windows 10, but it is possible.  It will require editing the registry, which sounds worse than it is.  I don’t know why the BIOS NUMLOCK isn’t recognized by Windows 10, but that’s a philosophical question.  It’s three easy steps:

  1. Open Regedit as an Administrator.
  2. Navigate down to HKEY_USERS\.DEFAULT\Control Panel\Keyboard
  3. Double-click InitialKeyboardIndicators and set the value to 2147483650.  In the screenshot, the value ends in 48, but that’s because it’s my laptop with the NUMPAD sharing space with U through P, J through ;, and M through /, which would make working with my laptop a bit of a nightmare.
NUMLOCK on boot, Win 10
Where to edit NUMLOCK to stay on at boot

In case you’re wondering why this value, it makes sense in binary (i.e. to a computer)

2147483648 converts to:

1000 0000 0000 0000 0000 0000 0000 0000

2147483650 converts to:

1000 0000 0000 0000 0000 0000 0000 0010

and the second LSB (Least Significant Bit) is the flag for NUMLOCK.

If you want to keep CAPSLOCK on at boot, that’s the LSB and the 3rd LSB is for SCROLL LOCK. I don’t know what the other values are, but I assume that’s it’s for additional features and a dash of malicious compliance.  I’m going to go on a limb and say maybe a 32-bit value for 3 bits of flag is excessive, but MS knows a lot more than I do.  Nevertheless, here are the other values:

2147483649 for CAPS LOCK

2147483650for NUMLOCK

2147483651 for NUMLOCK + CAPS LOCK

2147483652 for SCROLL LOCK

2147483653 for SCROLL LOCK + CAPS LOCK

2147483654 for SCROLL LOCK + NUMLOCK