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