mk_modmap
Create keyboard mapping tables
SYNOPSIS
mk_modmap [OPTION]... [KEYMAP_FILE]
PARAMETERS
KEYMAP_FILE
The path to the input keymap file that defines keyboard mappings. If this argument is omitted, mk_modmap reads the keymap data from standard input (stdin).
--help
Displays a help message and exits.
--version
Outputs version information and exits.
DESCRIPTION
The mk_modmap command is a utility from the kbd package used to generate a modmap file from a given keymap file. It defines how modifier keys (like Shift, Alt, Ctrl) interact with other keys for the Linux console (text-mode) environment. This tool reads the specified keymap file (or standard input if no file is provided) and outputs the resulting modmap data to standard output. It's essential for configuring low-level keyboard behavior outside of a graphical desktop environment.
CAVEATS
mk_modmap is primarily designed for configuring keyboard layouts in the Linux console (text mode) and is not directly used for the X Window System (graphical environment), which uses its own keyboard configuration mechanisms (e.g., XKB).
While still functional, its direct use might be less common in modern desktop Linux distributions where graphical tools or high-level configuration utilities often abstract these low-level details. Systemd's localectl command also offers consolidated keyboard layout management.
PURPOSE OF MODMAP FILES
Modmap files define which modifier keys (such as Shift, Alt, Ctrl, and others) are associated with specific keycodes and how these modifiers interact with other keys. They are crucial for the Linux kernel to correctly interpret keyboard input, allowing for combinations like Alt+F1 or Ctrl+C to function as intended.
USAGE EXAMPLE
To generate a modmap from an existing keymap file and view its content:
mk_modmap my_keymap.map
To save the generated modmap to a file:
mk_modmap my_keymap.map > my_modmap.mod
HISTORY
mk_modmap is a long-standing component of the kbd package, a collection of utilities for keyboard and console management on Linux. Its development has been intertwined with the evolution of console keyboard configuration, offering a way to programmatically derive modifier key behavior from the more comprehensive keymap definitions. It has been particularly relevant in scenarios requiring precise control over keyboard layouts in text-only environments or embedded systems since the early days of Linux.