Fixing NumLock Issues: Troubleshooting Guide for Windows & Mac

How to Keep NumLock Enabled by Default on Startup

Windows 10 / 11

  1. Enable NumLock manually: Turn on NumLock at the login screen or desktop.
  2. Registry method (stable):
    • Open Registry Editor (regedit).
    • Navigate to:
      • HKEY_CURRENT_USER\Control Panel\Keyboard
      • HKEY_USERS.DEFAULT\Control Panel\Keyboard
    • Set the value InitialKeyboardIndicators to:
      • 2 — NumLock ON
      • 0 — NumLock OFF
    • If both keys exist, change both to 2.
    • Reboot.
  3. BIOS/UEFI setting:
    • Restart and enter BIOS/UEFI (common keys: Del, F2, F10, Esc).
    • Look for options like Bootup NumLock State, Keyboard Features, or Peripherals.
    • Set to Enabled or On. Save and exit.

Windows (older versions: 7 / 8)

  • Follow the same Registry steps above. Some OEMs also provide a BIOS option—enable it if present.

macOS

  • macOS keyboards typically don’t have a NumLock key; external Windows-style keyboards may have their own behavior controlled in the keyboard firmware. There’s no persistent system-wide NumLock toggle in macOS.

Linux

  • Use a startup command to set NumLock at session start:
    • For systemd-based desktops, create a small script that runs numlockx on (install numlockx from your distro).
    • Add the script to your desktop environment’s autostart entries (e.g., ~/.config/autostart).
  • Some display managers (LightDM, GDM) have settings or greeters where NumLock can be enabled by default.

If it still resets

  • Ensure both user and default registry keys are set (Windows).
  • Check BIOS/UEFI overrides.
  • Remove or update any keyboard-management software that may toggle NumLock.
  • For remote desktop sessions, NumLock state can be influenced by client settings.

Quick checklist

  • Set InitialKeyboardIndicators = 2 (both HKCU and HKU.DEFAULT).
  • Enable NumLock in BIOS/UEFI.
  • Add numlockx on to session autostart on Linux.
  • Verify no software overrides the state.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *