fusuma 0.2.3 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 216f8562a1a8273c5067e09b85d558669ad8b929
4
- data.tar.gz: 19dd9a739ae9e3050dc5ac121d66499b3c084000
3
+ metadata.gz: fc1ccc23a12924fc5af5527efd39b3561cad0023
4
+ data.tar.gz: 69321805a249c2a3a6fcc6209eccf439d0d1039e
5
5
  SHA512:
6
- metadata.gz: a0c05bba807ab4569b2de22142713cc1a45c66b783e90785c7195bf58e39249a4d6b31a7a1ad72cb16b7275e62ad896a579c1fb214de4187f1b0df7cdb93ddc3
7
- data.tar.gz: 07d4d793259309e26b5809cd5d8d7005ccb36b2de07dc6595e3a28ac17b45572e24ef77871549198085e3d90804a1f52c76bcbe103abfeea7537400589fdab82
6
+ metadata.gz: 99f14ae299cd0f106df6b5504d7787101f8ac7e399c671726baaf8e750189882d4f99294c965a67ff460d7ed177ee4cfea6b86f69638fe2076f72f9f3f9ee4ed
7
+ data.tar.gz: 6d0c33ad2b6e63a838b0985f8f3fbd46926c248c1456ec2bd8de9b9de7ea34f86517f83be262afe484f3661ab6f7d9ade81757f14bd61aa79f9d137931b9f842
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Fusuma
1
+ # Fusuma [![Gem Version](https://badge.fury.io/rb/fusuma.svg)](https://badge.fury.io/rb/fusuma)
2
2
 
3
3
  Fusuma is multitouch gesture recognizer.
4
4
  This gem makes your linux PC able to recognize swipes or pinchs and assign shortcuts to them.
@@ -30,9 +30,15 @@ Install Fusuma:
30
30
 
31
31
  $ fusuma
32
32
 
33
+ ## Update
34
+
35
+ $ gem update fusuma
36
+
33
37
  ## Customize
34
38
 
35
- You can customize the settings for gestues to put and edit `~/.config/fusuma/config.yml`.
39
+ You can customize the settings for gestures to put and edit `~/.config/fusuma/config.yml`.
40
+ *NOTE*: You will need to create the `~.config/fusuma` directory if it doesn't exist yet.
41
+
36
42
 
37
43
  ### Sample (default keymap for Elementary OS)
38
44
 
@@ -7,8 +7,6 @@ require "fusuma"
7
7
  # with your gem easier. You can also use a different console, if you like.
8
8
 
9
9
  # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start
10
+ require "pry"
11
+ require "pry-byebug"
12
+ Pry.start
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency 'bundler', '~> 1.13'
25
25
  spec.add_development_dependency 'rake', '~> 10.0'
26
26
  spec.add_development_dependency 'rspec', '~> 3.0'
27
+ spec.add_development_dependency 'pry'
27
28
  spec.add_development_dependency 'pry-byebug'
28
29
  spec.add_development_dependency 'rubocop'
29
30
  end
@@ -10,9 +10,6 @@ require 'logger'
10
10
  require 'open3'
11
11
  require 'yaml'
12
12
 
13
- # for debug
14
- # require 'pry-byebug'
15
-
16
13
  # this is top level module
17
14
  module Fusuma
18
15
  # main class
@@ -33,7 +30,7 @@ module Fusuma
33
30
  def read_libinput
34
31
  Open3.popen3(libinput_command) do |_i, o, _e, _w|
35
32
  o.each do |line|
36
- gesture_action = GestureAction.initialize_by(line, device_name)
33
+ gesture_action = GestureAction.initialize_by(line, device_names)
37
34
  next if gesture_action.nil?
38
35
  @action_stack ||= ActionStack.new
39
36
  @action_stack.push gesture_action
@@ -46,28 +43,34 @@ module Fusuma
46
43
  private
47
44
 
48
45
  def libinput_command
46
+ return @libinput_command if @libinput_command
49
47
  # NOTE: --enable-dwt means "disable while typing"
50
- @libinput_command ||= "stdbuf -oL -- libinput-debug-events --device \
51
- /dev/input/#{device_name} --enable-dwt"
48
+ prefix = 'stdbuf -oL --'
49
+ command = 'libinput-debug-events --enable-dwt'
50
+ device_option = if device_names.size == 1
51
+ "--device /dev/input/#{device_names.first}"
52
+ end
53
+ @libinput_command = [prefix, command, device_option].join(' ')
52
54
  MultiLogger.debug(libinput_command: @libinput_command)
53
55
  @libinput_command
54
56
  end
55
57
 
56
- def device_name
57
- return @device_name unless @device_name.nil?
58
- Open3.popen3('libinput-list-devices') do |_i, o, _e, _w|
59
- o.each do |line|
58
+ def device_names
59
+ @device_names ||= Open3.popen3('libinput-list-devices') do |_i, o, _e, _w|
60
+ device_names = []
61
+ o.map do |line|
60
62
  MultiLogger.debug(line)
61
- extracted_input_device_from(line)
63
+ device_name = extracted_input_device_from(line)
64
+ device_names << device_name unless device_name.nil?
62
65
  next unless touch_is_available?(line)
63
- return @device_name
66
+ device_names.pop
64
67
  end
65
- end
68
+ end.compact
66
69
  end
67
70
 
68
71
  def extracted_input_device_from(line)
69
72
  return unless line =~ /^Kernel: /
70
- @device_name = line.match(/event[0-9]+/).to_s
73
+ line.match(/event[0-9]+/).to_s
71
74
  end
72
75
 
73
76
  def touch_is_available?(line)
@@ -13,8 +13,10 @@ module Fusuma
13
13
  :move_x, :move_y, :zoom
14
14
 
15
15
  class << self
16
- def initialize_by(line, device_name)
17
- return unless line.to_s =~ /^\s?#{device_name}/
16
+ def initialize_by(line, device_names)
17
+ return if device_names.none? do |device_name|
18
+ line.to_s =~ /^\s?#{device_name}/
19
+ end
18
20
  return if line.to_s =~ /_BEGIN/
19
21
  return unless line.to_s =~ /GESTURE_SWIPE|GESTURE_PINCH/
20
22
  time, action, finger, directions = gesture_action_arguments(line)
@@ -1,3 +1,3 @@
1
1
  module Fusuma
2
- VERSION = '0.2.3'.freeze
2
+ VERSION = '0.2.5'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fusuma
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - iberianpig
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-01-01 00:00:00.000000000 Z
11
+ date: 2017-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: pry-byebug
57
71
  requirement: !ruby/object:Gem::Requirement