fusuma 2.0.0.pre → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +50 -11
  3. data/fusuma.gemspec +5 -6
  4. data/lib/fusuma.rb +87 -33
  5. data/lib/fusuma/config.rb +33 -40
  6. data/lib/fusuma/config/index.rb +34 -8
  7. data/lib/fusuma/config/searcher.rb +80 -4
  8. data/lib/fusuma/custom_process.rb +13 -0
  9. data/lib/fusuma/device.rb +19 -6
  10. data/lib/fusuma/environment.rb +4 -3
  11. data/lib/fusuma/hash_support.rb +40 -0
  12. data/lib/fusuma/libinput_command.rb +10 -15
  13. data/lib/fusuma/multi_logger.rb +2 -6
  14. data/lib/fusuma/plugin/base.rb +18 -15
  15. data/lib/fusuma/plugin/buffers/buffer.rb +3 -2
  16. data/lib/fusuma/plugin/buffers/gesture_buffer.rb +34 -25
  17. data/lib/fusuma/plugin/buffers/timer_buffer.rb +3 -3
  18. data/lib/fusuma/plugin/detectors/detector.rb +26 -5
  19. data/lib/fusuma/plugin/detectors/pinch_detector.rb +109 -58
  20. data/lib/fusuma/plugin/detectors/rotate_detector.rb +91 -50
  21. data/lib/fusuma/plugin/detectors/swipe_detector.rb +93 -56
  22. data/lib/fusuma/plugin/events/event.rb +5 -4
  23. data/lib/fusuma/plugin/events/records/context_record.rb +27 -0
  24. data/lib/fusuma/plugin/events/records/gesture_record.rb +9 -6
  25. data/lib/fusuma/plugin/events/records/index_record.rb +46 -14
  26. data/lib/fusuma/plugin/events/records/record.rb +1 -1
  27. data/lib/fusuma/plugin/events/records/text_record.rb +2 -1
  28. data/lib/fusuma/plugin/executors/command_executor.rb +21 -4
  29. data/lib/fusuma/plugin/executors/executor.rb +45 -3
  30. data/lib/fusuma/plugin/filters/filter.rb +1 -1
  31. data/lib/fusuma/plugin/filters/libinput_device_filter.rb +6 -7
  32. data/lib/fusuma/plugin/filters/libinput_timeout_filter.rb +2 -2
  33. data/lib/fusuma/plugin/inputs/input.rb +20 -7
  34. data/lib/fusuma/plugin/inputs/libinput_command_input.rb +17 -5
  35. data/lib/fusuma/plugin/inputs/timer_input.rb +7 -7
  36. data/lib/fusuma/plugin/manager.rb +22 -29
  37. data/lib/fusuma/plugin/parsers/libinput_gesture_parser.rb +10 -8
  38. data/lib/fusuma/plugin/parsers/parser.rb +8 -9
  39. data/lib/fusuma/string_support.rb +16 -0
  40. data/lib/fusuma/version.rb +1 -1
  41. data/spec/helpers/config_helper.rb +20 -0
  42. data/spec/lib/config/searcher_spec.rb +97 -0
  43. data/spec/lib/config_spec.rb +112 -0
  44. data/spec/lib/custom_process_spec.rb +28 -0
  45. data/spec/lib/device_spec.rb +96 -0
  46. data/spec/lib/dummy_config.yml +31 -0
  47. data/spec/lib/fusuma_spec.rb +103 -0
  48. data/spec/lib/libinput-list-devices_iberianpig-XPS-9360.txt +181 -0
  49. data/spec/lib/libinput-list-devices_magic_trackpad.txt +51 -0
  50. data/spec/lib/libinput-list-devices_razer_razer_blade.txt +252 -0
  51. data/spec/lib/libinput-list-devices_thejinx0r.txt +361 -0
  52. data/spec/lib/libinput-list-devices_unavailable.txt +36 -0
  53. data/spec/lib/libinput_command_spec.rb +160 -0
  54. data/spec/lib/plugin/base_spec.rb +74 -0
  55. data/spec/lib/plugin/buffers/buffer_spec.rb +80 -0
  56. data/spec/lib/plugin/buffers/dummy_buffer.rb +20 -0
  57. data/spec/lib/plugin/buffers/gesture_buffer_spec.rb +172 -0
  58. data/spec/lib/plugin/detectors/detector_spec.rb +43 -0
  59. data/spec/lib/plugin/detectors/dummy_detector.rb +24 -0
  60. data/spec/lib/plugin/detectors/pinch_detector_spec.rb +119 -0
  61. data/spec/lib/plugin/detectors/rotate_detector_spec.rb +125 -0
  62. data/spec/lib/plugin/detectors/swipe_detector_spec.rb +118 -0
  63. data/spec/lib/plugin/events/event_spec.rb +30 -0
  64. data/spec/lib/plugin/events/records/gesture_record_spec.rb +22 -0
  65. data/spec/lib/plugin/events/records/record_spec.rb +31 -0
  66. data/spec/lib/plugin/events/records/text_record_spec.rb +26 -0
  67. data/spec/lib/plugin/executors/command_executor_spec.rb +57 -0
  68. data/spec/lib/plugin/executors/executor_spec.rb +160 -0
  69. data/spec/lib/plugin/filters/filter_spec.rb +92 -0
  70. data/spec/lib/plugin/filters/libinput_filter_spec.rb +120 -0
  71. data/spec/lib/plugin/inputs/input_spec.rb +70 -0
  72. data/spec/lib/plugin/inputs/libinput_command_input_spec.rb +121 -0
  73. data/spec/lib/plugin/inputs/timer_input_spec.rb +40 -0
  74. data/spec/lib/plugin/manager_spec.rb +27 -0
  75. data/spec/lib/plugin/parsers/parser_spec.rb +45 -0
  76. data/spec/spec_helper.rb +20 -0
  77. metadata +84 -38
  78. data/.github/FUNDING.yml +0 -8
  79. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -32
  80. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -17
  81. data/.github/pull_request_template.md +0 -9
  82. data/.github/stale.yml +0 -18
  83. data/.gitignore +0 -17
  84. data/.reek.yml +0 -96
  85. data/.rspec +0 -2
  86. data/.rubocop.yml +0 -40
  87. data/.rubocop_todo.yml +0 -40
  88. data/.travis.yml +0 -11
  89. data/CHANGELOG.md +0 -456
  90. data/CODE_OF_CONDUCT.md +0 -74
  91. data/CONTRIBUTING.md +0 -72
  92. data/Gemfile +0 -18
  93. data/Rakefile +0 -15
