-
Notifications
You must be signed in to change notification settings - Fork 28
/
config.lua
144 lines (128 loc) · 6.71 KB
/
config.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
require "keys"
require "rfbkeys"
-- comment out the following line on a KDX
set_k3_keycodes()
-- variables client_width and client_height will be available when handleInput() is called
client_width = 0
client_height = 0
--[[
you have also the following API functions:
Quit( [status] )
will quit the application. optional: return code (must be positive)
SendKeyEvent( keyCode, pressed )
sends a key event to the rfb server. "pressed" is a bool value
telling whether the key was pressed (true) or released (false)
SendPointerEvent( x, y, buttonMask )
sends a pointer event to the rfb server
]]--
-- globals for remembering key state
shift = false
sym = false
-- this handler will be called upon key presses (input events, actually)
function handleInput(channel, itype, code, value)
--print("input:", channel, itype, code, value)
if itype == EV_KEY then
local pressed = false
if value == EVENT_VALUE_KEY_PRESS then
pressed = true
elseif value == EVENT_VALUE_KEY_RELEASE then
pressed = false
else
return -- we don't know how to handle this.
end
-- will toggle state
if code == KEY_SYM then sym = pressed
elseif code == KEY_SHIFT then shift = pressed
-- number keys, not present on K3
elseif code == KEY_1 then SendKeyEvent(XK_1, pressed)
elseif code == KEY_2 then SendKeyEvent(XK_2, pressed)
elseif code == KEY_3 then SendKeyEvent(XK_3, pressed)
elseif code == KEY_4 then SendKeyEvent(XK_4, pressed)
elseif code == KEY_5 then SendKeyEvent(XK_5, pressed)
elseif code == KEY_6 then SendKeyEvent(XK_6, pressed)
elseif code == KEY_7 then SendKeyEvent(XK_7, pressed)
elseif code == KEY_8 then SendKeyEvent(XK_8, pressed)
elseif code == KEY_9 then SendKeyEvent(XK_9, pressed)
elseif code == KEY_0 then SendKeyEvent(XK_0, pressed)
-- letter keys
elseif not shift and code == KEY_Q then SendKeyEvent(XK_q, pressed)
elseif not shift and code == KEY_W then SendKeyEvent(XK_w, pressed)
elseif not shift and code == KEY_E then SendKeyEvent(XK_e, pressed)
elseif not shift and code == KEY_R then SendKeyEvent(XK_r, pressed)
elseif not shift and code == KEY_T then SendKeyEvent(XK_t, pressed)
elseif not shift and code == KEY_Y then SendKeyEvent(XK_y, pressed)
elseif not shift and code == KEY_U then SendKeyEvent(XK_u, pressed)
elseif not shift and code == KEY_I then SendKeyEvent(XK_i, pressed)
elseif not shift and code == KEY_O then SendKeyEvent(XK_o, pressed)
elseif not shift and code == KEY_P then SendKeyEvent(XK_p, pressed)
elseif not shift and code == KEY_A then SendKeyEvent(XK_a, pressed)
elseif not shift and code == KEY_S then SendKeyEvent(XK_s, pressed)
elseif not shift and code == KEY_D then SendKeyEvent(XK_d, pressed)
elseif not shift and code == KEY_F then SendKeyEvent(XK_f, pressed)
elseif not shift and code == KEY_G then SendKeyEvent(XK_g, pressed)
elseif not shift and code == KEY_H then SendKeyEvent(XK_h, pressed)
elseif not shift and code == KEY_J then SendKeyEvent(XK_j, pressed)
elseif not shift and code == KEY_K then SendKeyEvent(XK_k, pressed)
elseif not shift and code == KEY_L then SendKeyEvent(XK_l, pressed)
elseif not shift and code == KEY_Z then SendKeyEvent(XK_z, pressed)
elseif not shift and code == KEY_X then SendKeyEvent(XK_x, pressed)
elseif not shift and code == KEY_C then SendKeyEvent(XK_c, pressed)
elseif not shift and code == KEY_V then SendKeyEvent(XK_v, pressed)
elseif not shift and code == KEY_B then SendKeyEvent(XK_b, pressed)
elseif not shift and code == KEY_N then SendKeyEvent(XK_n, pressed)
elseif not shift and code == KEY_M then SendKeyEvent(XK_m, pressed)
elseif shift and code == KEY_Q then SendKeyEvent(XK_Q, pressed)
elseif shift and code == KEY_W then SendKeyEvent(XK_W, pressed)
elseif shift and code == KEY_E then SendKeyEvent(XK_E, pressed)
elseif shift and code == KEY_R then SendKeyEvent(XK_R, pressed)
elseif shift and code == KEY_T then SendKeyEvent(XK_T, pressed)
elseif shift and code == KEY_Y then SendKeyEvent(XK_Y, pressed)
elseif shift and code == KEY_U then SendKeyEvent(XK_U, pressed)
elseif shift and code == KEY_I then SendKeyEvent(XK_I, pressed)
elseif shift and code == KEY_O then SendKeyEvent(XK_O, pressed)
elseif shift and code == KEY_P then SendKeyEvent(XK_P, pressed)
elseif shift and code == KEY_A then SendKeyEvent(XK_A, pressed)
elseif shift and code == KEY_S then SendKeyEvent(XK_S, pressed)
elseif shift and code == KEY_D then SendKeyEvent(XK_D, pressed)
elseif shift and code == KEY_F then SendKeyEvent(XK_F, pressed)
elseif shift and code == KEY_G then SendKeyEvent(XK_G, pressed)
elseif shift and code == KEY_H then SendKeyEvent(XK_H, pressed)
elseif shift and code == KEY_J then SendKeyEvent(XK_J, pressed)
elseif shift and code == KEY_K then SendKeyEvent(XK_K, pressed)
elseif shift and code == KEY_L then SendKeyEvent(XK_L, pressed)
elseif shift and code == KEY_Z then SendKeyEvent(XK_Z, pressed)
elseif shift and code == KEY_X then SendKeyEvent(XK_X, pressed)
elseif shift and code == KEY_C then SendKeyEvent(XK_C, pressed)
elseif shift and code == KEY_V then SendKeyEvent(XK_V, pressed)
elseif shift and code == KEY_B then SendKeyEvent(XK_B, pressed)
elseif shift and code == KEY_N then SendKeyEvent(XK_N, pressed)
elseif shift and code == KEY_M then SendKeyEvent(XK_M, pressed)
-- other keys
elseif not shift and code == KEY_DEL then SendKeyEvent(XK_Delete, pressed)
elseif shift and code == KEY_DEL then SendKeyEvent(XK_BackSpace, pressed)
elseif code == KEY_DOT then SendKeyEvent(XK_period, pressed)
elseif code == KEY_SLASH then SendKeyEvent(XK_slash, pressed)
elseif code == KEY_ENTER then SendKeyEvent(XK_Return, pressed)
elseif code == KEY_SPACE then SendKeyEvent(XK_space, pressed)
elseif code == KEY_ALT then SendKeyEvent(XK_Alt_L, pressed)
elseif code == KEY_AA then SendKeyEvent(XK_Control_L, pressed)
-- special keys
--elseif code == KEY_VPLUS then SendKeyEvent(XK_, pressed)
--elseif code == KEY_VMINUS then SendKeyEvent(XK_, pressed)
elseif code == KEY_HOME then
Quit()
elseif code == KEY_PGBCK then SendKeyEvent(XK_Escape, pressed)
elseif code == KEY_PGFWD then SendKeyEvent(XK_Tab, pressed)
-- the following two exist only on K3
elseif code == KEY_LPGBCK then SendKeyEvent(XK_Escape, pressed)
elseif code == KEY_LPGFWD then SendKeyEvent(XK_Tab, pressed)
--elseif code == KEY_MENU then SendKeyEvent(XK_, pressed)
--elseif code == KEY_BACK then SendKeyEvent(XK_, pressed)
elseif code == KEY_FW_LEFT then SendKeyEvent(XK_Left, pressed)
elseif code == KEY_FW_RIGHT then SendKeyEvent(XK_Right, pressed)
elseif code == KEY_FW_UP then SendKeyEvent(XK_Up, pressed)
elseif code == KEY_FW_DOWN then SendKeyEvent(XK_Down, pressed)
elseif code == KEY_FW_PRESS then SendKeyEvent(XK_Return, pressed)
end
end
end