layout_key_function.proto 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. // Copyright 2019 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. syntax = "proto2";
  5. option optimize_for = LITE_RUNTIME;
  6. package remoting.protocol;
  7. // List of key functions to identify functional (non-character-generating) keys
  8. // in the keyboard layout. This list is not meant to be exhaustive, but is meant
  9. // to include functions typically assigned to the standard keyboard keys on
  10. // common keyboard layouts.
  11. // Next ID: 64
  12. enum LayoutKeyFunction {
  13. // The key action is a function whose type is not recognized.
  14. UNKNOWN = 0;
  15. // Modifier keys
  16. CONTROL = 1;
  17. ALT = 2;
  18. SHIFT = 3;
  19. // Windows key on Windows, super on Linux.
  20. META = 4;
  21. // Level 3 shift. Commonly labeled AltGr.
  22. ALT_GR = 5;
  23. // Level 5 shift. Used on some Linux layouts. (Level 4 is AltGr + Shift.)
  24. MOD5 = 6;
  25. // On Linux, this defaults to Shift + AltGr (which is distinct from AltGr +
  26. // Shift, which accesses level 4), but it can also be assigned to
  27. // a distinct key.
  28. COMPOSE = 7;
  29. // Mac specific keys.
  30. // The option key on macOS generally acts like AltGr, but can also be used for
  31. // shortcuts like option+command+B.
  32. OPTION = 61;
  33. COMMAND = 62;
  34. // Chrome OS specific keys.
  35. // The search key on Chrome OS (aka the 'Launcher' or 'Everything' key).
  36. SEARCH = 63;
  37. // Locks
  38. NUM_LOCK = 8;
  39. CAPS_LOCK = 9;
  40. SCROLL_LOCK = 10;
  41. // Editing and navigation keys
  42. BACKSPACE = 11;
  43. ENTER = 12;
  44. TAB = 13;
  45. INSERT = 14;
  46. DELETE_ = 15;
  47. HOME = 16;
  48. END = 17;
  49. PAGE_UP = 18;
  50. PAGE_DOWN = 19;
  51. CLEAR = 20;
  52. ARROW_UP = 21;
  53. ARROW_DOWN = 22;
  54. ARROW_LEFT = 23;
  55. ARROW_RIGHT = 24;
  56. // Function keys
  57. F1 = 25;
  58. F2 = 26;
  59. F3 = 27;
  60. F4 = 28;
  61. F5 = 29;
  62. F6 = 30;
  63. F7 = 31;
  64. F8 = 32;
  65. F9 = 33;
  66. F10 = 34;
  67. F11 = 35;
  68. F12 = 36;
  69. F13 = 37;
  70. F14 = 38;
  71. F15 = 39;
  72. F16 = 40;
  73. F17 = 41;
  74. F18 = 42;
  75. F19 = 43;
  76. F20 = 44;
  77. F21 = 45;
  78. F22 = 46;
  79. F23 = 47;
  80. F24 = 48;
  81. // Other common functional keys
  82. ESCAPE = 49;
  83. CONTEXT_MENU = 50;
  84. PAUSE = 51;
  85. PRINT_SCREEN = 52;
  86. // Language-specific keys
  87. // Japanese
  88. HANKAKU_ZENKAKU_KANJI = 53; // Backquote
  89. HENKAN = 54; // Convert
  90. MUHENKAN = 55; // NonConvert
  91. KATAKANA_HIRAGANA_ROMAJI = 56; // KanaMode
  92. KANA = 57; // Lang1 (Mac keyboard)
  93. EISU = 58; // Unshifted CapsLock (Windows), Lang2 (Mac keyboard)
  94. // Korean
  95. HAN_YEONG = 59; // Lang1
  96. HANJA = 60; // Lang2
  97. }