Module: Keylogger::InputDevices

Defined in:
lib/input_devices.rb

Defined Under Namespace

Classes: Device

Constant Summary collapse

KEYBOARD_EV =
"120013".freeze
DEVICE_REGEX =
/
  N:\sName="(?<name>.+)"(\n|.)*
  H:\sHandlers=.*event(?<event_id>[0-9]+).*(\n|.)*
  B:\sEV=(?<ev>[0-9]+)
/x.freeze

Class Method Summary collapse

Class Method Details

.defaultObject

Pick the first keyboard out of the list



19
20
21
# File 'lib/input_devices.rb', line 19

def self.default
  devices.detect { |device| device.ev == KEYBOARD_EV }
end

.devicesObject



23
24
25
26
27
28
29
# File 'lib/input_devices.rb', line 23

def self.devices
  contents = File.read("/proc/bus/input/devices")
  contents.split("\n\n").map do |device|
    blob = DEVICE_REGEX.match(device).named_captures
    Device.new(blob)
  end
end

.find_by_name(name) ⇒ Object



12
13
14
15
16
# File 'lib/input_devices.rb', line 12

def self.find_by_name(name)
  devices.detect do |device|
    device.name == name && device.ev == KEYBOARD_EV
  end
end