kopia lustrzana https://github.com/abourget/shuttle-go
303 wiersze
7.0 KiB
Go
303 wiersze
7.0 KiB
Go
package main
|
|
|
|
import "strings"
|
|
|
|
var shuttleKeys = map[string]int{
|
|
"F1": 256,
|
|
"F2": 257,
|
|
"F3": 258,
|
|
"F4": 259,
|
|
"F5": 260,
|
|
"F6": 261,
|
|
"F7": 262,
|
|
"F8": 263,
|
|
"F9": 264,
|
|
"B1": 267,
|
|
"B2": 265,
|
|
"B3": 266,
|
|
"B4": 268,
|
|
"M1": 269,
|
|
"M2": 270,
|
|
}
|
|
|
|
var otherShuttleKeys = map[string]bool{
|
|
"S-7": true,
|
|
"S-6": true,
|
|
"S-5": true,
|
|
"S-4": true,
|
|
"S-3": true,
|
|
"S-2": true,
|
|
"S-1": true,
|
|
"S0": true,
|
|
"S1": true,
|
|
"S2": true,
|
|
"S3": true,
|
|
"S4": true,
|
|
"S5": true,
|
|
"S6": true,
|
|
"S7": true,
|
|
"JogL": true,
|
|
"JogR": true,
|
|
"SlowJogL": true,
|
|
"SlowJogR": true,
|
|
}
|
|
|
|
var keyboardKeys = map[string]int{
|
|
"Esc": 1,
|
|
"1": 2,
|
|
"2": 3,
|
|
"3": 4,
|
|
"4": 5,
|
|
"5": 6,
|
|
"6": 7,
|
|
"7": 8,
|
|
"8": 9,
|
|
"9": 10,
|
|
"0": 11,
|
|
"Minus": 12,
|
|
"-": 12,
|
|
"Equal": 13,
|
|
"=": 13,
|
|
"Backspace": 14,
|
|
"Tab": 15,
|
|
"Q": 16,
|
|
"W": 17,
|
|
"E": 18,
|
|
"R": 19,
|
|
"T": 20,
|
|
"Y": 21,
|
|
"U": 22,
|
|
"I": 23,
|
|
"O": 24,
|
|
"P": 25,
|
|
"LeftBrace": 26,
|
|
"RightBrace": 27,
|
|
"{": 26,
|
|
"}": 27,
|
|
"Enter": 28,
|
|
"LeftCtrl": 29,
|
|
"Ctrl": 29,
|
|
"A": 30,
|
|
"S": 31,
|
|
"D": 32,
|
|
"F": 33,
|
|
"G": 34,
|
|
"H": 35,
|
|
"J": 36,
|
|
"K": 37,
|
|
"L": 38,
|
|
"Semicolon": 39,
|
|
";": 39,
|
|
"Apostrophe": 40,
|
|
"'": 40,
|
|
"Grave": 41,
|
|
"LeftShift": 42,
|
|
"Shift": 42,
|
|
"Backslash": 43,
|
|
"\\": 43,
|
|
"Z": 44,
|
|
"X": 45,
|
|
"C": 46,
|
|
"V": 47,
|
|
"B": 48,
|
|
"N": 49,
|
|
"M": 50,
|
|
"Comma": 51,
|
|
",": 51,
|
|
"Dot": 52,
|
|
".": 52,
|
|
"Slash": 53,
|
|
"/": 53,
|
|
"RightShift": 54,
|
|
"RShift": 54,
|
|
"KPAsterisk": 55,
|
|
"*": 55,
|
|
"LeftAlt": 56,
|
|
"Alt": 56,
|
|
"Space": 57,
|
|
"CapsLock": 58,
|
|
"F1": 59,
|
|
"F2": 60,
|
|
"F3": 61,
|
|
"F4": 62,
|
|
"F5": 63,
|
|
"F6": 64,
|
|
"F7": 65,
|
|
"F8": 66,
|
|
"F9": 67,
|
|
"F10": 68,
|
|
"NumLock": 69,
|
|
"ScrollLock": 70,
|
|
"KP7": 71,
|
|
"KP8": 72,
|
|
"KP9": 73,
|
|
"KPMinus": 74,
|
|
"KP4": 75,
|
|
"KP5": 76,
|
|
"KP6": 77,
|
|
"KPPlus": 78,
|
|
"KP1": 79,
|
|
"KP2": 80,
|
|
"KP3": 81,
|
|
"KP0": 82,
|
|
"KPDot": 83,
|
|
"F11": 87,
|
|
"F12": 88,
|
|
|
|
"Henkan": 92,
|
|
|
|
"KPEnter": 96,
|
|
"RightCtrl": 97,
|
|
"RCtrl": 97,
|
|
"RightAlt": 100,
|
|
"RAlt": 100,
|
|
"Linefeed": 101,
|
|
"Home": 102,
|
|
"Up": 103,
|
|
"PageUp": 104,
|
|
"PgUp": 104,
|
|
"Left": 105,
|
|
"Right": 106,
|
|
"End": 107,
|
|
"Down": 108,
|
|
"PageDown": 109,
|
|
"PgDown": 109,
|
|
"PgDn": 109,
|
|
"Insert": 110,
|
|
"Delete": 111,
|
|
"Macro": 112,
|
|
"Mute": 113,
|
|
"VolumeDown": 114,
|
|
"VolumeUp": 115,
|
|
"Power": 116, /*ScSystemPowerDown*/
|
|
"KPEqual": 117,
|
|
"KPPlusMinus": 118,
|
|
"Pause": 119,
|
|
"Scale": 120, /*AlCompizScale(Expose)*/
|
|
"KPComma": 121,
|
|
"LeftMeta": 125,
|
|
"Meta": 125,
|
|
"RightMeta": 126,
|
|
"RMeta": 126,
|
|
"Compose": 127,
|
|
"Stop": 128, /*AcStop*/
|
|
"Again": 129,
|
|
"Props": 130, /*AcProperties*/
|
|
"Undo": 131, /*AcUndo*/
|
|
"Front": 132,
|
|
"Copy": 133, /*AcCopy*/
|
|
"Open": 134, /*AcOpen*/
|
|
"Paste": 135, /*AcPaste*/
|
|
"Find": 136, /*AcSearch*/
|
|
"Cut": 137, /*AcCut*/
|
|
"Help": 138, /*AlIntegratedHelpCenter*/
|
|
"Menu": 139, /*Menu(ShowMenu)*/
|
|
"Calc": 140, /*AlCalculator*/
|
|
"Setup": 141,
|
|
"Sleep": 142, /*ScSystemSleep*/
|
|
"Wakeup": 143, /*SystemWakeUp*/
|
|
"File": 144, /*AlLocalMachineBrowser*/
|
|
"SendFile": 145,
|
|
"DeleteFile": 146,
|
|
"Xfer": 147,
|
|
"Prog1": 148,
|
|
"Prog2": 149,
|
|
"WWW": 150, /*AlInternetBrowser*/
|
|
"Coffee": 152, /*AlTerminalLock/Screensaver*/
|
|
"Direction": 153,
|
|
"CycleWindows": 154,
|
|
"Mail": 155,
|
|
"Bookmarks": 156, /*AcBookmarks*/
|
|
"Computer": 157,
|
|
"Back": 158, /*AcBack*/
|
|
"Forward": 159, /*AcForward*/
|
|
"CloseCD": 160,
|
|
"EjectCD": 161,
|
|
"EjectCloseCD": 162,
|
|
"NextSong": 163,
|
|
"PlayPause": 164,
|
|
"PreviousSong": 165,
|
|
"StopCD": 166,
|
|
"Record": 167,
|
|
"Rewind": 168,
|
|
"Phone": 169, /*MediaSelectTelephone*/
|
|
"ISO": 170,
|
|
"Config": 171, /*AlConsumerControlConfiguration*/
|
|
"Homepage": 172, /*AcHome*/
|
|
"Refresh": 173, /*AcRefresh*/
|
|
"Exit": 174, /*AcExit*/
|
|
"Move": 175,
|
|
"Edit": 176,
|
|
"ScrollUp": 177,
|
|
"ScrollDown": 178,
|
|
"KPLeftParen": 179,
|
|
"(": 179,
|
|
"KPRightParen": 180,
|
|
")": 180,
|
|
"New": 181, /*AcNew*/
|
|
"Redo": 182, /*AcRedo/Repeat*/
|
|
"F13": 183,
|
|
"F14": 184,
|
|
"F15": 185,
|
|
"F16": 186,
|
|
"F17": 187,
|
|
"F18": 188,
|
|
"F19": 189,
|
|
"F20": 190,
|
|
"F21": 191,
|
|
"F22": 192,
|
|
"F23": 193,
|
|
"F24": 194,
|
|
"PlayCD": 200,
|
|
"PauseCD": 201,
|
|
"Prog3": 202,
|
|
"Prog4": 203,
|
|
"Dashboard": 204, /*AlDashboard*/
|
|
"Suspend": 205,
|
|
"Close": 206, /*AcClose*/
|
|
"Play": 207,
|
|
"FastForward": 208,
|
|
"Print": 210, /*AcPrint*/
|
|
"Camera": 212,
|
|
"Sound": 213,
|
|
"Question": 214,
|
|
"Email": 215,
|
|
"Chat": 216,
|
|
"Search": 217,
|
|
"Connect": 218,
|
|
"Finance": 219, /*AlCheckbook/Finance*/
|
|
"Sport": 220,
|
|
"Shop": 221,
|
|
"AltErase": 222,
|
|
"Cancel": 223, /*AcCancel*/
|
|
"BrightnessDown": 224,
|
|
"BrightnessUp": 225,
|
|
"Media": 226,
|
|
"Send": 231, /*AcSend*/
|
|
"Reply": 232, /*AcReply*/
|
|
"ForwardMail": 233, /*AcForwardMsg*/
|
|
"Save": 234, /*AcSave*/
|
|
"Documents": 235,
|
|
"BrightnessCycle": 243, /*BrightnessUp,AfterMaxIsMin*/
|
|
"BrightnessZero": 244, /*BrightnessOff,UseAmbient*/
|
|
"DisplayOff": 245, /*DisplayDeviceToOffState*/
|
|
"Rfkill": 247, /*KeyThatControlsAllRadios*/
|
|
"Micmute": 248, /*Mute/UnmuteTheMicrophone*/
|
|
}
|
|
|
|
var reverseShuttleKeys = map[int]string{}
|
|
var keyboardKeysUpper = map[string]int{}
|
|
var otherShuttleKeysUpper = map[string]bool{}
|
|
|
|
func init() {
|
|
for k, v := range shuttleKeys {
|
|
reverseShuttleKeys[v] = k
|
|
}
|
|
for k, v := range keyboardKeys {
|
|
keyboardKeysUpper[strings.ToUpper(k)] = v
|
|
}
|
|
for k, v := range otherShuttleKeys {
|
|
otherShuttleKeysUpper[strings.ToUpper(k)] = v
|
|
}
|
|
}
|