Files

General

File nameExplanation
physical_key_data.jsonContains the merged physical key data from all the other sources. This file is regenerated if “--collect” is specified for the gen_keycodes script, or used as a source otherwise.
logical_key_data.jsonContains the merged logical key data from all the other sources. This file is regenerated if “--collect” is specified for the gen_keycodes script, or used as a source otherwise.
supplemental_hid_codes.incA supplementary HID list on top of Chromium‘s list of HID codes for extra physical keys. Certain entries may also overwrite Chromium’s corresponding entries.
supplemental_key_data.incA supplementary key list on top of Chromium's list of keys for extra logical keys.
chromium_modifiers.jsonMaps the web‘s key for modifier keys to the names of the logical keys for these keys’ left and right variations.This is used when generating logical keys to provide independent values for sided logical keys. Web uses the same key for modifier keys of different sides, but Flutter's logical key model treats them as different keys.
printable.jsonMaps Flutter key name to its printable character. This character is used as the key label.
synonyms.jsonMaps pseudo-keys that represent other keys to the sets of keys they represent. For example, this contains the “shift” key that represents either a “shiftLeft” or “shiftRight” key.

Framework

File nameExplanation
keyboard_key.tmplThe template for keyboard_key.dart.
keyboard_maps.tmplThe template for keyboard_maps.dart.

Android

File nameExplanation
android_keyboard_map_java.tmplThe template for KeyboardMap.java.
android_key_name_to_name.jsonMaps a logical key name to the names of its corresponding keycode constants. This is used to convert logical keys.

iOS

File nameExplanation
ios_logical_to_physical.jsonMaps a logical key name to the names of its corresponding physical keys. This is used to derive logical keys (from keyCode) that can‘t or shouldn’t be derived from characterIgnoringModifiers.
ios_key_code_map_mm.tmplThe template for KeyCodeMap.mm.

Web

File nameExplanation
web_key_map_dart.tmplThe template for key_map.dart.
web_logical_location_mapping.jsonMaps a pair of the web's key and location to the name for its corresponding logical key. This is used to distinguish between logical keys with the same key but different locations.

Windows

File nameExplanation
windows_flutter_key_map_cc.tmplThe template for flutter_key_map.cc.
windows_logical_to_window_vk.jsonMaps a logical key name to the names of its corresponding virtual keys in Win32.
windows_scancode_logical_map.jsonMaps a physical key name to a logical key name. This is used to when a keycode maps to multiple keys (including when the keycode is 0), therefore can only be told apart by the scan code.

Linux (GTK)

File nameExplanation
gtk_key_mapping_cc.tmplThe template for key_mapping.cc.
gtk_lock_bit_mapping.jsonMaps a name for GTK‘s modifier bit macro to Flutter’s logical name (element #0) and physical name (element #1). This is used to generate checked keys that GTK should keep lock state synchronous on.
gtk_logical_name_mapping.jsonMaps a logical key name to the macro names of its corresponding keyvals. This is used to convert logical keys.
gtk_modifier_bit_mapping.jsonMaps a name for GTK‘s modifier bit macro to Flutter’s physical name (element #0), logical name (element #1), and the logical name for the paired key (element #2). This is used to generate checked keys where GTK should keep the pressed state synchronized.
gtk_numpad_shift.jsonMaps the name of a keyval macro of a numpad key to that of the corresponding key with NumLock on. GTK uses different keyval for numpad keys with and without NumLock on, but Flutter's logical key model treats them as the same key.

Linux (GLFW)

File nameExplanation
glfw_key_name_to_name.jsonMaps a logical key name to the names of its GLFW macro. (Unused for now.)
glfw_keyboard_map_cc.tmplThe template for keyboard_map.cc. (Unused for now.)

macOS

File nameExplanation
macos_key_code_map_cc.tmplThe template for KeyCodeMap.mm.
macos_logical_to_physical.jsonMaps a logical key name to the names of its corresponding physical keys. This is used to derive logical keys (from keyCode) that can‘t or shouldn’t be derived from characterIgnoringModifiers.

Fuchsia

File nameExplanation
fuchsia_keyboard_map_cc.tmplThe template for keyboard_map.cc. (Unused for now.)