Swapping CapsLock and Control on NT 4.0


  • In NT 4.0, installation of keyboard layouts have changed. The file layout.inf is no longer used for keyboard layouts. Instead, different layouts are setup in the registry. The regsetup.exe program will set these values for you.

  • For changing CapsLock to Control, copy kbdussw.dll to your %SystemRoot%\System32 directory, where %SystemRoot% is normally something like c:\winnt or c:\winnt4.

  • For swapping CapsLock and Left Control copy kbdussw1.dll to your %SystemRoot%\System32 directory, where %SystemRoot% is normally something like c:\winnt or c:\winnt4.

  • To use the U.S. Dvorak layout and change CapsLock to Control, copy kbdusdvsw.dll to your %SystemRoot%\System32 directory, where %SystemRoot% is normally something like c:\winnt or c:\winnt4.

  • Run regsetup.exe to set the values in the registry.
    The registry values that it sets are:

    HKEY_CURRENT_USER\Keyboard Layout\Preload

    2: REG_SZ: 00000409
    1: REG_SZ: 00060409 (or 00070409 or 00080409)

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00060409

    Layout File: REG_SZ: KBDUSSW.DLL
    Layout Text: REG_SZ: US-CapsLock is Control

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00070409

    Layout File: REG_SZ: KBDUSSW1.DLL
    Layout Text: REG_SZ: US-Swapped Left Control and CapsLock

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00080409

    Layout File: REG_SZ: KBDUSDVSW.DLL
    Layout Text: REG_SZ: US-Dvorak and CapsLock is Control

  • Now logout and log back in, and the new keyboard layout should be working. If you do anything with the keyboard settings via the control panel, you may need to rerun regsetup.exe or reset the values under HKEY_CURRENT_USER and logout and login again. If you stick with a single layout, this should work fine. To temporarily disable it, press the Left Shift-Left Alt key combination. Pressing the combination again will re-enable it.
    The previous technique changes the keyboard on a per user basis. This next one changes CapsLock to Control for all users. It requires only a change of the NT registry. To do this:
    • Start regedt32 to edit the registry.
    • Select the key HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Keyboard Layout
    • From the Edit menu, choose "Add Value".
    • Add a value named Scancode Map with type REG_BINARY.
    • Set the value to 0000000000000000020000001d003a0000000000.
    • Logout and log back in.

    Back to NT Utilities Page.