fusuma-plugin-sendkey 0.5.1 → 0.6.0.pre
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/.rubocop.yml +10 -1
- data/Gemfile +12 -0
- data/README.md +1 -1
- data/exe/fusuma-sendkey +1 -0
- data/fusuma-plugin-sendkey.gemspec +1 -12
- data/lefthook.yml +29 -0
- data/lib/fusuma/plugin/executors/sendkey_executor.rb +25 -6
- data/lib/fusuma/plugin/sendkey/keyboard.rb +9 -6
- data/lib/fusuma/plugin/sendkey/version.rb +1 -1
- metadata +11 -150
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f604b8593c06c599afd8bd3c14344fcb503e2ffacc48025550c78daa8b970ae
|
4
|
+
data.tar.gz: 80f5ed997dac202b7f86f2f518538cf6181e54ec84bb52d47e92412b77c1645f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff64de3322846b3df4e476767a6ea78d406a773295d3c3c3b2997a13797468c3fc2cef4d46c82c6db325ba7513710bf797088c7199fcd4e26479cc35714071d7
|
7
|
+
data.tar.gz: 11cbe3e6612ae1e4f2d9f466c0a26283d2a144a1f369c19d9eb0414095e9508ad329278788ef6f58efeba8f8d47ad106ce113d1d2feba68edee49ef032d36287
|
data/.rubocop.yml
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
AllCops:
|
2
|
+
TargetRubyVersion: 2.4
|
3
|
+
NewCops: enable
|
4
|
+
Layout/BeginEndAlignment:
|
5
|
+
Enabled: true
|
6
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
7
|
+
Enabled: true
|
8
|
+
|
1
9
|
Metrics/ModuleLength:
|
2
10
|
Exclude:
|
3
11
|
- "**/*_spec.rb"
|
@@ -7,9 +15,10 @@ Metrics/BlockLength:
|
|
7
15
|
- "**/*_spec.rb"
|
8
16
|
- "fusuma-plugin-*.gemspec"
|
9
17
|
|
10
|
-
|
18
|
+
Layout/LineLength:
|
11
19
|
Max: 100
|
12
20
|
Exclude:
|
21
|
+
- "**/*_spec.rb"
|
13
22
|
- "fusuma-plugin-*.gemspec"
|
14
23
|
|
15
24
|
Style/HashEachMethods:
|
data/Gemfile
CHANGED
@@ -2,3 +2,15 @@ source "https://rubygems.org"
|
|
2
2
|
|
3
3
|
# Specify your gem's dependencies in fusuma-plugin-sendkey.gemspec
|
4
4
|
gemspec
|
5
|
+
|
6
|
+
gem 'bundler'
|
7
|
+
gem 'github_changelog_generator', '~> 1.14'
|
8
|
+
gem 'pry-byebug', '~> 3.4'
|
9
|
+
gem 'pry-doc'
|
10
|
+
gem 'pry-inline'
|
11
|
+
gem 'rake', '~> 13.0'
|
12
|
+
gem 'reek'
|
13
|
+
gem 'rspec', '~> 3.0'
|
14
|
+
gem 'rubocop'
|
15
|
+
gem 'yard'
|
16
|
+
gem 'lefthook'
|
data/README.md
CHANGED
@@ -13,7 +13,7 @@ Run the following code in your terminal.
|
|
13
13
|
|
14
14
|
**NOTE: If you have installed ruby by apt, you must install ruby-dev.**
|
15
15
|
```sh
|
16
|
-
$ sudo apt-get install libevdev-dev ruby-dev
|
16
|
+
$ sudo apt-get install libevdev-dev ruby-dev build-essential
|
17
17
|
```
|
18
18
|
|
19
19
|
### Install fusuma-plugin-sendkey
|
data/exe/fusuma-sendkey
CHANGED
@@ -24,17 +24,6 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
25
25
|
spec.require_paths = ['lib']
|
26
26
|
|
27
|
-
spec.add_dependency 'fusuma', '~>
|
27
|
+
spec.add_dependency 'fusuma', '~> 2.0.0.pre'
|
28
28
|
spec.add_dependency 'revdev'
|
29
|
-
|
30
|
-
spec.add_development_dependency 'bundler'
|
31
|
-
spec.add_development_dependency 'github_changelog_generator', '~> 1.14'
|
32
|
-
spec.add_development_dependency 'pry-byebug', '~> 3.4'
|
33
|
-
spec.add_development_dependency 'pry-doc'
|
34
|
-
spec.add_development_dependency 'pry-inline'
|
35
|
-
spec.add_development_dependency 'rake', '~> 13.0'
|
36
|
-
spec.add_development_dependency 'reek'
|
37
|
-
spec.add_development_dependency 'rspec', '~> 3.0'
|
38
|
-
spec.add_development_dependency 'rubocop'
|
39
|
-
spec.add_development_dependency 'yard'
|
40
29
|
end
|
data/lefthook.yml
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# EXAMPLE USAGE
|
2
|
+
# Refer for explanation to following link:
|
3
|
+
# https://github.com/Arkweid/lefthook/blob/master/docs/full_guide.md
|
4
|
+
|
5
|
+
# pre-push:
|
6
|
+
# commands:
|
7
|
+
# packages-audit:
|
8
|
+
# tags: frontend security
|
9
|
+
# run: yarn audit
|
10
|
+
# gems-audit:
|
11
|
+
# tags: backend security
|
12
|
+
# run: bundle audit
|
13
|
+
|
14
|
+
pre-commit:
|
15
|
+
parallel: true
|
16
|
+
commands:
|
17
|
+
# eslint:
|
18
|
+
# glob: "*.{js,ts}"
|
19
|
+
# run: yarn eslint {staged_files}
|
20
|
+
rubocop:
|
21
|
+
tags: backend style
|
22
|
+
glob: "*.rb"
|
23
|
+
# exclude: "application.rb|routes.rb"
|
24
|
+
run: bundle exec rubocop --force-exclusion {staged_files}
|
25
|
+
# scripts:
|
26
|
+
# "hello.js":
|
27
|
+
# runner: node
|
28
|
+
# "any.go":
|
29
|
+
# runner: go run
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative '../sendkey/keyboard
|
3
|
+
require_relative '../sendkey/keyboard'
|
4
4
|
|
5
5
|
module Fusuma
|
6
6
|
module Plugin
|
@@ -13,19 +13,29 @@ module Fusuma
|
|
13
13
|
}
|
14
14
|
end
|
15
15
|
|
16
|
-
# execute sendkey command
|
16
|
+
# fork and execute sendkey command
|
17
17
|
# @param event [Event]
|
18
18
|
# @return [nil]
|
19
19
|
def execute(event)
|
20
20
|
MultiLogger.info(sendkey: search_param(event))
|
21
21
|
pid = fork do
|
22
22
|
Process.daemon(true)
|
23
|
-
|
23
|
+
_execute(event)
|
24
24
|
end
|
25
25
|
|
26
26
|
Process.detach(pid)
|
27
27
|
end
|
28
28
|
|
29
|
+
# execute sendkey command
|
30
|
+
# @param event [Event]
|
31
|
+
# @return [nil]
|
32
|
+
def _execute(event)
|
33
|
+
keyboard.type(
|
34
|
+
param: search_param(event),
|
35
|
+
keep: search_keypress(event)
|
36
|
+
)
|
37
|
+
end
|
38
|
+
|
29
39
|
# check executable
|
30
40
|
# @param event [Event]
|
31
41
|
# @return [TrueClass, FalseClass]
|
@@ -39,15 +49,24 @@ module Fusuma
|
|
39
49
|
|
40
50
|
def keyboard
|
41
51
|
@keyboard ||= begin
|
42
|
-
|
43
|
-
|
44
|
-
|
52
|
+
name_pattren = config_params(:device_name)
|
53
|
+
Sendkey::Keyboard.new(name_pattern: name_pattren)
|
54
|
+
end
|
45
55
|
end
|
46
56
|
|
47
57
|
def search_param(event)
|
48
58
|
index = Config::Index.new([*event.record.index.keys, :sendkey])
|
49
59
|
Config.search(index)
|
50
60
|
end
|
61
|
+
|
62
|
+
# @param event [Event]
|
63
|
+
# @return [String]
|
64
|
+
def search_keypress(event)
|
65
|
+
keys = event.record.index.keys
|
66
|
+
keypress_index = keys.find_index { |k| k.symbol == :keypress }
|
67
|
+
code = keypress_index && keys[keypress_index + 1].symbol
|
68
|
+
code.to_s
|
69
|
+
end
|
51
70
|
end
|
52
71
|
end
|
53
72
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'revdev'
|
4
4
|
require 'fusuma/device'
|
5
5
|
|
6
|
-
require_relative './device
|
6
|
+
require_relative './device'
|
7
7
|
|
8
8
|
module Fusuma
|
9
9
|
module Plugin
|
@@ -25,12 +25,14 @@ module Fusuma
|
|
25
25
|
attr_reader :device
|
26
26
|
|
27
27
|
# @param param [String]
|
28
|
-
|
28
|
+
# @param keep [String]
|
29
|
+
def type(param:, keep: '')
|
29
30
|
return unless param.is_a?(String)
|
30
31
|
|
31
|
-
|
32
|
+
keep_keycodes = split_param(keep)
|
33
|
+
keycodes = split_param(param) - keep_keycodes
|
32
34
|
|
33
|
-
clear_modifiers
|
35
|
+
clear_modifiers(keep_keycodes)
|
34
36
|
keycodes.each { |keycode| key_event(keycode: keycode, press: true) }
|
35
37
|
key_sync(press: true)
|
36
38
|
keycodes.reverse.map { |keycode| key_event(keycode: keycode, press: false) }
|
@@ -99,10 +101,11 @@ module Fusuma
|
|
99
101
|
Object.const_get "LinuxInput::#{keycode}"
|
100
102
|
end
|
101
103
|
|
102
|
-
def clear_modifiers
|
104
|
+
def clear_modifiers(keycodes)
|
103
105
|
modifiers = %w[ CAPSLOCK LEFTALT LEFTCTRL LEFTMETA
|
104
106
|
LEFTSHIFT RIGHTALT RIGHTCTRL RIGHTSHIFT ]
|
105
|
-
|
107
|
+
.map { |code| key_prefix(code) }
|
108
|
+
(modifiers - keycodes).each { |code| key_event(keycode: code, press: false) }
|
106
109
|
end
|
107
110
|
|
108
111
|
private
|
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.6.0.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- iberianpig
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fusuma
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 2.0.0.pre
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 2.0.0.pre
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: revdev
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,146 +38,6 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: bundler
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: github_changelog_generator
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '1.14'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '1.14'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: pry-byebug
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '3.4'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '3.4'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: pry-doc
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: pry-inline
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: rake
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - "~>"
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '13.0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - "~>"
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '13.0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: reek
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - ">="
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - ">="
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: rspec
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - "~>"
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '3.0'
|
146
|
-
type: :development
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - "~>"
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '3.0'
|
153
|
-
- !ruby/object:Gem::Dependency
|
154
|
-
name: rubocop
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
156
|
-
requirements:
|
157
|
-
- - ">="
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: '0'
|
160
|
-
type: :development
|
161
|
-
prerelease: false
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
163
|
-
requirements:
|
164
|
-
- - ">="
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: '0'
|
167
|
-
- !ruby/object:Gem::Dependency
|
168
|
-
name: yard
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
170
|
-
requirements:
|
171
|
-
- - ">="
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: '0'
|
174
|
-
type: :development
|
175
|
-
prerelease: false
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
177
|
-
requirements:
|
178
|
-
- - ">="
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
version: '0'
|
181
41
|
description: Fusuma::Plugin::Sendkey emulate keyboard events with evdev
|
182
42
|
email:
|
183
43
|
- yhkyky@gmail.com
|
@@ -200,6 +60,7 @@ files:
|
|
200
60
|
- bin/setup
|
201
61
|
- exe/fusuma-sendkey
|
202
62
|
- fusuma-plugin-sendkey.gemspec
|
63
|
+
- lefthook.yml
|
203
64
|
- lib/fusuma/plugin/executors/sendkey_executor.rb
|
204
65
|
- lib/fusuma/plugin/sendkey.rb
|
205
66
|
- lib/fusuma/plugin/sendkey/device.rb
|
@@ -209,7 +70,7 @@ homepage: https://github.com/iberianpig/fusuma-plugin-sendkey
|
|
209
70
|
licenses:
|
210
71
|
- MIT
|
211
72
|
metadata: {}
|
212
|
-
post_install_message:
|
73
|
+
post_install_message:
|
213
74
|
rdoc_options: []
|
214
75
|
require_paths:
|
215
76
|
- lib
|
@@ -220,12 +81,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
220
81
|
version: '0'
|
221
82
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
222
83
|
requirements:
|
223
|
-
- - "
|
84
|
+
- - ">"
|
224
85
|
- !ruby/object:Gem::Version
|
225
|
-
version:
|
86
|
+
version: 1.3.1
|
226
87
|
requirements: []
|
227
|
-
rubygems_version: 3.
|
228
|
-
signing_key:
|
88
|
+
rubygems_version: 3.1.4
|
89
|
+
signing_key:
|
229
90
|
specification_version: 4
|
230
91
|
summary: Fusuma plugin to send keyboard events
|
231
92
|
test_files: []
|