xinput_wrapperplus 0.2.0 → 0.4.2

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: 91c9092b58275c23427c5cd5bfac4e81e54a1ec47bb8c64a1cabe6a8ecf5d804
4
- data.tar.gz: 708883cdf9983f0be1d7c39ba253a17460d593b475ec2f253234a884a4c32647
3
+ metadata.gz: ec734043c5d8c8572b0d5da6a555637b5c486c8526e69b80bef1591b4b77fe9b
4
+ data.tar.gz: 49366c4e05296bfe79deb135eaac2e49544e03dcbbab386252c48cd59d057572
5
5
  SHA512:
6
- metadata.gz: 2e8cdc3d622d876fff697f4333cd8e2528913273d378bafdb66642e43153299db17eb8b589c1aa61661670ca12b283ef964118a54df6379790f43f6014929f4b
7
- data.tar.gz: be802787718245967459f5e854540317788479bbf1118872bdb8a5471c7424094e6f4364367049311494ace1844daffc591d758a4ae3eb554a005d99ba604457
6
+ metadata.gz: 138bacf2e34aa013c374afe6932d554b88e57d45c7fe1b6268727435a82950fda96232165952fbaeccf5a507848942c2d880602afdb4dd123f88e8b0683aff6c
7
+ data.tar.gz: 901bf06e728f93af941487a998f7aa28ba3696063b240ecc5e0a13fec63ea712b0b1eba89a80b6294caa982a89ebbbcdecf46445d238e52fbc370685b8808c31
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -10,45 +10,98 @@ require 'xinput_wrapper'
10
10
  class XInputWrapperPlus < XInputWrapper
11
11
 
12
12
  def initialize(device: '3', host: 'sps', port: '59000',
13
- topic: 'input/keyboard', verbose: true, lookup: {},
14
- debug: false, capture_all: false)
13
+ topic: 'input', verbose: true, lookup: {},
14
+ debug: false, capture_all: false, keys: [],
15
+ keypress_detection: true)
15
16
 
16
17
  super(device: device, verbose: verbose, lookup: lookup,
17
- debug: debug)
18
+ debug: debug, keys: keys)
19
+
18
20
  @topic, @capture_all = topic, capture_all
21
+ @keypress_detection = keypress_detection
22
+
19
23
  @sps = SPSPub.new host: host, port: port
20
24
  @sk = SecretKnock.new short_delay: 0.25, long_delay: 0.5,
21
25
  external: self, verbose: verbose, debug: debug
22
26
  @sk.detect timeout: 0.7
23
27
 
24
- end
28
+ @a = [] # Used to store mouse gestures
29
+ @timer, @t2 = nil , Time.now - 30
25
30
 
31
+ end
26
32
 
27
33
  def knock()
28
34
  puts 'knock' if @verbose
29
35
  end
30
-
31
- def message(msg)
36
+
37
+ def message(msg, subtopic=:keyboard)
32
38
 
33
39
  puts ':: ' + msg.inspect if @verbose
34
40
 
35
41
  return if msg.strip.empty?
36
42
 
37
- @sps.notice "%s: %s" % [@topic, msg]
43
+ topic = [@topic, subtopic].compact.join('/')
38
44
 
39
- end
45
+ @sps.notice "%s: %s" % [topic, msg]
46
+
47
+ end
40
48
 
41
- protected
49
+ private
50
+
51
+ def anykey_press()
52
+
53
+ if @keypress_detection and (Time.now > @t2 + 30) then
54
+ message 'keypress detected', nil
55
+ @t2 = Time.now
56
+ end
57
+
58
+ end
42
59
 
43
60
  def on_control_key()
44
61
  puts 'inside on_control_key' if @debug
45
62
  @sk.knock
46
63
  end
47
64
 
48
- def on_key_press(key, keycode)
65
+ def on_gesture(a)
66
+
67
+ puts 'inside on_gesture' if @debug
68
+ points = @a.map {|coords| coords.map {|x| x}.join(',') }.join(' ')
69
+ message points, 'motion'
70
+
71
+ end
72
+
73
+ def on_key_press(key, keycode, modifier=[])
74
+
49
75
  puts 'inside on_key_press' if @debug
