lib/fusuma.rb in fusuma-0.2.0 vs lib/fusuma.rb in fusuma-0.2.2

- old
+ new

@@ -1,9 +1,13 @@ require_relative 'fusuma/version' require_relative 'fusuma/action_stack' require_relative 'fusuma/gesture_action' +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 'logger' require 'open3' require 'yaml' # for debug @@ -32,11 +36,11 @@ gesture_action = GestureAction.initialize_by(line, device_name) next if gesture_action.nil? @action_stack ||= ActionStack.new @action_stack.push gesture_action gesture_info = @action_stack.gesture_info - trigger_keyevent(gesture_info) unless gesture_info.nil? + gesture_info.trigger_keyevent unless gesture_info.nil? end end end private @@ -68,38 +72,8 @@ def touch_is_available?(line) return false unless line =~ /^Tap-to-click: / return false if line =~ %r{n/a} true - end - - def trigger_keyevent(gesture_info) - case gesture_info.action_type - when 'swipe' - swipe(gesture_info.finger, gesture_info.direction) - when 'pinch' - pinch(gesture_info.direction) - end - end - - def swipe(finger, direction) - shortcut = event_map['swipe'][finger.to_i][direction]['shortcut'] - `xdotool key #{shortcut}` unless shortcut.nil? - end - - def pinch(direction) - shortcut = event_map['pinch'][direction]['shortcut'] - `xdotool key #{shortcut}` unless shortcut.nil? - end - - def event_map - @event_map ||= YAML.load_file(config_file) - end - - def config_file - filename = 'fusuma/config.yml' - original_path = File.expand_path "~/.config/#{filename}" - default_path = File.expand_path "../#{filename}", __FILE__ - File.exist?(original_path) ? original_path : default_path end end end