Path: blob/main/gpu_display/src/keycode_converter/data.rs
5394 views
// Copyright 2022 The ChromiumOS Authors1// Use of this source code is governed by a BSD-style license that can be2// found in the LICENSE file.34#[derive(Debug, Clone, Copy)]5pub struct MapEntry {6pub linux_keycode: u16,7pub xkb: u32,8pub win: u32,9pub mac: u32,10}1112// Based on Chromium's chromium/chromium/ui/events/keycodes/dom/keycode_converter_data.inc.13#[cfg_attr(windows, allow(dead_code))]14pub const KEYCODE_MAP: [MapEntry; 104] = [15MapEntry {16linux_keycode: 30,17xkb: 0x0026,18win: 0x001e,19mac: 0x0000,20},21MapEntry {22linux_keycode: 48,23xkb: 0x0038,24win: 0x0030,25mac: 0x000b,26},27MapEntry {28linux_keycode: 46,29xkb: 0x0036,30win: 0x002e,31mac: 0x0008,32},33MapEntry {34linux_keycode: 32,35xkb: 0x0028,36win: 0x0020,37mac: 0x0002,38},39MapEntry {40linux_keycode: 18,41xkb: 0x001a,42win: 0x0012,43mac: 0x000e,44},45MapEntry {46linux_keycode: 33,47xkb: 0x0029,48win: 0x0021,49mac: 0x0003,50},51MapEntry {52linux_keycode: 34,53xkb: 0x002a,54win: 0x0022,55mac: 0x0005,56},57MapEntry {58linux_keycode: 35,59xkb: 0x002b,60win: 0x0023,61mac: 0x0004,62},63MapEntry {64linux_keycode: 23,65xkb: 0x001f,66win: 0x0017,67mac: 0x0022,68},69MapEntry {70linux_keycode: 36,71xkb: 0x002c,72win: 0x0024,73mac: 0x0026,74},75MapEntry {76linux_keycode: 37,77xkb: 0x002d,78win: 0x0025,79mac: 0x0028,80},81MapEntry {82linux_keycode: 38,83xkb: 0x002e,84win: 0x0026,85mac: 0x0025,86},87MapEntry {88linux_keycode: 50,89xkb: 0x003a,90win: 0x0032,91mac: 0x002e,92},93MapEntry {94linux_keycode: 49,95xkb: 0x0039,96win: 0x0031,97mac: 0x002d,98},99MapEntry {100linux_keycode: 24,101xkb: 0x0020,102win: 0x0018,103mac: 0x001f,104},105MapEntry {106linux_keycode: 25,107xkb: 0x0021,108win: 0x0019,109mac: 0x0023,110},111MapEntry {112linux_keycode: 16,113xkb: 0x0018,114win: 0x0010,115mac: 0x000c,116},117MapEntry {118linux_keycode: 19,119xkb: 0x001b,120win: 0x0013,121mac: 0x000f,122},123MapEntry {124linux_keycode: 31,125xkb: 0x0027,126win: 0x001f,127mac: 0x0001,128},129MapEntry {130linux_keycode: 20,131xkb: 0x001c,132win: 0x0014,133mac: 0x0011,134},135MapEntry {136linux_keycode: 22,137xkb: 0x001e,138win: 0x0016,139mac: 0x0020,140},141MapEntry {142linux_keycode: 47,143xkb: 0x0037,144win: 0x002f,145mac: 0x0009,146},147MapEntry {148linux_keycode: 17,149xkb: 0x0019,150win: 0x0011,151mac: 0x000d,152},153MapEntry {154linux_keycode: 45,155xkb: 0x0035,156win: 0x002d,157mac: 0x0007,158},159MapEntry {160linux_keycode: 21,161xkb: 0x001d,162win: 0x0015,163mac: 0x0010,164},165MapEntry {166linux_keycode: 44,167xkb: 0x0034,168win: 0x002c,169mac: 0x0006,170},171MapEntry {172linux_keycode: 2,173xkb: 0x000a,174win: 0x0002,175mac: 0x0012,176},177MapEntry {178linux_keycode: 3,179xkb: 0x000b,180win: 0x0003,181mac: 0x0013,182},183MapEntry {184linux_keycode: 4,185xkb: 0x000c,186win: 0x0004,187mac: 0x0014,188},189MapEntry {190linux_keycode: 5,191xkb: 0x000d,192win: 0x0005,193mac: 0x0015,194},195MapEntry {196linux_keycode: 6,197xkb: 0x000e,198win: 0x0006,199mac: 0x0017,200},201MapEntry {202linux_keycode: 7,203xkb: 0x000f,204win: 0x0007,205mac: 0x0016,206},207MapEntry {208linux_keycode: 8,209xkb: 0x0010,210win: 0x0008,211mac: 0x001a,212},213MapEntry {214linux_keycode: 9,215xkb: 0x0011,216win: 0x0009,217mac: 0x001c,218},219MapEntry {220linux_keycode: 10,221xkb: 0x0012,222win: 0x000a,223mac: 0x0019,224},225MapEntry {226linux_keycode: 11,227xkb: 0x0013,228win: 0x000b,229mac: 0x001d,230},231MapEntry {232linux_keycode: 28,233xkb: 0x0024,234win: 0x001c,235mac: 0x0024,236},237MapEntry {238linux_keycode: 1,239xkb: 0x0009,240win: 0x0001,241mac: 0x0035,242},243MapEntry {244linux_keycode: 14,245xkb: 0x0016,246win: 0x000e,247mac: 0x0033,248},249MapEntry {250linux_keycode: 15,251xkb: 0x0017,252win: 0x000f,253mac: 0x0030,254},255MapEntry {256linux_keycode: 57,257xkb: 0x0041,258win: 0x0039,259mac: 0x0031,260},261MapEntry {262linux_keycode: 12,263xkb: 0x0014,264win: 0x000c,265mac: 0x001b,266},267MapEntry {268linux_keycode: 13,269xkb: 0x0015,270win: 0x000d,271mac: 0x0018,272},273MapEntry {274linux_keycode: 26,275xkb: 0x0022,276win: 0x001a,277mac: 0x0021,278},279MapEntry {280linux_keycode: 27,281xkb: 0x0023,282win: 0x001b,283mac: 0x001e,284},285MapEntry {286linux_keycode: 43,287xkb: 0x0033,288win: 0x002b,289mac: 0x002a,290},291MapEntry {292linux_keycode: 39,293xkb: 0x002f,294win: 0x0027,295mac: 0x0029,296},297MapEntry {298linux_keycode: 40,299xkb: 0x0030,300win: 0x0028,301mac: 0x0027,302},303MapEntry {304linux_keycode: 41,305xkb: 0x0031,306win: 0x0029,307mac: 0x0032,308},309MapEntry {310linux_keycode: 51,311xkb: 0x003b,312win: 0x0033,313mac: 0x002b,314},315MapEntry {316linux_keycode: 52,317xkb: 0x003c,318win: 0x0034,319mac: 0x002f,320},321MapEntry {322linux_keycode: 53,323xkb: 0x003d,324win: 0x0035,325mac: 0x002c,326},327MapEntry {328linux_keycode: 58,329xkb: 0x0042,330win: 0x003a,331mac: 0x0039,332},333MapEntry {334linux_keycode: 119,335xkb: 0x007f,336win: 0x0045,337mac: 0xffff,338},339MapEntry {340linux_keycode: 110,341xkb: 0x0076,342win: 0xe052,343mac: 0x0072,344},345MapEntry {346linux_keycode: 102,347xkb: 0x006e,348win: 0xe047,349mac: 0x0073,350},351MapEntry {352linux_keycode: 104,353xkb: 0x0070,354win: 0xe049,355mac: 0x0074,356},357MapEntry {358linux_keycode: 111,359xkb: 0x0077,360win: 0xe053,361mac: 0x0075,362},363MapEntry {364linux_keycode: 107,365xkb: 0x0073,366win: 0xe04f,367mac: 0x0077,368},369MapEntry {370linux_keycode: 109,371xkb: 0x0075,372win: 0xe051,373mac: 0x0079,374},375MapEntry {376linux_keycode: 106,377xkb: 0x0072,378win: 0xe04d,379mac: 0x007c,380},381MapEntry {382linux_keycode: 105,383xkb: 0x0071,384win: 0xe04b,385mac: 0x007b,386},387MapEntry {388linux_keycode: 108,389xkb: 0x0074,390win: 0xe050,391mac: 0x007d,392},393MapEntry {394linux_keycode: 103,395xkb: 0x006f,396win: 0xe048,397mac: 0x007e,398},399MapEntry {400linux_keycode: 69,401xkb: 0x004d,402win: 0xe045,403mac: 0x0047,404},405MapEntry {406linux_keycode: 98,407xkb: 0x006a,408win: 0xe035,409mac: 0x004b,410},411MapEntry {412linux_keycode: 78,413xkb: 0x0056,414win: 0x004e,415mac: 0x0045,416},417MapEntry {418linux_keycode: 28,419xkb: 0x0068,420win: 0xe01c,421mac: 0x004c,422},423MapEntry {424linux_keycode: 79,425xkb: 0x0057,426win: 0x004f,427mac: 0x0053,428},429MapEntry {430linux_keycode: 80,431xkb: 0x0058,432win: 0x0050,433mac: 0x0054,434},435MapEntry {436linux_keycode: 81,437xkb: 0x0059,438win: 0x0051,439mac: 0x0055,440},441MapEntry {442linux_keycode: 75,443xkb: 0x0053,444win: 0x004b,445mac: 0x0056,446},447MapEntry {448linux_keycode: 76,449xkb: 0x0054,450win: 0x004c,451mac: 0x0057,452},453MapEntry {454linux_keycode: 77,455xkb: 0x0055,456win: 0x004d,457mac: 0x0058,458},459MapEntry {460linux_keycode: 71,461xkb: 0x004f,462win: 0x0047,463mac: 0x0059,464},465MapEntry {466linux_keycode: 72,467xkb: 0x0050,468win: 0x0048,469mac: 0x005b,470},471MapEntry {472linux_keycode: 73,473xkb: 0x0051,474win: 0x0049,475mac: 0x005c,476},477MapEntry {478linux_keycode: 82,479xkb: 0x005a,480win: 0x0052,481mac: 0x0052,482},483MapEntry {484linux_keycode: 116,485xkb: 0x007c,486win: 0xe05e,487mac: 0xffff,488},489MapEntry {490linux_keycode: 121,491xkb: 0x0081,492win: 0x007e,493mac: 0x005f,494},495MapEntry {496linux_keycode: 29,497xkb: 0x0025,498win: 0x001d,499mac: 0x003b,500},501MapEntry {502linux_keycode: 42,503xkb: 0x0032,504win: 0x002a,505mac: 0x0038,506},507MapEntry {508linux_keycode: 56,509xkb: 0x0040,510win: 0x0038,511mac: 0x003a,512},513MapEntry {514linux_keycode: 125,515xkb: 0x0085,516win: 0xe05b,517mac: 0x0037,518},519MapEntry {520linux_keycode: 97,521xkb: 0x0069,522win: 0xe01d,523mac: 0x003e,524},525MapEntry {526linux_keycode: 54,527xkb: 0x003e,528win: 0x0036,529mac: 0x003c,530},531MapEntry {532linux_keycode: 100,533xkb: 0x006c,534win: 0xe038,535mac: 0x003d,536},537MapEntry {538linux_keycode: 126,539xkb: 0x0086,540win: 0xe05c,541mac: 0x0036,542},543MapEntry {544linux_keycode: 55,545xkb: 0x003f,546win: 0x0037,547mac: 0x0043,548},549MapEntry {550linux_keycode: 83,551xkb: 0x005b,552win: 0x0053,553mac: 0x0041,554},555MapEntry {556linux_keycode: 74,557xkb: 0x0052,558win: 0x004a,559mac: 0x004e,560},561MapEntry {562linux_keycode: 59,563xkb: 0x0043,564win: 0x003b,565mac: 0x007a,566},567MapEntry {568linux_keycode: 60,569xkb: 0x0044,570win: 0x003c,571mac: 0x0078,572},573MapEntry {574linux_keycode: 61,575xkb: 0x0045,576win: 0x003d,577mac: 0x0063,578},579MapEntry {580linux_keycode: 62,581xkb: 0x0046,582win: 0x003e,583mac: 0x0076,584},585MapEntry {586linux_keycode: 63,587xkb: 0x0047,588win: 0x003f,589mac: 0x0060,590},591MapEntry {592linux_keycode: 64,593xkb: 0x0048,594win: 0x0040,595mac: 0x0061,596},597MapEntry {598linux_keycode: 65,599xkb: 0x0049,600win: 0x0041,601mac: 0x0062,602},603MapEntry {604linux_keycode: 66,605xkb: 0x004a,606win: 0x0042,607mac: 0x0064,608},609MapEntry {610linux_keycode: 67,611xkb: 0x004b,612win: 0x0043,613mac: 0x0065,614},615MapEntry {616linux_keycode: 68,617xkb: 0x004c,618win: 0x0044,619mac: 0x006d,620},621MapEntry {622linux_keycode: 87,623xkb: 0x005f,624win: 0x0057,625mac: 0x0067,626},627MapEntry {628linux_keycode: 88,629xkb: 0x0060,630win: 0x0058,631mac: 0x006f,632},633MapEntry {634linux_keycode: 117,635xkb: 0x007d,636win: 0x0059,637mac: 0x0051,638},639];640641642