Accept the eighteen browser, volume, media and launch identities in the input vocabulary and both SDKs. Exercise media-key capture on the private Xorg harness, and permit only the new remember-host checkbox in the connection form integration test. Validated: affected-package race tests, Tentacles make check, private native_remote_input.py and native_remote_keys.py. Physical input, live peer interoperability, speech and Braille acceptance remain pending. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
41 lines
1.8 KiB
Go
41 lines
1.8 KiB
Go
// Copyright (c) 2026 Storm Dragon
|
|
// Authors: Storm Dragon, Angus Kola
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
package input
|
|
|
|
import "strconv"
|
|
|
|
// ValidRemoteKeyName defines the shared logical-key vocabulary. It grants no
|
|
// native capability and performs no layout/keycode lookup.
|
|
func ValidRemoteKeyName(name string) bool {
|
|
if len(name) == 1 && (name[0] >= 'a' && name[0] <= 'z' || name[0] >= '0' && name[0] <= '9') {
|
|
return true
|
|
}
|
|
if len(name) >= 2 && len(name) <= 3 && name[0] == 'F' {
|
|
number, err := strconv.Atoi(name[1:])
|
|
return err == nil && number >= 1 && number <= 24 && strconv.Itoa(number) == name[1:]
|
|
}
|
|
if len(name) == 4 && name[:3] == "KP_" && name[3] >= '0' && name[3] <= '9' {
|
|
return true
|
|
}
|
|
switch name {
|
|
case "BackSpace", "Tab", "Return", "Escape", "space", "Pause", "Print", "Menu",
|
|
"Caps_Lock", "Num_Lock", "Scroll_Lock", "Shift_L", "Shift_R", "Control_L", "Control_R",
|
|
"Alt_L", "Alt_R", "Super_L", "Super_R", "Page_Up", "Page_Down", "End", "Home",
|
|
"Left", "Up", "Right", "Down", "Insert", "Delete",
|
|
"KP_Begin", "KP_Enter", "KP_Page_Up", "KP_Page_Down", "KP_End", "KP_Home",
|
|
"KP_Left", "KP_Up", "KP_Right", "KP_Down", "KP_Insert", "KP_Delete",
|
|
"KP_Multiply", "KP_Add", "KP_Separator", "KP_Subtract", "KP_Decimal", "KP_Divide",
|
|
"semicolon", "equal", "comma", "minus", "period", "slash", "grave", "bracketleft",
|
|
"backslash", "bracketright", "apostrophe",
|
|
// Browser, volume, media and launch keys (Windows VK 0xa6-0xb7).
|
|
"XF86Back", "XF86Forward", "XF86Reload", "XF86Stop", "XF86Search", "XF86Favorites",
|
|
"XF86HomePage", "XF86AudioMute", "XF86AudioLowerVolume", "XF86AudioRaiseVolume",
|
|
"XF86AudioNext", "XF86AudioPrev", "XF86AudioStop", "XF86AudioPlay", "XF86Mail",
|
|
"XF86AudioMedia", "XF86MyComputer", "XF86Calculator":
|
|
return true
|
|
}
|
|
return false
|
|
}
|