xinput_wrapperplus 0.2.0 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
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