module

HIDKeyboard

HID Keyboard Module for USB Gadget functionality

Constants

KMOD = {"ctrl" => 1_u8, "left-ctrl" => 1_u8, "right-ctrl" => 16_u8, "shift" => 2_u8, "left-shift" => 2_u8, "right-shift" => 32_u8, "alt" => 4_u8, "left-alt" => 4_u8, "right-alt" => 64_u8, "meta" => 8_u8, "left-meta" => 8_u8, "right-meta" => 128_u8}

Key modifier mappings

KVAL = {"1" => 30_u8, "2" => 31_u8, "3" => 32_u8, "4" => 33_u8, "5" => 34_u8, "6" => 35_u8, "7" => 36_u8, "8" => 37_u8, "9" => 38_u8, "0" => 39_u8, "-" => 45_u8, "=" => 46_u8, "[" => 47_u8, "]" => 48_u8, "\\" => 49_u8, ";" => 51_u8, "'" => 52_u8, "`" => 53_u8, "," => 54_u8, "." => 55_u8, "/" => 56_u8, "!" => 30_u8, "@" => 31_u8, "#" => 32_u8, "$" => 33_u8, "%" => 34_u8, "^" => 35_u8, "&" => 36_u8, "*" => 37_u8, "(" => 38_u8, ")" => 39_u8, "_" => 45_u8, "+" => 46_u8, "{" => 47_u8, "}" => 48_u8, "|" => 49_u8, ":" => 51_u8, "\"" => 52_u8, "~" => 53_u8, "<" => 54_u8, ">" => 55_u8, "?" => 56_u8, "enter" => 40_u8, "return" => 40_u8, "esc" => 41_u8, "escape" => 41_u8, "backspace" => 42_u8, "tab" => 43_u8, "space" => 44_u8, "spacebar" => 44_u8, "caps-lock" => 57_u8, "f1" => 58_u8, "f2" => 59_u8, "f3" => 60_u8, "f4" => 61_u8, "f5" => 62_u8, "f6" => 63_u8, "f7" => 64_u8, "f8" => 65_u8, "f9" => 66_u8, "f10" => 67_u8, "f11" => 68_u8, "f12" => 69_u8, "insert" => 73_u8, "home" => 74_u8, "pageup" => 75_u8, "delete" => 76_u8, "del" => 76_u8, "end" => 77_u8, "pagedown" => 78_u8, "right" => 79_u8, "left" => 80_u8, "down" => 81_u8, "up" => 82_u8, "num-lock" => 83_u8, "kp-enter" => 88_u8}

Special key value mappings

Log = ::Log.for(self)

Class methods

create_keyboard_report(keys : Array(String), modifiers : Array(String) = [] of String) : Bytes
Source
send_keyboard_report(device_path : String, report : Bytes)
Source
send_text(device_path : String, text : String)
Source