@@ -0,0 +1,181 @@
1
+ Device: Power Button
2
+ Kernel: /dev/input/event3
3
+ Group: 1
4
+ Seat: seat0, default
5
+ Capabilities: keyboard
6
+ Tap-to-click: n/a
7
+ Tap-and-drag: n/a
8
+ Tap drag lock: n/a
9
+ Left-handed: n/a
10
+ Nat.scrolling: n/a
11
+ Middle emulation: n/a
12
+ Calibration: n/a
13
+ Scroll methods: none
14
+ Click methods: none
15
+ Disable-w-typing: n/a
16
+ Accel profiles: n/a
17
+ Rotation: n/a
18
+
19
+ Device: Video Bus
20
+ Kernel: /dev/input/event5
21
+ Group: 2
22
+ Seat: seat0, default
23
+ Capabilities: keyboard
24
+ Tap-to-click: n/a
25
+ Tap-and-drag: n/a
26
+ Tap drag lock: n/a
27
+ Left-handed: n/a
28
+ Nat.scrolling: n/a
29
+ Middle emulation: n/a
30
+ Calibration: n/a
31
+ Scroll methods: none
32
+ Click methods: none
33
+ Disable-w-typing: n/a
34
+ Accel profiles: n/a
35
+ Rotation: n/a
36
+
37
+ Device: Power Button
38
+ Kernel: /dev/input/event1
39
+ Group: 3
40
+ Seat: seat0, default
41
+ Capabilities: keyboard
42
+ Tap-to-click: n/a
43
+ Tap-and-drag: n/a
44
+ Tap drag lock: n/a
45
+ Left-handed: n/a
46
+ Nat.scrolling: n/a
47
+ Middle emulation: n/a
48
+ Calibration: n/a
49
+ Scroll methods: none
50
+ Click methods: none
51
+ Disable-w-typing: n/a
52
+ Accel profiles: n/a
53
+ Rotation: n/a
54
+
55
+ Device: Sleep Button
56
+ Kernel: /dev/input/event2
57
+ Group: 4
58
+ Seat: seat0, default
59
+ Capabilities: keyboard
60
+ Tap-to-click: n/a
61
+ Tap-and-drag: n/a
62
+ Tap drag lock: n/a
63
+ Left-handed: n/a
64
+ Nat.scrolling: n/a
65
+ Middle emulation: n/a
66
+ Calibration: n/a
67
+ Scroll methods: none
68
+ Click methods: none
69
+ Disable-w-typing: n/a
70
+ Accel profiles: n/a
71
+ Rotation: n/a
72
+
73
+ Device: Integrated_Webcam_HD
74
+ Kernel: /dev/input/event15
75
+ Group: 5
76
+ Seat: seat0, default
77
+ Capabilities: keyboard
78
+ Tap-to-click: n/a
79
+ Tap-and-drag: n/a
80
+ Tap drag lock: n/a
81
+ Left-handed: n/a
82
+ Nat.scrolling: n/a
83
+ Middle emulation: n/a
84
+ Calibration: n/a
85
+ Scroll methods: none
86
+ Click methods: none
87
+ Disable-w-typing: n/a
88
+ Accel profiles: n/a
89
+ Rotation: n/a
90
+
91
+ Device: DLL075B:01 06CB:76AF Touchpad
92
+ Kernel: /dev/input/event14
93
+ Group: 6
94
+ Seat: seat0, default
95
+ Size: 101.33x56.67mm
96
+ Capabilities: pointer
97
+ Tap-to-click: disabled
98
+ Tap-and-drag: enabled
99
+ Tap drag lock: disabled
100
+ Left-handed: disabled
101
+ Nat.scrolling: disabled
102
+ Middle emulation: disabled
103
+ Calibration: n/a
104
+ Scroll methods: *two-finger edge
105
+ Click methods: *button-areas clickfinger
106
+ Disable-w-typing: enabled
107
+ Accel profiles: none
108
+ Rotation: n/a
109
+
110
+ Device: Intel Virtual Button driver
111
+ Kernel: /dev/input/event8
112
+ Group: 7
113
+ Seat: seat0, default
114
+ Capabilities: keyboard
115
+ Tap-to-click: n/a
116
+ Tap-and-drag: n/a
117
+ Tap drag lock: n/a
118
+ Left-handed: n/a
119
+ Nat.scrolling: n/a
120
+ Middle emulation: n/a
121
+ Calibration: n/a
122
+ Scroll methods: none
123
+ Click methods: none
124
+ Disable-w-typing: n/a
125
+ Accel profiles: n/a
126
+ Rotation: n/a
127
+
128
+ Device: Intel HID events
129
+ Kernel: /dev/input/event7
130
+ Group: 8
131
+ Seat: seat0, default
132
+ Capabilities: keyboard
133
+ Tap-to-click: n/a
134
+ Tap-and-drag: n/a
135
+ Tap drag lock: n/a
136
+ Left-handed: n/a
137
+ Nat.scrolling: n/a
138
+ Middle emulation: n/a
139
+ Calibration: n/a
140
+ Scroll methods: none
141
+ Click methods: none
142
+ Disable-w-typing: n/a
143
+ Accel profiles: n/a
144
+ Rotation: n/a
145
+
146
+ Device: AT Translated Set 2 keyboard
147
+ Kernel: /dev/input/event4
148
+ Group: 9
149
+ Seat: seat0, default
150
+ Capabilities: keyboard
151
+ Tap-to-click: n/a
152
+ Tap-and-drag: n/a
153
+ Tap drag lock: n/a
154
+ Left-handed: n/a
155
+ Nat.scrolling: n/a
156
+ Middle emulation: n/a
157
+ Calibration: n/a
158
+ Scroll methods: none
159
+ Click methods: none
160
+ Disable-w-typing: n/a
161
+ Accel profiles: n/a
162
+ Rotation: n/a
163
+
164
+ Device: Dell WMI hotkeys
165
+ Kernel: /dev/input/event9
166
+ Group: 10
167
+ Seat: seat0, default
168
+ Capabilities: keyboard
169
+ Tap-to-click: n/a
170
+ Tap-and-drag: n/a
171
+ Tap drag lock: n/a
172
+ Left-handed: n/a
173
+ Nat.scrolling: n/a
174
+ Middle emulation: n/a
175
+ Calibration: n/a
176
+ Scroll methods: none
177
+ Click methods: none
178
+ Disable-w-typing: n/a
179
+ Accel profiles: n/a
180
+ Rotation: n/a
181
+
@@ -0,0 +1,51 @@
1
+ Device: Christopher’s Trackpad
2
+ Kernel: /dev/input/event8
3
+ Group: 7
4
+ Seat: seat0, default
5
+ Capabilities: pointer
6
+ Tap-to-click: n/a
7
+ Tap-and-drag: n/a
8
+ Tap drag lock: n/a
9
+ Left-handed: disabled
10
+ Nat.scrolling: disabled
11
+ Middle emulation: n/a
12
+ Calibration: n/a
13
+ Scroll methods: button
14
+ Click methods: none
15
+ Disable-w-typing: n/a
16
+ Accel profiles: flat*adaptive
17
+
18
+ Device: Apple Inc. Apple Internal Keyboard / Trackpad
19
+ Kernel: /dev/input/event6
20
+ Group: 8
21
+ Seat: seat0, default
22
+ Capabilities: keyboard
23
+ Tap-to-click: n/a
24
+ Tap-and-drag: n/a
25
+ Tap drag lock: n/a
26
+ Left-handed: n/a
27
+ Nat.scrolling: n/a
28
+ Middle emulation: n/a
29
+ Calibration: n/a
30
+ Scroll methods: none
31
+ Click methods: none
32
+ Disable-w-typing: n/a
33
+ Accel profiles: n/a
34
+
35
+ Device: bcm5974
36
+ Kernel: /dev/input/event9
37
+ Group: 9
38
+ Seat: seat0, default
39
+ Size: 69.17x50.22mm
40
+ Capabilities: pointer
41
+ Tap-to-click: disabled
42
+ Tap-and-drag: enabled
43
+ Tap drag lock: disabled
44
+ Left-handed: disabled
45
+ Nat.scrolling: disabled
46
+ Middle emulation: n/a
47
+ Calibration: n/a
48
+ Scroll methods: *two-finger edge
49
+ Click methods: button-areas *clickfinger
50
+ Disable-w-typing: enabled
51
+ Accel profiles: none
@@ -0,0 +1,252 @@
1
+ Device: Power Button
2
+ Kernel: /dev/input/event2
3
+ Group: 1
4
+ Seat: seat0, default
5
+ Capabilities: keyboard
6
+ Tap-to-click: n/a
7
+ Tap-and-drag: n/a
8
+ Tap drag lock: n/a
9
+ Left-handed: n/a
10
+ Nat.scrolling: n/a
11
+ Middle emulation: n/a
12
+ Calibration: n/a
13
+ Scroll methods: none
14
+ Click methods: none
15
+ Disable-w-typing: n/a
16
+ Accel profiles: n/a
17
+ Rotation: n/a
18
+
19
+ Device: Video Bus
20
+ Kernel: /dev/input/event4
21
+ Group: 2
22
+ Seat: seat0, default
23
+ Capabilities: keyboard
24
+ Tap-to-click: n/a
25
+ Tap-and-drag: n/a
26
+ Tap drag lock: n/a
27
+ Left-handed: n/a
28
+ Nat.scrolling: n/a
29
+ Middle emulation: n/a
30
+ Calibration: n/a
31
+ Scroll methods: none
32
+ Click methods: none
33
+ Disable-w-typing: n/a
34
+ Accel profiles: n/a
35
+ Rotation: n/a
36
+
37
+ Device: Video Bus
38
+ Kernel: /dev/input/event5
39
+ Group: 2
40
+ Seat: seat0, default
41
+ Capabilities: keyboard
42
+ Tap-to-click: n/a
43
+ Tap-and-drag: n/a
44
+ Tap drag lock: n/a
45
+ Left-handed: n/a
46
+ Nat.scrolling: n/a
47
+ Middle emulation: n/a
48
+ Calibration: n/a
49
+ Scroll methods: none
50
+ Click methods: none
51
+ Disable-w-typing: n/a
52
+ Accel profiles: n/a
53
+ Rotation: n/a
54
+
55
+ Device: Lid Switch
56
+ Kernel: /dev/input/event0
57
+ Group: 3
58
+ Seat: seat0, default
59
+ Capabilities: switch
60
+ Tap-to-click: n/a
61
+ Tap-and-drag: n/a
62
+ Tap drag lock: n/a
63
+ Left-handed: n/a
64
+ Nat.scrolling: n/a
65
+ Middle emulation: n/a
66
+ Calibration: n/a
67
+ Scroll methods: none
68
+ Click methods: none
69
+ Disable-w-typing: n/a
70
+ Accel profiles: n/a
71
+ Rotation: n/a
72
+
73
+ Device: Power Button
74
+ Kernel: /dev/input/event1
75
+ Group: 4
76
+ Seat: seat0, default
77
+ Capabilities: keyboard
78
+ Tap-to-click: n/a
79
+ Tap-and-drag: n/a
80
+ Tap drag lock: n/a
81
+ Left-handed: n/a
82
+ Nat.scrolling: n/a
83
+ Middle emulation: n/a
84
+ Calibration: n/a
85
+ Scroll methods: none
86
+ Click methods: none
87
+ Disable-w-typing: n/a
88
+ Accel profiles: n/a
89
+ Rotation: n/a
90
+
91
+ Device: Integrated Camera: Integrated C
92
+ Kernel: /dev/input/event16
93
+ Group: 5
94
+ Seat: seat0, default
95
+ Capabilities: keyboard
96
+ Tap-to-click: n/a
97
+ Tap-and-drag: n/a
98
+ Tap drag lock: n/a
99
+ Left-handed: n/a
100
+ Nat.scrolling: n/a
101
+ Middle emulation: n/a
102
+ Calibration: n/a
103
+ Scroll methods: none
104
+ Click methods: none
105
+ Disable-w-typing: n/a
106
+ Accel profiles: n/a
107
+ Rotation: n/a
108
+
109
+ Device: Integrated Camera: Integrated I
110
+ Kernel: /dev/input/event18
111
+ Group: 5
112
+ Seat: seat0, default
113
+ Capabilities: keyboard
114
+ Tap-to-click: n/a
115
+ Tap-and-drag: n/a
116
+ Tap drag lock: n/a
117
+ Left-handed: n/a
118
+ Nat.scrolling: n/a
119
+ Middle emulation: n/a
120
+ Calibration: n/a
121
+ Scroll methods: none
122
+ Click methods: none
123
+ Disable-w-typing: n/a
124
+ Accel profiles: n/a
125
+ Rotation: n/a
126
+
127
+ Device: Razer Razer Blade
128
+ Kernel: /dev/input/event15
129
+ Group: 6
130
+ Seat: seat0, default
131
+ Capabilities: keyboard
132
+ Tap-to-click: n/a
133
+ Tap-and-drag: n/a
134
+ Tap drag lock: n/a
135
+ Left-handed: n/a
136
+ Nat.scrolling: n/a
137
+ Middle emulation: n/a
138
+ Calibration: n/a
139
+ Scroll methods: none
140
+ Click methods: none
141
+ Disable-w-typing: n/a
142
+ Accel profiles: n/a
143
+ Rotation: n/a
144
+
145
+ Device: Razer Razer Blade
146
+ Kernel: /dev/input/event17
147
+ Group: 6
148
+ Seat: seat0, default
149
+ Capabilities: keyboard pointer
150
+ Tap-to-click: n/a
151
+ Tap-and-drag: n/a
152
+ Tap drag lock: n/a
153
+ Left-handed: n/a
154
+ Nat.scrolling: disabled
155
+ Middle emulation: n/a
156
+ Calibration: n/a
157
+ Scroll methods: none
158
+ Click methods: none
159
+ Disable-w-typing: n/a
160
+ Accel profiles: n/a
161
+ Rotation: n/a
162
+
163
+ Device: Razer Razer Blade
164
+ Kernel: /dev/input/event19
165
+ Group: 6
166
+ Seat: seat0, default
167
+ Capabilities: pointer
168
+ Tap-to-click: n/a
169
+ Tap-and-drag: n/a
170
+ Tap drag lock: n/a
171
+ Left-handed: disabled
172
+ Nat.scrolling: disabled
173
+ Middle emulation: disabled
174
+ Calibration: n/a
175
+ Scroll methods: button
176
+ Click methods: none
177
+ Disable-w-typing: n/a
178
+ Accel profiles: flat *adaptive
179
+ Rotation: n/a
180
+
181
+ Device: ELAN0406:00 04F3:30A6 Touchpad
182
+ Kernel: /dev/input/event7
183
+ Group: 7
184
+ Seat: seat0, default
185
+ Size: 125x77mm
186
+ Capabilities: pointer gesture
187
+ Tap-to-click: disabled
188
+ Tap-and-drag: enabled
189
+ Tap drag lock: disabled
190
+ Left-handed: disabled
191
+ Nat.scrolling: disabled
192
+ Middle emulation: disabled
193
+ Calibration: n/a
194
+ Scroll methods: *two-finger edge
195
+ Click methods: *button-areas clickfinger
196
+ Disable-w-typing: enabled
197
+ Accel profiles: flat *adaptive
198
+ Rotation: n/a
199
+
200
+ Device: ELAN0406:00 04F3:30A6 Mouse
201
+ Kernel: /dev/input/event6
202
+ Group: 7
203
+ Seat: seat0, default
204
+ Capabilities: pointer
205
+ Tap-to-click: n/a
206
+ Tap-and-drag: n/a
207
+ Tap drag lock: n/a
208
+ Left-handed: disabled
209
+ Nat.scrolling: disabled
210
+ Middle emulation: n/a
211
+ Calibration: n/a
212
+ Scroll methods: *button
213
+ Click methods: none
214
+ Disable-w-typing: n/a
215
+ Accel profiles: flat *adaptive
216
+ Rotation: n/a
217
+
218
+ Device: M720 Triathlon Keyboard
219
+ Kernel: /dev/input/event20
220
+ Group: 8
221
+ Seat: seat0, default
222
+ Capabilities: keyboard
223
+ Tap-to-click: n/a
224
+ Tap-and-drag: n/a
225
+ Tap drag lock: n/a
226
+ Left-handed: n/a
227
+ Nat.scrolling: n/a
228
+ Middle emulation: n/a
229
+ Calibration: n/a
230
+ Scroll methods: none
231
+ Click methods: none
232
+ Disable-w-typing: n/a
233
+ Accel profiles: n/a
234
+ Rotation: n/a
235
+
236
+ Device: M720 Triathlon Mouse
237
+ Kernel: /dev/input/event21
238
+ Group: 8
239
+ Seat: seat0, default
240
+ Capabilities: pointer
241
+ Tap-to-click: n/a
242
+ Tap-and-drag: n/a
243
+ Tap drag lock: n/a
244
+ Left-handed: disabled
245
+ Nat.scrolling: disabled
246
+ Middle emulation: disabled
247
+ Calibration: n/a
248
+ Scroll methods: button
249
+ Click methods: none
250
+ Disable-w-typing: n/a
251
+ Accel profiles: flat *adaptive
252
+ Rotation: n/a