fusuma-plugin-sendkey 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: d4f7a138b1d95791f1aaaa0f2c87478a19cda797fae84a041d971c82918748e0
4
- data.tar.gz: ed5e3faf1a337514dc4143b94a197ba8fdaa6d1f6f4ff1db34f3f104c27e3b0b
3
+ metadata.gz: c879caf4905b45fb0ac0b341920ce05b46656aaa8cceac946c6d80d672ef15b0
4
+ data.tar.gz: c3342151efbd9026776a576a5a888a1928f425e4a41c90d92b21639d9b4d04d8
5
5
  SHA512:
6
- metadata.gz: 9f88aca512a3ce515737955bcf51e000e7744559e42aeb2681074ac70286cbd84353bd5d899b595a46a63fe3c704c89c912ed86f13c00dc4b34cdb873da83972
7
- data.tar.gz: e88bc67bb77ed35261d441710f9a5d409bbe3549ac0354424067822503aab833389539ee9d6ea8eaf901058b31f862b86c836fc0896b7b8228907dbb45dda3c0
6
+ metadata.gz: 941608c2566984699567bbcd75ddcd04e777f43f910c1761b5f2533a9dea288d0426b1442bbdf8bae9cfce6f884fc13da1063d714f8e997b308497275510f033
7
+ data.tar.gz: 68b49087774f96a9be5b4b892a0f7c7c88226e27ab9bc7901f34da778acce22c717bfa5b2546c45675a87bb07e9939f7946d39898c60c78ecc444725298a2b79
data/exe/fusuma-sendkey CHANGED
@@ -2,6 +2,7 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require 'optparse'
5
+ require 'fusuma/config'
5
6
  require 'fusuma/plugin/inputs/libinput_command_input.rb'
6
7
  require_relative '../lib/fusuma/plugin/sendkey/keyboard.rb'
7
8
  require_relative '../lib/fusuma/plugin/sendkey/version.rb'
@@ -20,8 +21,13 @@ end
20
21
 
21
22
  opt.parse!(ARGV)
22
23
 
24
+ device_name = Fusuma::Config.instance.fetch_config_params(
25
+ :device_name,
26
+ Fusuma::Config::Index.new([:plugin, :executors, :sendkey_executor])
27
+ ).fetch(:device_name, nil)
28
+
23
29
  if option[:list]
24
- puts Fusuma::Plugin::Sendkey::Keyboard.new(name_pattern: nil).search_codes
30
+ puts Fusuma::Plugin::Sendkey::Keyboard.new(name_pattern: device_name).search_codes
25
31
  return
26
32
  end
27
33
 
@@ -38,5 +44,5 @@ if param.nil?
38
44
  exit 1
39
45
  end
40
46
 
41
- keyboard = Fusuma::Plugin::Sendkey::Keyboard.new
47
+ keyboard = Fusuma::Plugin::Sendkey::Keyboard.new(name_pattern: device_name)
42
48
  keyboard.valid?(param: param) && keyboard.type(param: param)
@@ -20,8 +20,10 @@ Gem::Specification.new do |spec|
20
20
  spec.bindir = "exe"
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ["lib"]
23
- spec.required_ruby_version = ">= 2.5.1" # https://packages.ubuntu.com/search?keywords=ruby&searchon=names&exact=1&suite=all&section=main
24
- # support bionic (18.04LTS) 2.5.1
23
+
24
+ spec.required_ruby_version = ">= 2.7"
25
+ # https://packages.ubuntu.com/search?keywords=ruby&searchon=names&exact=1&suite=all&section=main
26
+ # support focal (20.04LTS) 2.7
25
27
 
26
28
  spec.add_dependency "fusuma", ">= 2.0"
27
29
  spec.add_dependency "revdev"
@@ -59,7 +59,7 @@ module Fusuma
59
59
  # @return [String]
60
60
  def search_keypress(event)
61
61
  # if fusuma_virtual_keyboard exists, don't have to keep modifiers
