fusuma-plugin-appmatcher 0.9.0 → 0.10.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: 69bf1d29cc81954c8ceb160cbce4ce71da3156ba3f836a69285c01a3d31c2d8f
4
- data.tar.gz: a912664d466fc86797d389e8608b6100aa748ee1dc82de65e2e272ef61c06acf
3
+ metadata.gz: 01dac2dad9fcdf720ae85a3d640e1f41d22b34cff26f688b8eb05ecff25ed354
4
+ data.tar.gz: 1bf60e0762ce6ea974de6006c7c8bba37eb596d64655905db14e1072b4a4a48e
5
5
  SHA512:
6
- metadata.gz: 30c39974d22d5b64f5efd306e7abcab89937890b9b191705293da312b15ea0f4e39a8de3225791c07188c37b4b00e3620746a5fc271ebfb4273f3ac524336202
7
- data.tar.gz: 15b900560a0ea3a084e2acda300ee0d3327262b4127396ee80988962257181792154973b47da229e0bc6d0706a64e2b5423c6aef43c460a54b9af7980b243bbb
6
+ metadata.gz: ce5c29f65ae143c0d345cae02082345e5f32fcf3b5ba18ad711ce0c9da6b205f8895a9636c733971e0ce060529b921876d414d1295b4e79e46f584a4a6f13f8c
7
+ data.tar.gz: 468eab88d695b833d383d04088111cd7656fab4ee6921cef081737f8170b110e377780012e099bb1d95acc788d4bef9b583f53993a50f8ba69aed75ebbaace53
@@ -3,7 +3,7 @@
3
3
  module Fusuma
4
4
  module Plugin
5
5
  module Appmatcher
6
- VERSION = "0.9.0"
6
+ VERSION = "0.10.0"
7
7
  end
8
8
  end
9
9
  end
@@ -23,6 +23,8 @@ module Fusuma
23
23
 
24
24
  record = buffer.events.last.record
25
25
 
26
+ update_layer(record.name) if layer_manager_available?
27
+
26
28
  context_record = Events::Records::ContextRecord.new(
27
29
  name: "application",
28
30
  value: record.name
@@ -30,6 +32,38 @@ module Fusuma
30
32
 
31
33
  create_event(record: context_record)
32
34
  end
35
+
36
+ private
37
+
38
+ # Check fusuma-plugin-remap is installed for layer management
39
+ def layer_manager_available?
40
+ return @layer_manager_available if defined?(@layer_manager_available)
41
+
42
+ @layer_manager_available = Plugin::Manager.plugins[Inputs::Input.name]&.any? { |klass|
43
+ klass.name == "Fusuma::Plugin::Inputs::RemapKeyboardInput"
44
+ } || false
45
+ end
46
+
47
+ def layer_manager
48
+ require "fusuma/plugin/remap/layer_manager"
49
+ Fusuma::Plugin::Remap::LayerManager.instance
50
+ end
51
+
52
+ # Update layer on application change
53
+ # - On first detection: add current app as layer
54
+ # - On app change: remove previous layer and add new layer
55
+ # - On same app: do nothing
56
+ def update_layer(current_app)
57
+ return if @previous_app == current_app
58
+
59
+ if @previous_app
60
+ layer_manager.send_layer(layer: {application: @previous_app}, remove: true)
61
+ end
62
+
63
+ layer_manager.send_layer(layer: {application: current_app})
64
+
65
+ @previous_app = current_app
66
+ end
33
67
  end
34
68
  end
35
69
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fusuma-plugin-appmatcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - iberianpig
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-07-08 00:00:00.000000000 Z
11
+ date: 2026-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rexml