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 +4 -4
- data/exe/fusuma-sendkey +8 -2
- data/fusuma-plugin-sendkey.gemspec +4 -2
- data/lib/fusuma/plugin/executors/sendkey_executor.rb +1 -1
- data/lib/fusuma/plugin/executors/sendkey_executor.yml +4 -0
- data/lib/fusuma/plugin/sendkey/keyboard.rb +6 -14
- data/lib/fusuma/plugin/sendkey/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c879caf4905b45fb0ac0b341920ce05b46656aaa8cceac946c6d80d672ef15b0
|
4
|
+
data.tar.gz: c3342151efbd9026776a576a5a888a1928f425e4a41c90d92b21639d9b4d04d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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:
|
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
|
-
|
24
|
-
|
23
|
+
|
24
|
+
spec.required_ruby_version = ">= 2.7"
|
25
|
+
# https://packages.ubuntu.com/search?keywords=ruby&searchon=names&exact=1&suite=all§ion=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
|
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 }
|
@@ -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|
|
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 =
|
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
|
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.
|
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-
|
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.
|
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.
|
80
|
+
rubygems_version: 3.4.10
|
80
81
|
signing_key:
|
81
82
|
specification_version: 4
|
82
83
|
summary: Fusuma plugin to send keyboard events
|