lib/fusuma.rb in fusuma-0.3.3 vs lib/fusuma.rb in fusuma-0.3.4

- old
+ new

@@ -4,10 +4,11 @@ require_relative 'fusuma/gesture_info' require_relative 'fusuma/swipe.rb' require_relative 'fusuma/pinch.rb' require_relative 'fusuma/multi_logger' require_relative 'fusuma/config.rb' +require_relative 'fusuma/device.rb' require 'logger' require 'open3' require 'yaml' # this is top level module @@ -33,60 +34,31 @@ end def read_libinput Open3.popen3(libinput_command) do |_i, o, _e, _w| o.each do |line| - gesture_action = GestureAction.initialize_by(line, device_names) + gesture_action = GestureAction.initialize_by(line, Device.names) next if gesture_action.nil? @action_stack ||= ActionStack.new @action_stack.push gesture_action gesture_info = @action_stack.gesture_info gesture_info.trigger_keyevent unless gesture_info.nil? end end end - def device_names - return @device_names unless @device_names.nil? - names = [] - @device_names = list_devices_logs.map do |line| - MultiLogger.debug(line) - name = extracted_input_device_from(line) - names << name unless name.nil? - next unless natural_scroll_is_available?(line) - names.pop - end.compact - end - private - def list_devices_logs - Open3.popen3('libinput-list-devices') do |_i, o, _e, _w| - return o.to_a - end - end - def libinput_command return @libinput_command if @libinput_command # NOTE: --enable-dwt means "disable while typing" prefix = 'stdbuf -oL --' command = 'libinput-debug-events --enable-dwt' - device_option = if device_names.size == 1 - "--device /dev/input/#{device_names.first}" + device_option = if Device.names.size == 1 + "--device /dev/input/#{Device.names.first}" end @libinput_command = [prefix, command, device_option].join(' ') MultiLogger.debug(libinput_command: @libinput_command) @libinput_command - end - - def extracted_input_device_from(line) - return unless line =~ /^Kernel: / - line.match(/event[0-9]+/).to_s - end - - def natural_scroll_is_available?(line) - return false unless line =~ /^Nat.scrolling: / - return false if line =~ %r{n/a} - true end end end