Keyboard class of PicoRuby
Include
Type aliases
key_event_t
{
row: Integer,
col: Integer,
keycode: Integer,
modifier: Integer,
pressed: bool
}
combo_entry_t
{
keycodes: Array[Integer],
action: Integer
}
combo_buffer_entry_t
{
key_pos: [Integer, Integer],
pressed_at: Integer,
keycode: Integer
}
injected_event_t
{
row: Integer,
col: Integer,
pressed: bool
}
Singleton methods
new
Keyboard.new(Array[Integer] row_pins, Array[Integer] col_pins, ?debounce_ms: Integer, ?keymap_rows: Integer?, ?keymap_cols: Integer?) -> void
Instance methods
add_combo
instance.add_combo(Array[Integer] keycodes, Integer action) -> void
add_macro
instance.add_macro(String string) -> Integer
combo_reference_layer=
instance.combo_reference_layer=(Symbol? layer_name) -> (Integer | nil)
combo_term_ms=
instance.combo_term_ms=(Integer value) -> Integer
default_layer=
instance.default_layer=(Symbol name) -> void
get_layer
instance.get_layer(Symbol name) -> Array[Integer]?
inject_event
instance.inject_event(Integer row, Integer col, bool pressed) -> void
layer
instance.layer(?Symbol name) { (self) -> untyped } -> void
on_tick
instance.on_tick() { (Keyboard) -> void } -> void
repush_threshold_ms=
instance.repush_threshold_ms=(Integer value) -> Integer
start
instance.start() { (key_event_t) -> void } -> void
tap_threshold_ms=
instance.tap_threshold_ms=(Integer value) -> Integer
Attr accessors
layer_names (reader)
instance.layer_names -> Array[Symbol]
layout (reader)
instance.layout -> Array[Array[Integer]]
keys_pressed (reader)
instance.keys_pressed -> Hash[[Integer, Integer], bool]