[client] input: add platform-neutral keycodes

This commit is contained in:
Geoffrey McRae
2026-09-12 10:12:18 +10:00
parent 382f35e503
commit 7ea69f3d1c
26 changed files with 1412 additions and 1000 deletions

View File

@@ -23,7 +23,8 @@
#include <stdbool.h>
#include <stdint.h>
#include <linux/input.h>
#include "input/keycodes.h"
#include "common/ringbuffer.h"
#include "common/types.h"

View File

@@ -0,0 +1,199 @@
/**
* Looking Glass
* Copyright © 2017-2026 The Looking Glass Authors
* https://looking-glass.io
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc., 59
* Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _H_LG_INPUT_KEYCODES_
#define _H_LG_INPUT_KEYCODES_
/*
* Looking Glass uses the Linux input-event keycode values as its internal
* keyboard namespace. Keep these values stable: they are also consumed by
* input transports and platform backends that do not provide Linux headers.
*/
typedef enum LG_KeyCode
{
LG_KEY_RESERVED = 0,
LG_KEY_ESC = 1,
LG_KEY_1 = 2,
LG_KEY_2 = 3,
LG_KEY_3 = 4,
LG_KEY_4 = 5,
LG_KEY_5 = 6,
LG_KEY_6 = 7,
LG_KEY_7 = 8,
LG_KEY_8 = 9,
LG_KEY_9 = 10,
LG_KEY_0 = 11,
LG_KEY_MINUS = 12,
LG_KEY_EQUAL = 13,
LG_KEY_BACKSPACE = 14,
LG_KEY_TAB = 15,
LG_KEY_Q = 16,
LG_KEY_W = 17,
LG_KEY_E = 18,
LG_KEY_R = 19,
LG_KEY_T = 20,
LG_KEY_Y = 21,
LG_KEY_U = 22,
LG_KEY_I = 23,
LG_KEY_O = 24,
LG_KEY_P = 25,
LG_KEY_LEFTBRACE = 26,
LG_KEY_RIGHTBRACE = 27,
LG_KEY_ENTER = 28,
LG_KEY_LEFTCTRL = 29,
LG_KEY_A = 30,
LG_KEY_S = 31,
LG_KEY_D = 32,
LG_KEY_F = 33,
LG_KEY_G = 34,
LG_KEY_H = 35,
LG_KEY_J = 36,
LG_KEY_K = 37,
LG_KEY_L = 38,
LG_KEY_SEMICOLON = 39,
LG_KEY_APOSTROPHE = 40,
LG_KEY_GRAVE = 41,
LG_KEY_LEFTSHIFT = 42,
LG_KEY_BACKSLASH = 43,
LG_KEY_Z = 44,
LG_KEY_X = 45,
LG_KEY_C = 46,
LG_KEY_V = 47,
LG_KEY_B = 48,
LG_KEY_N = 49,
LG_KEY_M = 50,
LG_KEY_COMMA = 51,
LG_KEY_DOT = 52,
LG_KEY_SLASH = 53,
LG_KEY_RIGHTSHIFT = 54,
LG_KEY_KPASTERISK = 55,
LG_KEY_LEFTALT = 56,
LG_KEY_SPACE = 57,
LG_KEY_CAPSLOCK = 58,
LG_KEY_F1 = 59,
LG_KEY_F2 = 60,
LG_KEY_F3 = 61,
LG_KEY_F4 = 62,
LG_KEY_F5 = 63,
LG_KEY_F6 = 64,
LG_KEY_F7 = 65,
LG_KEY_F8 = 66,
LG_KEY_F9 = 67,
LG_KEY_F10 = 68,
LG_KEY_NUMLOCK = 69,
LG_KEY_SCROLLLOCK = 70,
LG_KEY_KP7 = 71,
LG_KEY_KP8 = 72,
LG_KEY_KP9 = 73,
LG_KEY_KPMINUS = 74,
LG_KEY_KP4 = 75,
LG_KEY_KP5 = 76,
LG_KEY_KP6 = 77,
LG_KEY_KPPLUS = 78,
LG_KEY_KP1 = 79,
LG_KEY_KP2 = 80,
LG_KEY_KP3 = 81,
LG_KEY_KP0 = 82,
LG_KEY_KPDOT = 83,
LG_KEY_ZENKAKUHANKAKU = 85,
LG_KEY_102ND = 86,
LG_KEY_F11 = 87,
LG_KEY_F12 = 88,
LG_KEY_RO = 89,
LG_KEY_KATAKANA = 90,
LG_KEY_HIRAGANA = 91,
LG_KEY_HENKAN = 92,
LG_KEY_KATAKANAHIRAGANA = 93,
LG_KEY_MUHENKAN = 94,
LG_KEY_KPJPCOMMA = 95,
LG_KEY_KPENTER = 96,
LG_KEY_RIGHTCTRL = 97,
LG_KEY_KPSLASH = 98,
LG_KEY_SYSRQ = 99,
LG_KEY_RIGHTALT = 100,
LG_KEY_HOME = 102,
LG_KEY_UP = 103,
LG_KEY_PAGEUP = 104,
LG_KEY_LEFT = 105,
LG_KEY_RIGHT = 106,
LG_KEY_END = 107,
LG_KEY_DOWN = 108,
LG_KEY_PAGEDOWN = 109,
LG_KEY_INSERT = 110,
LG_KEY_DELETE = 111,
LG_KEY_MUTE = 113,
LG_KEY_VOLUMEDOWN = 114,
LG_KEY_VOLUMEUP = 115,
LG_KEY_POWER = 116,
LG_KEY_KPEQUAL = 117,
LG_KEY_PAUSE = 119,
LG_KEY_KPCOMMA = 121,
LG_KEY_HANGEUL = 122,
LG_KEY_HANJA = 123,
LG_KEY_YEN = 124,
LG_KEY_LEFTMETA = 125,
LG_KEY_RIGHTMETA = 126,
LG_KEY_COMPOSE = 127,
LG_KEY_STOP = 128,
LG_KEY_AGAIN = 129,
LG_KEY_UNDO = 131,
LG_KEY_FRONT = 132,
LG_KEY_COPY = 133,
LG_KEY_OPEN = 134,
LG_KEY_PASTE = 135,
LG_KEY_FIND = 136,
LG_KEY_CUT = 137,
LG_KEY_HELP = 138,
LG_KEY_MENU = 139,
LG_KEY_CALC = 140,
LG_KEY_SLEEP = 142,
LG_KEY_WWW = 150,
LG_KEY_SCREENLOCK = 152,
LG_KEY_BACK = 158,
LG_KEY_FORWARD = 159,
LG_KEY_EJECTCD = 161,
LG_KEY_NEXTSONG = 163,
LG_KEY_PLAYPAUSE = 164,
LG_KEY_PREVIOUSSONG = 165,
LG_KEY_STOPCD = 166,
LG_KEY_REFRESH = 173,
LG_KEY_EDIT = 176,
LG_KEY_SCROLLUP = 177,
LG_KEY_SCROLLDOWN = 178,
LG_KEY_KPLEFTPAREN = 179,
LG_KEY_KPRIGHTPAREN = 180,
LG_KEY_F13 = 183,
LG_KEY_F14 = 184,
LG_KEY_F15 = 185,
LG_KEY_F16 = 186,
LG_KEY_F17 = 187,
LG_KEY_F18 = 188,
LG_KEY_F19 = 189,
LG_KEY_F20 = 190,
LG_KEY_F21 = 191,
LG_KEY_F22 = 192,
LG_KEY_F23 = 193,
LG_KEY_F24 = 194,
LG_KEY_PRINT = 210,
LG_KEY_MAX = 0x2ff,
}
LG_KeyCode;
#endif