62
- return "" if keyboard.use_virtual_keyboard?
62
+ return "" if @device_name == "fusuma_virtual_keyboard"
63
63
 
64
64
  keys = event.record.index.keys
65
65
  keypress_index = keys.find_index { |k| k.symbol == :keypress }
@@ -0,0 +1,4 @@
1
+ plugin:
2
+ executors:
3
+ sendkey_executor:
4
+ device_name: keyboard|Keyboard|KEYBOARD
@@ -24,20 +24,17 @@ module Fusuma
24
24
  KEY_RIGHTMETA
25
25
  ].freeze
26
26
 
27
- DEFAULT_NAME_PATTERN = "keyboard|Keyboard|KEYBOARD"
28
- VIRTUAL_KEYBOARD = "fusuma_virtual_keyboard" # fusuma-plugin-remap creates uinput device
29
-
30
27
  def self.find_device(name_pattern:)
31
28
  Fusuma::Device.reset
32
- Fusuma::Device.all.find { |d| d.name.match(/#{name_pattern}/) }
29
+ Fusuma::Device.all.find { |d|
30
+ next unless d.capabilities.include? "keyboard"
31
+
32
+ d.name.match(/#{name_pattern}/)
33
+ }
33
34
  end
34
35
 
35
36
  def initialize(name_pattern: nil)
36
- device = if name_pattern
37
- Keyboard.find_device(name_pattern: name_pattern)
38
- else
39
- Keyboard.find_device(name_pattern: VIRTUAL_KEYBOARD) || Keyboard.find_device(name_pattern: DEFAULT_NAME_PATTERN)
40
- end
37
+ device = Keyboard.find_device(name_pattern: name_pattern)
41
38
 
42
39
  if device.nil?
43
40
  warn "sendkey: Keyboard: /#{name_pattern}/ is not found"
@@ -45,14 +42,9 @@ module Fusuma
45
42
  end
46
43
  MultiLogger.info "sendkey: Keyboard: #{device.name}"
47
44
 
48
- @use_virtual_keyboard = device.name.match(/#{VIRTUAL_KEYBOARD}/o)
49
45
  @device = Device.new(path: "/dev/input/#{device.id}")
50
46
  end
51
47
 
52
- def use_virtual_keyboard?
53
- @use_virtual_keyboard
54
- end
55
-
56
48
  # @param param [String] key names separated by '+' to type
57
49
  # @param keep [String] key names separated by '+' to keep
58
50
  # @param clear [String, Symbol, TrueClass] key names separated by '+' to clear or :all to relase all modifiers
@@ -3,7 +3,7 @@
3
3
  module Fusuma
4
4
  module Plugin
5
5
  module Sendkey
6
- VERSION = "0.9.0"
6
+ VERSION = "0.10.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-sendkey
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: 2023-08-19 00:00:00.000000000 Z
11
+ date: 2023-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fusuma
@@ -53,6 +53,7 @@ files:
53
53
  - exe/fusuma-sendkey
54
54
  - fusuma-plugin-sendkey.gemspec
55
55
  - lib/fusuma/plugin/executors/sendkey_executor.rb
56
+ - lib/fusuma/plugin/executors/sendkey_executor.yml
56
57
  - lib/fusuma/plugin/sendkey.rb
57
58
  - lib/fusuma/plugin/sendkey/device.rb
58
59
  - lib/fusuma/plugin/sendkey/keyboard.rb
@@ -69,14 +70,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
69
70
  requirements:
70
71
  - - ">="
71
72
  - !ruby/object:Gem::Version
72
- version: 2.5.1
73
+ version: '2.7'
73
74
  required_rubygems_version: !ruby/object:Gem::Requirement
74
75
  requirements:
75
76
  - - ">="
76
77
  - !ruby/object:Gem::Version
77
78
  version: '0'
78
79
  requirements: []
79
- rubygems_version: 3.3.26
80
+ rubygems_version: 3.4.10
80
81
  signing_key:
81
82
  specification_version: 4
82
83
  summary: Fusuma plugin to send keyboard events