fusuma 3.6.0 → 3.6.2

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
  SHA256:
3
- metadata.gz: 82378c097f2a0af57970c6ac59afbee3ef8e0ce2d0b2957ebc968673490c1623
4
- data.tar.gz: 7324182088a879f6ccc057a311945258bf49f3f255cda67c161b5e6d847871d5
3
+ metadata.gz: f33e5a3a9c8df27631e81c1bd9e4d9381e04a5a1c35717c0b70e76d44df840e5
4
+ data.tar.gz: 2ce6df664b39c46fc7d9262a7167a27cccf181c567a82305e0378f2b4a3f0a3d
5
5
  SHA512:
6
- metadata.gz: deb0bc67936c61576f2ef0fa69ac0db89233ae2765633fe0da946368c91f0d2930520cea15a451119b79f451c8e103efb74b84a2fda2bbb9982625a29f560e65
7
- data.tar.gz: ea89aef6ec99904287cd958c03beaf46f031b71757293bf77b8920d2b2cb5ead60f2cf525800644537d7a8e3f68aee47323f31f81a579f8a8bb8ebcc57eaccd9
6
+ metadata.gz: 85627e1ff3d1b7ec4b0b3e61120e7aa4f3e366104018965d8fc96c9188e798feff37ce2073acc8253f1d1c7eeea7cc5191d607e563dedfc8a1e54f9cc12702f6
7
+ data.tar.gz: b4fac91bfef1192626f0b418383eaa9b4cb4d42b7661a520527bc3138f961fcf4b32a86f36265c9770521052b6d2c89d2794e720982928cd23db3071b5c405b0
data/README.md CHANGED
@@ -11,10 +11,10 @@ This gem makes your linux able to recognize swipes or pinchs and assign commands
11
11
  ## Features
12
12
 
13
13
  - Easy installation with RubyGems
