class Fusuma::Plugin::Parsers::KeypressParser
Generate KeypressRecord from libinput_command_input
Constants
- AVAILABLE_KEYS
- DEFAULT_SOURCE
Public Instance Methods
parse_record(record)
click to toggle source
@param record [String] @return [Records::Gesture, nil]
# File lib/fusuma/plugin/parsers/keypress_parser.rb, line 24 def parse_record(record) line = record.to_s # NOTE: example of line # event4 KEYBOARD_KEY +4.81s KEY_LEFTSHIFT (42) pressed # event4 KEYBOARD_KEY +4.90s KEY_LEFTSHIFT (42) released # event4 KEYBOARD_KEY +7.39s KEY_CAPSLOCK (58) pressed # event4 KEYBOARD_KEY +7.52s KEY_CAPSLOCK (58) released # event4 KEYBOARD_KEY +8.98s KEY_LEFTCTRL (29) pressed # event4 KEYBOARD_KEY +9.14s KEY_LEFTCTRL (29) released case line when /KEYBOARD_KEY.+(\d+\.\d+)s.*KEY_([A-Z]+).*(pressed|released)/ matched = Regexp.last_match # time = matched[1] # 4.81 code = matched[2] # LEFTSHIFT status = matched[3] # pressed return unless AVAILABLE_KEYS.include?(code) Events::Records::KeypressRecord.new(status: status, code: code) end end
tag()
click to toggle source
# File lib/fusuma/plugin/parsers/keypress_parser.rb, line 48 def tag 'keypress_parser' end