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 +4 -4
- data/README.md +8 -2
- data/bin/console +3 -5
- data/fusuma.gemspec +1 -0
- data/lib/fusuma.rb +17 -14
- data/lib/fusuma/gesture_action.rb +4 -2
- data/lib/fusuma/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fc1ccc23a12924fc5af5527efd39b3561cad0023
|
|
4
|
+
data.tar.gz: 69321805a249c2a3a6fcc6209eccf439d0d1039e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 99f14ae299cd0f106df6b5504d7787101f8ac7e399c671726baaf8e750189882d4f99294c965a67ff460d7ed177ee4cfea6b86f69638fe2076f72f9f3f9ee4ed
|
|
7
|
+
data.tar.gz: 6d0c33ad2b6e63a838b0985f8f3fbd46926c248c1456ec2bd8de9b9de7ea34f86517f83be262afe484f3661ab6f7d9ade81757f14bd61aa79f9d137931b9f842
|
data/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Fusuma
|
|
1
|
+
# Fusuma [](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
|
|
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
|
|
data/bin/console
CHANGED
|
@@ -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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
require "irb"
|
|
14
|
-
IRB.start
|
|
10
|
+
require "pry"
|
|
11
|
+
require "pry-byebug"
|
|
12
|
+
Pry.start
|
data/fusuma.gemspec
CHANGED
|
@@ -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
|
data/lib/fusuma.rb
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
51
|
-
|
|
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
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
o.
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
17
|
-
return
|
|
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)
|
data/lib/fusuma/version.rb
CHANGED
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.
|
|
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-
|
|
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
|