Custom Keyboard Layouts in Windows 3.11

Microsoft Windows 3.11 relied on the Control Panel (specifically the International applet) and Windows Setup (SETUP.EXE) as its built-in system tools for managing and assigning keyboard layouts. While Windows 3.11 offered built-in settings to switch between predefined international keyboard layouts, it did not include a native graphical editor for designing custom keyboard mappings from scratch. Instead, achieving custom key-by-key mappings required creating custom layout dynamic-link libraries using the Windows Device Development Kit (DDK), modifying underlying MS-DOS keyboard tables, or using keystroke-redirection utilities like the Windows Macro Recorder.

Control Panel and the International Applet

The primary user-facing tool for configuring keyboard layouts within the Windows 3.11 graphical interface was the International applet, located inside the Control Panel:

  1. Open the Main program group in Program Manager.
  2. Launch the Control Panel and double-click the International icon.
  3. In the International dialog box, locate the Keyboard Layout drop-down menu.

This menu allowed users to assign installed layout drivers (such as US, UK, French, or German) to the system. While this tool allowed switching to any installed custom layout file, it did not provide an interface to alter individual key assignments directly.

Windows Setup (SETUP.EXE)

For lower-level system configuration, Windows Setup served as the alternative system utility:

  • From within Windows, running SETUP.EXE allowed users to change basic system components, including the keyboard type and layout.
  • From MS-DOS, running SETUP.EXE from the Windows installation directory allowed low-level configuration of the keyboard.typ and associated keyboard driver files before Windows initialized.

Creating Truly Custom Layouts: The Windows DDK

Because Windows 3.11 lacked an integrated visual key-mapping editor (unlike modern tools such as the Microsoft Keyboard Layout Creator), custom keyboard layouts had to be compiled externally:

  • Windows 3.1 Device Development Kit (DDK): Developers used the keyboard driver source code provided in the DDK to define custom character mapping tables and dead-key behaviors.
  • Assembly and Compilation: Modifications were made to source files (such as KEYBOARD.ASM or layout-specific definition tables) and assembled using Microsoft Macro Assembler (MASM) to produce custom .DLL or .DRV keyboard drivers (e.g., KBDUS.DLL).
  • Registration in SYSTEM.INI: Once generated, custom keyboard drivers were placed in the C:\WINDOWS\SYSTEM directory and registered under the [boot] and [keyboard] sections of the SYSTEM.INI configuration file.

Keystroke Redirection via Macro Recorder

For users needing custom key actions without compiling new driver files, Windows 3.11 included Recorder (RECORDER.EXE). This utility allowed users to record macros and bind them to specific shortcut keys or key combinations, effectively remapping standard keystrokes to alternative characters or automated command sequences within running applications.