14
- - Defining Gestures and Actions in YAML
15
- - Sensitivity setting (threshold, interval) for gesture recognition
16
- - Automatic device addition for reconnecting external touchpads
17
- - Extension of gesture recognition by [plugin system](https://github.com/iberianpig/fusuma/#fusuma-plugins)
14
+ - Define gestures and actions in YAML format
15
+ - Sensitivity settings (threshold, interval) for gesture recognition
16
+ - Automatic addition of external touchpads
17
+ - Feature extension via a [plugin system](https://github.com/iberianpig/fusuma/#fusuma-plugins)
18
18
 
19
19
  ## Installation
20
20
 
@@ -35,9 +35,9 @@ newgrp input
35
35
  **IMPORTANT**: This makes `/dev/input/` readable, so if that's an issue for you for some reason (like for privacy- or securityconcerns etc. or if it causes other parts of your OS to misbehave), **consider this your heads-up.**
36
36
 
37
37
  <details>
38
- <summary>For Debian Based Distros (Ubuntu, Debian, Mint, Pop!OS)</summary>
38
+ <summary>For Debian Based Distros (Ubuntu, Debian, Mint, Pop!_OS)</summary>
39
39
 
40
- ### For Debian Based Distros (Ubuntu, Debian, Mint, Pop!OS)
40
+ ### For Debian Based Distros (Ubuntu, Debian, Mint, Pop!_OS)
41
41
 
42
42
  #### 1. Install libinput-tools
43
43
 
@@ -258,8 +258,8 @@ The following wiki pages can be edited by everyone.
258
258
  - [elementary OS](https://github.com/iberianpig/fusuma/wiki/elementary-OS)
259
259
  - [i3](https://github.com/iberianpig/fusuma/wiki/i3)
260
260
  - [KDE to mimic MacOS](https://github.com/iberianpig/fusuma/wiki/KDE-to-mimic-MacOS)
261
- - [POP OS with Cinnamon](https://github.com/iberianpig/fusuma/wiki/POP-OS-with-Cinnamon)
262
- - [PopOS Default Gnome](https://github.com/iberianpig/fusuma/wiki/PopOS-Default-Gnome)
261
+ - [Pop!_OS with Cinnamon](https://github.com/iberianpig/fusuma/wiki/POP-OS-with-Cinnamon)
262
+ - [Pop!_OS Default Gnome](https://github.com/iberianpig/fusuma/wiki/PopOS-Default-Gnome)
263
263
  - [Ubuntu OS to mimic Mac a little](https://github.com/iberianpig/fusuma/wiki/Ubuntu-OS-to-mimic-Mac-a-little)
264
264
  - [3 fingers Drag (OS X Style)](https://github.com/iberianpig/fusuma/wiki/3-fingers-Drag-(OS-X-Style))
265
265
  - [3 fingers Alt Tab Switcher(Windows Style)](https://github.com/iberianpig/fusuma/wiki/3-fingers-Alt-Tab-Switcher(Windows-Style))
@@ -420,7 +420,7 @@ sudo gem list fusuma-plugin- | cut -d' ' -f1 | xargs --no-run-if-empty sudo gem
420
420
 
421
421
  ## Tutorial Video
422
422
 
423
- [![Multitouch Touchpad Gestures in Linux with Fusuma](http://img.youtube.com/vi/bn11Iwvf29I/0.jpg)](http://www.youtube.com/watch?v=bn11Iwvf29I "Multitouch Touchpad Gestures in Linux with Fusuma")
423
+ [![Multitouch Touchpad Gestures in Linux with Fusuma](http://img.youtube.com/vi/bn11Iwvf29I/0.jpg)](http://www.youtube.com/watch?v=bn11Iwvf29I "Multitouch Touchpad Gestures in Linux with Fusuma")
424
424
  [Multitouch Touchpad Gestures in Linux with Fusuma](http://www.youtube.com/watch?v=bn11Iwvf29I) by [Eric Adams](https://www.youtube.com/user/igster75)
425
425
 
426
426
  ## Support
data/lib/fusuma/device.rb CHANGED
@@ -66,7 +66,7 @@ module Fusuma
66
66
  line_parser = LineParser.new
67
67
 
68
68
  libinput_command = Plugin::Inputs::LibinputCommandInput.new.command
69
- # note: this libinput command takes a nontrivial amout of time (~200ms)
69
+ # note: this libinput command takes a nontrivial amount of time (~200ms)
70
70
  libinput_command.list_devices do |line|
71
71
  line_parser.push(line)
72
72
  end
@@ -22,7 +22,7 @@ module Fusuma
22
22
 
23
23
  # @return [String]
24
24
  def version
25
- # versiom_command prints "1.6.3\n"
25
+ # version_command prints "1.6.3\n"
26
26
  @version ||= `#{version_command}`.strip
27
27
  end
28
28
 
@@ -39,11 +39,7 @@ module Fusuma
39
39
 
40
40
  # @return [Integer] return a latest line libinput debug-events
41
41
  def debug_events(writer)
42
- @debug_events ||= begin
43
- t = Open3.pipeline_start([debug_events_with_options], ["grep -v POINTER_ --line-buffered"],
44
- out: writer, in: "/dev/null")
45
- t[0].pid
46
- end
42
+ Open3.pipeline_start([debug_events_with_options], ["grep -v POINTER_ --line-buffered"], out: writer, in: "/dev/null")
47
43
  end
48
44
 
49
45
  # @return [String] command
@@ -53,9 +53,8 @@ module Fusuma
53
53
 
54
54
  next if param_types.any? { |klass| val.is_a?(klass) }
55
55
 
56
- MultiLogger.error("Please fix config.yml.")
57
- MultiLogger.error(":#{config_index.keys.map(&:symbol)
58
- .join(" => :")} => :#{key} should be #{param_types.join(" OR ")}.")
56
+ MultiLogger.error("Please fix config.yml")
57
+ MultiLogger.error("`#{config_index.keys.join(".")}.#{key}` should be #{param_types.join(" OR ")}.")
59
58
  exit 1
60
59
  end
61
60
  end
@@ -12,7 +12,7 @@ module Fusuma
12
12
  DEFAULT_SECONDS_TO_KEEP = 100
13
13
 
14
14
  def initialize(*args)
15
- super(*args)
15
+ super
16
16
  @cache = {}
17
17
  @cache_select_by = {}
18
18
  @cache_sum10 = {}
@@ -9,7 +9,7 @@ module Fusuma
9
9
  # Inherite this base
10
10
  class Detector < Base
11
11
  def initialize(*args)
12
- super(*args)
12
+ super
13
13
  @tag = self.class.tag
14
14
  @type = self.class.type
15
15
  end
@@ -12,10 +12,10 @@ module Fusuma
12
12
  BUFFER_TYPE = "gesture"
13
13
  GESTURE_RECORD_TYPE = "hold"
14
14
 
15
- BASE_THERESHOLD = 0.7
15
+ BASE_THRESHOLD = 0.7
16
16
 
17
17
  def initialize(*args)
18
- super(*args)
18
+ super
19
19
  @timer = Inputs::TimerInput.instance
20
20
  end
21
21
 
@@ -134,7 +134,7 @@ module Fusuma
134
134
  keys_global = Config::Index.new ["threshold", type]
135
135
  config_value = Config.search(keys_specific) ||
136
136
  Config.search(keys_global) || 1
137
- BASE_THERESHOLD * config_value
137
+ BASE_THRESHOLD * config_value
138
138
  end
139
139
  end
140
140
  end
@@ -11,7 +11,7 @@ module Fusuma
11
11
  GESTURE_RECORD_TYPE = "pinch"
12
12
 
13
13
  FINGERS = [2, 3, 4].freeze
14
- BASE_THERESHOLD = 1.3
14
+ BASE_THRESHOLD = 1.3
15
15
 
16
16
  # @param buffers [Array<Buffer>]
17
17
  # @return [Events::Event] if event is detected
@@ -141,7 +141,7 @@ module Fusuma
141
141
  keys_global = Config::Index.new ["threshold", type]
142
142
  config_value = Config.search(keys_specific) ||
143
143
  Config.search(keys_global) || 1
144
- BASE_THERESHOLD * config_value
144
+ BASE_THRESHOLD * config_value
145
145
  end
146
146
  end
147
147
 
@@ -11,7 +11,7 @@ module Fusuma
11
11
  GESTURE_RECORD_TYPE = "pinch"
12
12
 
13
13
  FINGERS = [2, 3, 4].freeze
14
- BASE_THERESHOLD = 0.5
14
+ BASE_THRESHOLD = 0.5
15
15
 
16
16
  # @param buffers [Array<Buffer>]
17
17
  # @return [Events::Event] if event is detected
@@ -126,7 +126,7 @@ module Fusuma
126
126
  keys_global = Config::Index.new ["threshold", type]
127
127
  config_value = Config.search(keys_specific) ||
128
128
  Config.search(keys_global) || 1
129
- BASE_THERESHOLD * config_value
129
+ BASE_THRESHOLD * config_value
130
130
  end
131
131
  end
132
132
 
@@ -11,7 +11,7 @@ module Fusuma
11
11
  GESTURE_RECORD_TYPE = "swipe"
12
12
 
13
13
  FINGERS = [3, 4].freeze
14
- BASE_THERESHOLD = 25
14
+ BASE_THRESHOLD = 25
15
15
 
16
16
  # @param buffers [Array<Buffers::Buffer>]
17
17
  # @return [Events::Event] if event is detected
@@ -124,7 +124,7 @@ module Fusuma
124
124
  keys_global = Config::Index.new ["threshold", type]
125
125
  config_value = Config.search(keys_specific) ||
126
126
  Config.search(keys_global) || 1
127
- BASE_THERESHOLD * config_value
127
+ BASE_THRESHOLD * config_value
128
128
  end
129
129
  end
130
130
 
@@ -36,7 +36,7 @@ module Fusuma
36
36
  # @return [NilClass] when merge is not succeeded
37
37
  def merge(records:, index: @index)
38
38
  # FIXME: cache
39
- raise "position is NOT body: #{self}" unless mergable?
39
+ raise "position is NOT body: #{self}" unless mergeable?
40
40
 
41
41
  if records.empty?
42
42
  if Config.instance.find_execute_key(index)
@@ -76,7 +76,7 @@ module Fusuma
76
76
  end
77
77
  end
78
78
 
79
- def mergable?
79
+ def mergeable?
80
80
  @position == :body
81
81
  end
82
82
  end
@@ -10,7 +10,7 @@ module Fusuma
10
10
  # @abstract Subclass and override {#io} to implement
11
11
  class Input < Base
12
12
  def initialize(*args)
13
- super(*args)
13
+ super
14
14
  @tag = self.class.name.split("Inputs::").last.underscore
15
15
  end
16
16
 
@@ -43,11 +43,6 @@ module Fusuma
43
43
  exit 1
44
44
  end
45
45
 
46
- # @return [Integer]
47
- def pid
48
- raise NotImplementedError, "override #{self.class.name}##{__method__}"
49
- end
50
-
51
46
  # @return [IO]
52
47
  def io
53
48
  raise NotImplementedError, "override #{self.class.name}##{__method__}"
@@ -8,8 +8,6 @@ module Fusuma
8
8
  module Inputs
9
9
  # libinput commands wrapper
10
10
  class LibinputCommandInput < Input
11
- attr_reader :pid
12
-
13
11
  def config_param_types
14
12
  {
15
13
  device: [String],
@@ -27,7 +25,7 @@ module Fusuma
27
25
  def io
28
26
  @io ||= begin
29
27
  reader, writer = create_io
30
- @pid = command.debug_events(writer)
28
+ command.debug_events(writer)
31
29
  reader
32
30
  end
33
31
  end
@@ -23,12 +23,12 @@ module Fusuma
23
23
  @early_wake_queue = Queue.new
24
24
  end
25
25
 
26
- attr_reader :pid, :interval
26
+ attr_reader :interval
27
27
 
28
28
  def io
29
29
  @io ||= begin
30
30
  reader, writer = create_io
31
- @pid = start(reader, writer)
31
+ start(reader, writer)
32
32
 
33
33
  reader
34
34
  end
@@ -38,7 +38,6 @@ module Fusuma
38
38
  Thread.new do
39
39
  timer_loop(writer)
40
40
  end
41
- nil
42
41
  end
43
42
 
44
43
  def timer_loop(writer)
@@ -40,6 +40,7 @@ module Fusuma
40
40
  plugin_gemspec = Gem::Specification.load(plugin_gemspec_path)
41
41
  fusuma_gemspec_path = File.expand_path("../../../fusuma.gemspec", __dir__)
42
42
  fusuma_gemspec = Gem::Specification.load(fusuma_gemspec_path)
43
+ next if plugin_gemspec == fusuma_gemspec
43
44
 
44
45
  if plugin_gemspec.dependencies.find { |d| d.name == "fusuma" }&.match?(fusuma_gemspec)
45
46
  siblings_plugin
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Fusuma
4
- VERSION = "3.6.0"
4
+ VERSION = "3.6.2"
5
5
  end
data/lib/fusuma.rb CHANGED
@@ -148,7 +148,7 @@ module Fusuma
148
148
  # @return [NilClass] when event is NOT given
149
149
  def merge(events)
150
150
  index_events, context_events = events.partition { |event| event.record.type == :index }
151
- main_events, modifiers = index_events.partition { |event| event.record.mergable? }
151
+ main_events, modifiers = index_events.partition { |event| event.record.mergeable? }
152
152
  request_context = context_events.each_with_object({}) do |e, results|
153
153
  results[e.record.name] = e.record.value
154
154
  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: 3.6.0
4
+ version: 3.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - iberianpig
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-07-02 00:00:00.000000000 Z
11
+ date: 2024-09-21 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Fusuma is multitouch gesture recognizer. This gem makes your touchpad
14
14
  on Linux able to recognize swipes or pinchs and assign command to them. Read installation