Documentation
¶
Index ¶
Constants ¶
const ( DeviceName = "Zaparoo" DefaultTimeout = 40 * time.Millisecond )
Variables ¶
var GamepadMap = map[string]int{ "^": uinput.ButtonDpadUp, "{up}": uinput.ButtonDpadUp, "v": uinput.ButtonDpadUp, "V": uinput.ButtonDpadDown, "{down}": uinput.ButtonDpadDown, "<": uinput.ButtonDpadLeft, "{left}": uinput.ButtonDpadLeft, ">": uinput.ButtonDpadRight, "{right}": uinput.ButtonDpadRight, "A": uinput.ButtonEast, "a": uinput.ButtonEast, "{east}": uinput.ButtonEast, "B": uinput.ButtonSouth, "b": uinput.ButtonSouth, "{south}": uinput.ButtonSouth, "X": uinput.ButtonNorth, "x": uinput.ButtonNorth, "{north}": uinput.ButtonNorth, "Y": uinput.ButtonWest, "y": uinput.ButtonWest, "{west}": uinput.ButtonWest, "{start}": uinput.ButtonStart, "{select}": uinput.ButtonSelect, "{menu}": uinput.ButtonMode, "L": uinput.ButtonBumperLeft, "l": uinput.ButtonBumperLeft, "{l1}": uinput.ButtonBumperLeft, "R": uinput.ButtonBumperRight, "r": uinput.ButtonBumperRight, "{r1}": uinput.ButtonBumperRight, "{l2}": uinput.ButtonTriggerLeft, "{r2}": uinput.ButtonTriggerRight, }
Functions ¶
func ParseKeyCombo ¶ added in v2.7.0
ParseKeyCombo parses a keyboard key argument string and returns the corresponding key codes. It supports both single keys (e.g., "a", "{f9}") and combo keys with the "+" delimiter (e.g., "{ctrl+q}", "{shift+a}").
The function returns:
- codes: slice of keyboard codes ready to be used with Press() or Combo()
- isCombo: true if multiple keys detected (use Combo()), false for single key (use Press())
- error: if any key name is unknown
Examples:
- ParseKeyCombo("a") -> [30], false, nil
- ParseKeyCombo("{f9}") -> [67], false, nil
- ParseKeyCombo("{ctrl+q}") -> [29, 16], true, nil
- ParseKeyCombo("{shift+a}") -> [42, 30], true, nil
func ToGamepadCode ¶
ToGamepadCode converts a single ZapScript button symbol to a uinput code.
func ToKeyboardCode ¶
ToKeyboardCode converts a single ZapScript key symbol to a uinput code.
Types ¶
type Gamepad ¶
func NewGamepad ¶
NewGamepad returns a uinput virtual gamepad device. It takes a delay duration which is used between presses to avoid overloading the OS or user applications. This device must be closed when the service stops.
type Keyboard ¶
func NewKeyboard ¶
NewKeyboard returns a uinput virtual keyboard device. It takes a delay duration which is used between presses to avoid overloading the OS or user applications. This device must be closed when the service stops.