in src/Avalonia.Base/Input/PhysicalKeyExtensions.cs [207:393]
public static string? ToQwertyKeySymbol(this PhysicalKey physicalKey, bool useShiftModifier = false)
=> physicalKey switch
{
PhysicalKey.None => null,
// Writing System Keys
PhysicalKey.Backquote => useShiftModifier ? "~" : "`",
PhysicalKey.Backslash => useShiftModifier ? "|" : "\\",
PhysicalKey.BracketLeft => useShiftModifier ? "{" : "[",
PhysicalKey.BracketRight => useShiftModifier ? "}" : "]",
PhysicalKey.Comma => useShiftModifier ? "<" : ",",
PhysicalKey.Digit0 => useShiftModifier ? ")" : "0",
PhysicalKey.Digit1 => useShiftModifier ? "!" : "1",
PhysicalKey.Digit2 => useShiftModifier ? "@" : "2",
PhysicalKey.Digit3 => useShiftModifier ? "#" : "3",
PhysicalKey.Digit4 => useShiftModifier ? "$" : "4",
PhysicalKey.Digit5 => useShiftModifier ? "%" : "5",
PhysicalKey.Digit6 => useShiftModifier ? "^" : "6",
PhysicalKey.Digit7 => useShiftModifier ? "&" : "7",
PhysicalKey.Digit8 => useShiftModifier ? "*" : "8",
PhysicalKey.Digit9 => useShiftModifier ? "(" : "9",
PhysicalKey.Equal => useShiftModifier ? "+" : "=",
PhysicalKey.IntlBackslash => useShiftModifier ? "|" : "\\",
PhysicalKey.IntlRo => null,
PhysicalKey.IntlYen => null,
PhysicalKey.A => useShiftModifier ? "A" : "a",
PhysicalKey.B => useShiftModifier ? "B" : "b",
PhysicalKey.C => useShiftModifier ? "C" : "c",
PhysicalKey.D => useShiftModifier ? "D" : "d",
PhysicalKey.E => useShiftModifier ? "E" : "e",
PhysicalKey.F => useShiftModifier ? "F" : "f",
PhysicalKey.G => useShiftModifier ? "G" : "g",
PhysicalKey.H => useShiftModifier ? "H" : "h",
PhysicalKey.I => useShiftModifier ? "I" : "i",
PhysicalKey.J => useShiftModifier ? "J" : "j",
PhysicalKey.K => useShiftModifier ? "K" : "k",
PhysicalKey.L => useShiftModifier ? "L" : "l",
PhysicalKey.M => useShiftModifier ? "M" : "m",
PhysicalKey.N => useShiftModifier ? "N" : "n",
PhysicalKey.O => useShiftModifier ? "O" : "o",
PhysicalKey.P => useShiftModifier ? "P" : "p",
PhysicalKey.Q => useShiftModifier ? "Q" : "q",
PhysicalKey.R => useShiftModifier ? "R" : "r",
PhysicalKey.S => useShiftModifier ? "S" : "s",
PhysicalKey.T => useShiftModifier ? "T" : "t",
PhysicalKey.U => useShiftModifier ? "U" : "u",
PhysicalKey.V => useShiftModifier ? "V" : "v",
PhysicalKey.W => useShiftModifier ? "W" : "w",
PhysicalKey.X => useShiftModifier ? "X" : "x",
PhysicalKey.Y => useShiftModifier ? "Y" : "y",
PhysicalKey.Z => useShiftModifier ? "Z" : "z",
PhysicalKey.Minus => useShiftModifier ? "_" : "-",
PhysicalKey.Period => useShiftModifier ? ">" : ".",
PhysicalKey.Quote => useShiftModifier ? "\"" : "'",
PhysicalKey.Semicolon => useShiftModifier ? ":" : ";",
PhysicalKey.Slash => useShiftModifier ? "?" : "/",
// Functional Keys
PhysicalKey.AltLeft => null,
PhysicalKey.AltRight => null,
PhysicalKey.Backspace => "\b",
PhysicalKey.CapsLock => null,
PhysicalKey.ContextMenu => null,
PhysicalKey.ControlLeft => null,
PhysicalKey.ControlRight => null,
PhysicalKey.Enter => "\r",
PhysicalKey.MetaLeft => null,
PhysicalKey.MetaRight => null,
PhysicalKey.ShiftLeft => null,
PhysicalKey.ShiftRight => null,
PhysicalKey.Space => " ",
PhysicalKey.Tab => "\t",
PhysicalKey.Convert => null,
PhysicalKey.KanaMode => null,
PhysicalKey.Lang1 => null,
PhysicalKey.Lang2 => null,
PhysicalKey.Lang3 => null,
PhysicalKey.Lang4 => null,
PhysicalKey.Lang5 => null,
PhysicalKey.NonConvert => null,
// Control Pad Section
PhysicalKey.Delete => null,
PhysicalKey.End => null,
PhysicalKey.Help => null,
PhysicalKey.Home => null,
PhysicalKey.Insert => null,
PhysicalKey.PageDown => null,
PhysicalKey.PageUp => null,
// Arrow Pad Section
PhysicalKey.ArrowDown => null,
PhysicalKey.ArrowLeft => null,
PhysicalKey.ArrowRight => null,
PhysicalKey.ArrowUp => null,
// Numpad Section
PhysicalKey.NumLock => null,
PhysicalKey.NumPad0 => "0",
PhysicalKey.NumPad1 => "1",
PhysicalKey.NumPad2 => "2",
PhysicalKey.NumPad3 => "3",
PhysicalKey.NumPad4 => "4",
PhysicalKey.NumPad5 => "5",
PhysicalKey.NumPad6 => "6",
PhysicalKey.NumPad7 => "7",
PhysicalKey.NumPad8 => "8",
PhysicalKey.NumPad9 => "9",
PhysicalKey.NumPadAdd => "+",
PhysicalKey.NumPadClear => null,
PhysicalKey.NumPadComma => ",",
PhysicalKey.NumPadDecimal => ".",
PhysicalKey.NumPadDivide => "/",
PhysicalKey.NumPadEnter => "\r",
PhysicalKey.NumPadEqual => "=",
PhysicalKey.NumPadMultiply => "*",
PhysicalKey.NumPadParenLeft => "(",
PhysicalKey.NumPadParenRight => ")",
PhysicalKey.NumPadSubtract => "-",
// Function Section
PhysicalKey.Escape => "\u001B",
PhysicalKey.F1 => null,
PhysicalKey.F2 => null,
PhysicalKey.F3 => null,
PhysicalKey.F4 => null,
PhysicalKey.F5 => null,
PhysicalKey.F6 => null,
PhysicalKey.F7 => null,
PhysicalKey.F8 => null,
PhysicalKey.F9 => null,
PhysicalKey.F10 => null,
PhysicalKey.F11 => null,
PhysicalKey.F12 => null,
PhysicalKey.F13 => null,
PhysicalKey.F14 => null,
PhysicalKey.F15 => null,
PhysicalKey.F16 => null,
PhysicalKey.F17 => null,
PhysicalKey.F18 => null,
PhysicalKey.F19 => null,
PhysicalKey.F20 => null,
PhysicalKey.F21 => null,
PhysicalKey.F22 => null,
PhysicalKey.F23 => null,
PhysicalKey.F24 => null,
PhysicalKey.PrintScreen => null,
PhysicalKey.ScrollLock => null,
PhysicalKey.Pause => null,
// Media Keys
PhysicalKey.BrowserBack => null,
PhysicalKey.BrowserFavorites => null,
PhysicalKey.BrowserForward => null,
PhysicalKey.BrowserHome => null,
PhysicalKey.BrowserRefresh => null,
PhysicalKey.BrowserSearch => null,
PhysicalKey.BrowserStop => null,
PhysicalKey.Eject => null,
PhysicalKey.LaunchApp1 => null,
PhysicalKey.LaunchApp2 => null,
PhysicalKey.LaunchMail => null,
PhysicalKey.MediaPlayPause => null,
PhysicalKey.MediaSelect => null,
PhysicalKey.MediaStop => null,
PhysicalKey.MediaTrackNext => null,
PhysicalKey.MediaTrackPrevious => null,
PhysicalKey.Power => null,
PhysicalKey.Sleep => null,
PhysicalKey.AudioVolumeDown => null,
PhysicalKey.AudioVolumeMute => null,
PhysicalKey.AudioVolumeUp => null,
PhysicalKey.WakeUp => null,
// Legacy Keys
PhysicalKey.Again => null,
PhysicalKey.Copy => null,
PhysicalKey.Cut => null,
PhysicalKey.Find => null,
PhysicalKey.Open => null,
PhysicalKey.Paste => null,
PhysicalKey.Props => null,
PhysicalKey.Select => null,
PhysicalKey.Undo => null,
_ => null
};