50
- message key.to_s if @capture_all
76
+
77
+ message format_key(key, modifier) if @capture_all
78
+
51
79
  @sk.reset if @lookup[keycode] != :control
80
+
81
+ end
82
+
83
+ def on_mousemove(x,y)
84
+
85
+ if @debug then
86
+ puts "on_mousemove() x: %s y: %s" % [x, y]
87
+ end
88
+
89
+ @timer.exit if @timer
90
+
91
+ @a << [x,y]
92
+
93
+
94
+ @timer = Thread.new do
95
+
96
+ sleep 0.25
97
+ puts 'inside timer' if @debug
98
+
99
+ on_gesture(@a) if @a.length > 6 and @a.length < 36
100
+ @a = []
101
+
102
+ end
103
+
104
+
52
105
  end
53
106
 
54
107
  def on_super_key()
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xinput_wrapperplus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -10,27 +10,32 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDXjCCAkagAwIBAgIBATANBgkqhkiG9w0BAQUFADAsMSowKAYDVQQDDCFnZW1t
14
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTgwODA1MTQyNTE1WhcN
15
- MTkwODA1MTQyNTE1WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDRaOsM
17
- SPx7uw3NaAkRf7RbFf6TeFvRsuZIH+I3mb3hGgLFNPeFS4uXdnQSnbg0RT2fZMuB
18
- J/eL88+4KAh8jaLsM+KlRCUoJi6e6kvYYHANlefmtLHUJfF862XoqHbT2C0PxU8b
19
- zj+Jsoi8Mchiu5yH2cAXh3pzD8xrkI+OOhTiS+oJjVvTJOiIEelgfRw1XrmhTNtz
20
- /k/G1RPPXnrbJ6RJFThRgXhUCen6vc5ZO3vYRmvMWwW+Lu5YI1U+J5pEY4CYuYR3
21
- yIKEETbi2Xk+lktKr2UVp1AHlb8kXvCV8SBAM2RMWnM9AWzPldrOX+nPb6E8u3fj
22
- EDdS0kfwSh2T04NVAgMBAAGjgYowgYcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
23
- HQYDVR0OBBYEFIi6Dzmms9ESGJPV0s5nAz1x6Gd6MCYGA1UdEQQfMB2BG2dlbW1h
24
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTAmBgNVHRIEHzAdgRtnZW1tYXN0ZXJAamFt
25
- ZXNyb2JlcnRzb24uZXUwDQYJKoZIhvcNAQEFBQADggEBAHiYmg7O+Kjbmg/gFetT
26
- hraHXAUwue0Cfr3FHT9R1AOwEt7SYoVojaeMzf2r9goU/e42Pe4b4BP6EqAf5xod
27
- VqBCJX5cOGDAyiViCbsjfV9S3GIwCldzSexqyB8c72vvkZJQrQSMlwKI6A1irvim
28
- 7yg7yx3Hxk4KbFzuIERk932EwcjjDqYw654DztKPpnEyFZlTZT+mZOYaFghFcJVS
29
- wUvyr4SCo2/eIt0l3NBHnjsEbYCYQ22pUgEtcBsh9bm9A+jto5Qs7ws/jGlxX9Sm
30
- SK2jOkRNlfF9rY8O76O35JOdWJTBmi/UxMmyH0ISaWkk7/5E8Q1ZElsb7WR/Nlpk
31
- DHs=
13
+ MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjAwODI1MTI0NjA1WhcN
15
+ MjEwODI1MTI0NjA1WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDUcQ9Q
17
+ hWoREpFe1iiNNIh72yJEQOy7wlCjQN7hf57/0yqU1Lb37mfRdSQXEhAWJakWxPn/
18
+ VhTr9lhh7XgIIrDDMIIM0+qe0Ean+ctTQSl0kVTD0gz2yJ1Gn4S96vf69YeoLOr/
19
+ rnidQqQgMJ2yh6fmwbsXNLpBMhd2ZU0ly1ly6b6jkH4gkJLSSPakZ4cc2tbTcqsu
20
+ goh5h16uc/Mwmk/f/UCsSfuvyRM5gFTthfkXloGTBsvznN8xtnZlwmU+8Jwjp4HQ
21
+ HUfYvDtIwyCW44osWP+Av9IVNCv2OjJJgTc8EG58HW/rTLc+Nk7i7BqHAbRV9SJs
22
+ eVBLz/CUmi1yYy93vQtCwjwhOYpx+b12k2bISlNcHETzkHMdue0w1qXqdgD3kxkF
23
+ k/aLXRYaHAGK73hiJMtYjOQ6+WmzApeE+PfoZpL7HjAb0Emh+OdyjNMtPjl3sZbI
24
+ s/C5Cm+p7kDw8J3BmPFsboc4nQ51qni1z4G0xP0s3Ka4HvUrRvXsMYc08CMCAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUi8p2+J9R
26
+ y5R2KBWLSfNYrFOHyfQwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
+ c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
+ BgkqhkiG9w0BAQsFAAOCAYEAJpNOwQqItRT8dE38iQ9/J7x8fsSb9mBqKMwrqc9/
29
+ 5H8bKu49A+UDOlaS1ESvRAVKLL3mSlhxE56OUdfZsFHaoRyZkKp285l4HVgcmxJD
30
+ CrTqNIFDAMEnaG4FFwE3xcTHSCnSdxpVfgztz/KjLkwlWTumi7U3AQhlx3Yy8u4F
31
+ 5GnJ8Xnx94luWBMUlLPvIZo0gCHqomPAtd0OgGqmjsoAiZ90eYBieClDXUkHcQ9U
32
+ OZnar7W/SgfG8LGk+QYsffaVIZqzXT4vGyNBv3Yzt2Wrt7u/ZLNXgpaGS44kOBOU
33
+ C8PaoyXBQBUZNZQEYY0rKHqH/8yjKHHgueW1J2tULyk8FQEY2HVWXK/mSwE31S8n
34
+ 8rGJOGPSxtF8oNfS74KVO99PqLk4bp3vHjZp/jt07cQr2QiHyHq3hRBrA/U8WU6j
35
+ MAr0EaAbP4GPbdRnYZObrq03xJQOARWVRbH726l6usXEpiepoBKFXfqGNXX6DDt/
36
+ 2f3lRa47HGk7I26OxNboAPZQ
32
37
  -----END CERTIFICATE-----
