class Fusuma::Plugin::Inputs::LibinputCommandInput

libinput commands wrapper

Attributes

pid[R]

Public Instance Methods

command() click to toggle source

@return [LibinputCommand]

# File lib/fusuma/plugin/inputs/libinput_command_input.rb, line 35
def command
  @command ||= LibinputCommand.new(
    libinput_options: libinput_options,
    commands: {
      debug_events_command: debug_events_command,
      list_devices_command: list_devices_command
    }
  )
end
config_param_types() click to toggle source
# File lib/fusuma/plugin/inputs/libinput_command_input.rb, line 13
def config_param_types
  {
    device: [String],
    'enable-dwt': [TrueClass, FalseClass],
    'enable-tap': [TrueClass, FalseClass],
    'show-keycodes': [TrueClass, FalseClass],
    verbose: [TrueClass, FalseClass],
    'libinput-debug-events': [String],
    'libinput-list-devices': [String]
  }
end
debug_events_command() click to toggle source
# File lib/fusuma/plugin/inputs/libinput_command_input.rb, line 61
def debug_events_command
  config_params(:'libinput-debug-events')
end
io() click to toggle source

@return [IO]

# File lib/fusuma/plugin/inputs/libinput_command_input.rb, line 26
def io
  @io ||= begin
    reader, writer = create_io
    @pid = command.debug_events(writer)
    reader
  end
end
libinput_options() click to toggle source

@return [Array]

# File lib/fusuma/plugin/inputs/libinput_command_input.rb, line 46
def libinput_options
  device = ("--device='#{config_params(:device)}'" if config_params(:device))
  enable_tap = '--enable-tap' if config_params(:'enable-tap')
  enable_dwt = '--enable-dwt' if config_params(:'enable-dwt')
  show_keycodes = '--show-keycodes' if config_params(:'show-keycodes')
  verbose = '--verbose' if config_params(:verbose)
  [
    device,
    enable_dwt,
    enable_tap,
    show_keycodes,
    verbose
  ].compact
end
list_devices_command() click to toggle source
# File lib/fusuma/plugin/inputs/libinput_command_input.rb, line 65
def list_devices_command
  config_params(:'libinput-list-devices')
end

Private Instance Methods

create_io() click to toggle source
# File lib/fusuma/plugin/inputs/libinput_command_input.rb, line 71
def create_io
  IO.pipe
end