fusuma-plugin-remap 0.4.1 → 0.5.0

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: c2455d59dcc7050237331988d27f8def95586791fd1f86974146ceb7a373ff35
4
- data.tar.gz: c39286dafd8112602c61953512d16f85f0e3b51c318e215431d5539efd33eadd
3
+ metadata.gz: bf0c73f3292a88f1488fc06d1c45c5bca19250df7e257063dcc78dbd74a78fb6
4
+ data.tar.gz: a78d663ef4cf53629c6b0d9dec965b1494e782814691564f5ce917bb02262e6e
5
5
  SHA512:
6
- metadata.gz: a40ff642c159e4f7a8f627929c01f99e44e666c0de24f5c977fff7c2967a37fce1693152053d6477edc9f4c87e7691b4b987ca7bd0fdbade5029d40f12d6e1a5
7
- data.tar.gz: efb92a3fb8c1d67b93e811ad631d0437e5f0a2000035a2c2637ae942d25072869efb7c88a00478dfb6606239a3283f86bf6fc4ab970feeb6c295c1ed99f70d5f
6
+ metadata.gz: 9c79bdd354f1188569afd8fe45d7b4e42b5d2463307c8ef26ed74191113d8b38a639ab7c846223a6d30821cc012bb82a1a3b17eeb5d61e8198eb8abe76b785c4
7
+ data.tar.gz: 3c915a96eb1f285c294e368f25390864534c3ed0ba792a42722083f9796cb3717042e45a8adea477363aa805e38a66996c49820f5aa88636659e72cf6a6485ba
@@ -18,8 +18,6 @@ module Fusuma
18
18
  }
19
19
  end
20
20
 
21
- attr_reader :pid
22
-
23
21
  def initialize
24
22
  super
25
23
  setup_remapper
@@ -49,6 +47,7 @@ module Fusuma
49
47
 
50
48
  def setup_remapper
51
49
  config = {
50
+
52
51
  keyboard_name_patterns: config_params(:keyboard_name_patterns),
53
52
  touchpad_name_patterns: config_params(:touchpad_name_patterns)
54
53
  }
@@ -58,7 +57,7 @@ module Fusuma
58
57
  # physical keyboard input event
59
58
  @fusuma_reader, fusuma_writer = IO.pipe
60
59
 
61
- @pid = fork do
60
+ fork do
62
61
  layer_manager.writer.close
63
62
  @fusuma_reader.close
64
63
  remapper = Remap::KeyboardRemapper.new(
@@ -17,8 +17,6 @@ module Fusuma
17
17
  }
18
18
  end
19
19
 
20
- attr_reader :pid
21
-
22
20
  def initialize
23
21
  super
24
22
  setup_remapper
@@ -79,7 +77,7 @@ module Fusuma
79
77
  # physical touchpad input event
80
78
  @fusuma_reader, fusuma_writer = IO.pipe
81
79
 
82
- @pid = fork do
80
+ fork do
83
81
  # layer_manager.writer.close
84
82
  @fusuma_reader.close
85
83
  remapper = Remap::TouchpadRemapper.new(
@@ -92,7 +92,7 @@ module Fusuma
92
92
  rescue EOFError => e # device is closed
93
93
  MultiLogger.error "Device is closed: #{e.message}"
94
94
  ensure
95
- @destroy.call
95
+ @destroy&.call
96
96
  end
97
97
 
98
98
  private
@@ -18,6 +18,8 @@ module Fusuma
18
18
  @source_touchpad = source_touchpad # original touchpad
19
19
  @fusuma_writer = fusuma_writer # write event to fusuma_input
20
20
  @palm_detector ||= PalmDetection.new(source_touchpad)
21
+
22
+ set_trap
21
23
  end
22
24
 
23
25
  # TODO: grab touchpad events and remap them
@@ -125,6 +127,10 @@ module Fusuma
125
127
  @fusuma_writer.write(data.to_msgpack)
126
128
  end
127
129
  end
130
+ rescue => e
131
+ MultiLogger.error "An error occurred: #{e.message}"
132
+ ensure
133
+ @destroy&.call
128
134
  end
129
135
 
130
136
  private
@@ -134,11 +140,24 @@ module Fusuma
134
140
  end
135
141
 
136
142
  def create_virtual_touchpad
137
- MultiLogger.info "Create virtual keyboard: #{VIRTUAL_TOUCHPAD_NAME}"
138
-
143
+ MultiLogger.info "Create virtual touchpad: #{VIRTUAL_TOUCHPAD_NAME}"
139
144
  uinput.create_from_device(name: VIRTUAL_TOUCHPAD_NAME, device: @source_touchpad)
140
145
  end
141
146
 
147
+ def set_trap
148
+ @destroy = lambda do
149
+ begin
150
+ uinput.destroy
151
+ rescue IOError
152
+ # already destroyed
153
+ end
154
+ exit 0
155
+ end
156
+
157
+ Signal.trap(:INT) { @destroy.call }
158
+ Signal.trap(:TERM) { @destroy.call }
159
+ end
160
+
142
161
  # Detect palm touch
143
162
  class PalmDetection
144
163
  def initialize(touchpad)
@@ -3,7 +3,7 @@
3
3
  module Fusuma
4
4
  module Plugin
5
5
  module Remap
6
- VERSION = "0.4.1"
6
+ VERSION = "0.5.0"
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fusuma-plugin-remap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
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-07 00:00:00.000000000 Z
11
+ date: 2024-09-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fusuma