xinput_wrapperplus 0.1.0 → 0.4.1

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
- SHA1:
3
- metadata.gz: f42a6925dce55ad8b7554b4f7614e5797c856a00
4
- data.tar.gz: ededd746e569b1fff670e990fa4c114ef25f7835
2
+ SHA256:
3
+ metadata.gz: 25ba1b759531225d0d10183d516094c1f6741d299849df50bc6bdfb50861caee
4
+ data.tar.gz: 18368ef8cb64cad32e14a1c6becccdc70a9fc81fb9c55af55b5f11a4a51146f5
5
5
  SHA512:
6
- metadata.gz: 14a0bcf5afbcd73cc4825245f33b9a0660c6fe21e988f638589cebdc1cb044f1442d234353b5eb8fe9458ef70d22d927d429f3ce3f44586e7ea5b5f2bb6202aa
7
- data.tar.gz: d9da795f974575122bdeb4df6839c78a3505c513ad373e60d44f4e773581593957cc6d4d8eae5cf666de6b03a80dddcdaeb1f5c69ba221bb96619641a7e4a733
6
+ metadata.gz: a66ea82e2e5a889f1a06a12d4e0b459416ec70434b72f2f296c875f80c55bae1ea98e2d59e61c58a6cbd6af6c95f845fb2dd1940626f9e75b6c8d3f086fb4da6
7
+ data.tar.gz: 7a7be9900ecca9af301f98b0ddbb1752b47520c375be0b62312bf38bfd1a2021b60bc82d2c28bec5e27d8dad49d36f13da0885ce5218ea594809f3b90bd4d519
Binary file
data.tar.gz.sig CHANGED
@@ -1,3 +1,7 @@
1
- |�,1pt�����Fj^�^dg��WXAI�)��j7Y9A~ .7W��
2
- C��oUb����V�6⣭�c�(���i���ZЯ�{m���a���Dt5~�����ߙL]K�`6���Q����b�� Q�0�ޣנ����c���4��$,��,7<
3
- ��rGvP?�Q�'D�� ��$
1
+ z��weU��}Ul��J>D+�;6q7��8<)x'ev$��^P_r�k��ڄ.Sץ�M�ݼ�����f�����
2
+ ־��>�x�+���Cfʛrq�Z��(����)w�6���6=�Z�
3
+ If*���̑�x�T'����wa�{Ej%6r�mK�[<aH�� u
4
+ ���V�Qު!����:���8 ���h��K�`�,'?�m�,n�l'�2
5
+ 6��+�s�-_�S ����C �M)���د5�h׃��~l���
6
+ �+��HT��[2�N�44Y �?#��r�
7
+ �MS���ct�<�"��8o������Ыx�S��r��.���'mXK�IR�-i��M0+�}��|�
@@ -10,47 +10,89 @@ 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)
13
+ topic: 'input', verbose: true, lookup: {},
14
+ debug: false, capture_all: false, keys: [])
15
15
 
16
16
  super(device: device, verbose: verbose, lookup: lookup,
17
- debug: debug)
18
- @topic = topic
17
+ debug: debug, keys: keys)
18
+
19
+ @topic, @capture_all = topic, capture_all
19
20
  @sps = SPSPub.new host: host, port: port
20
21
  @sk = SecretKnock.new short_delay: 0.25, long_delay: 0.5,
21
22
  external: self, verbose: verbose, debug: debug
22
23
  @sk.detect timeout: 0.7
23
- end
24
24
 
25
+ @a = [] # Used to store mouse gestures
26
+ @timer = nil
27
+
28
+ end
25
29
 
26
30
  def knock()
27
31
  puts 'knock' if @verbose
28
32
  end
29
-
30
- def message(msg)
33
+
34
+ def message(msg, subtopic=:keyboard)
31
35
 
32
36
  puts ':: ' + msg.inspect if @verbose
33
37
 
34
38
  return if msg.strip.empty?
35
39
 
36
- @sps.notice "%s: %s" % [@topic, msg]
40
+ topic = [@topic, subtopic].join('/')
41
+
42
+ @sps.notice "%s: %s" % [topic, msg]
37
43
 
38
- end
44
+ end
39
45
 
40
- protected
46
+ private
41
47
 
42
48
  def on_control_key()
43
49
  puts 'inside on_control_key' if @debug
44
50
  @sk.knock
45
51
  end
46
52
 
47
- def on_key_press(keycode)
53
+ def on_gesture(a)
54
+
55
+ puts 'inside on_gesture' if @debug
56
+ points = @a.map {|coords| coords.map {|x| x}.join(',') }.join(' ')
57
+ message points, 'motion'
58
+
59
+ end
60
+
61
+ def on_key_press(key, keycode, modifier=[])
62
+
48
63
  puts 'inside on_key_press' if @debug
64
+
65
+ message format_key(key, modifier) if @capture_all
66
+
49
67
  @sk.reset if @lookup[keycode] != :control
68
+
69
+ end
70
+
71
+ def on_mousemove(x,y)
72
+
73
+ if @debug then
74
+ puts "on_mousemove() x: %s y: %s" % [x, y]
75
+ end
76
+
77
+ @timer.exit if @timer
78
+
79
+ @a << [x,y]
80
+
81
+
82
+ @timer = Thread.new do
83
+
84
+ sleep 0.25
85
+ puts 'inside timer' if @debug
86
+
87
+ on_gesture(@a) if @a.length > 6 and @a.length < 36
88
+ @a = []
89
+
90
+ end
91
+
92
+
50
93
  end
51
94
 
52
95
  def on_super_key()
53
96
  message 'super key pressed'
54
97
  end
55
98
  end
56
-
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.1.0
4
+ version: 0.4.1
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: 2018-08-05 00:00:00.000000000 Z
38
+ date: 2020-08-25 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.2'
82
84
  - - ">="
83
85
  - !ruby/object:Gem::Version
84
- version: 0.2.0
86
+ version: 0.8.0
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.8'
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.2'
92
94
  - - ">="
93
95
  - !ruby/object:Gem::Version
94
- version: 0.2.0
96
+ version: 0.8.0
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '0.8'
95
100
  description:
96
101
  email: james@jamesrobertson.eu
97
102
  executables: []
@@ -118,8 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
123
  - !ruby/object:Gem::Version
119
124
  version: '0'
120
125
  requirements: []
121
- rubyforge_project:
122
- rubygems_version: 2.6.13
126
+ rubygems_version: 3.0.3
123
127
  signing_key:
124
128
  specification_version: 4
125
129
  summary: A wrapper for the Linux utility xinput. Publishes an SPS message whenever
metadata.gz.sig CHANGED
Binary file