33
- date: 2019-03-15 00:00:00.000000000 Z
38
+ date: 2020-08-27 00:00:00.000000000 Z
34
39
  dependencies:
35
40
  - !ruby/object:Gem::Dependency
36
41
  name: sps-pub
@@ -76,22 +81,22 @@ dependencies:
76
81
  name: xinput_wrapper
77
82
  requirement: !ruby/object:Gem::Requirement
78
83
  requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- version: 0.3.0
82
84
  - - "~>"
83
85
  - !ruby/object:Gem::Version
84
- version: '0.3'
86
+ version: '0.8'
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 0.8.1
85
90
  type: :runtime
86
91
  prerelease: false
87
92
  version_requirements: !ruby/object:Gem::Requirement
88
93
  requirements:
89
- - - ">="
90
- - !ruby/object:Gem::Version
91
- version: 0.3.0
92
94
  - - "~>"
93
95
  - !ruby/object:Gem::Version
94
- version: '0.3'
96
+ version: '0.8'
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: 0.8.1
95
100
  description:
96
101
  email: james@jamesrobertson.eu
97
102
  executables: []
@@ -118,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
123
  - !ruby/object:Gem::Version
119
124
  version: '0'
120
125
  requirements: []
121
- rubygems_version: 3.0.1
126
+ rubygems_version: 3.0.3
122
127
  signing_key:
123
128
  specification_version: 4
124
129
  summary: A wrapper for the Linux utility xinput. Publishes an SPS message whenever
metadata.gz.sig CHANGED
Binary file