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