xinput_wrapper 0.5.1 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/xinput_wrapper.rb +73 -7
- metadata +10 -10
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e4522c710fedfbd87d06378e9e3833ac5c1ed33ea8f39b2f7626b028c81e787
|
4
|
+
data.tar.gz: a5cabb6c182af563bb98dc1dce22b56ddda54c22552ac0a20b2e0b9e83b90f3e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d824a72ef9e9752631513d260204c81e397036e5e1c99822c2ea95a02375f059191cc89021e9999ef52db4d969b2a65ff85f5fbc6fa0344cf4a0d48cf26314a7
|
7
|
+
data.tar.gz: 6d9528dd576ba565fec74bcf2d305304a882785b336d8e85b2b44df657b697a0cd3ee45c4fb914e1b0a4d2587b3075b5d3bc2d37edb0267995bf4df65edd76e6
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/xinput_wrapper.rb
CHANGED
@@ -5,6 +5,11 @@
|
|
5
5
|
require 'c32'
|
6
6
|
|
7
7
|
|
8
|
+
MOTION = 6
|
9
|
+
RAWKEY_PRESS = 13
|
10
|
+
RAWKEY_RELEASE = 14
|
11
|
+
|
12
|
+
|
8
13
|
class XInputWrapper
|
9
14
|
using ColouredText
|
10
15
|
|
@@ -83,20 +88,73 @@ class XInputWrapper
|
|
83
88
|
|
84
89
|
type = 0
|
85
90
|
raw_keys = []
|
91
|
+
t1 = Time.now
|
92
|
+
lines = []
|
86
93
|
|
87
94
|
IO.popen(command).each_line do |x|
|
88
95
|
|
89
96
|
#print "GOT ", x
|
90
|
-
|
97
|
+
if x[/EVENT type \d \(Motion\)/] and (Time.now > (t1 + 0.06125)) then
|
98
|
+
|
99
|
+
type = x[/EVENT type (\d+)/,1].to_i
|
100
|
+
|
101
|
+
r = lines.join[/^\s+root: (\d+\.\d{2}\/\d+\.\d{2})/,1]
|
102
|
+
|
103
|
+
if r then
|
104
|
+
|
105
|
+
x1, y1 = r.split('/').map(&:to_f)
|
106
|
+
puts "x1: %s y1: %s" % [x1, y1] if @debug
|
107
|
+
on_mousemove(x1, y1)
|
108
|
+
t1 = Time.now
|
109
|
+
|
110
|
+
end
|
111
|
+
|
112
|
+
lines = [x]
|
113
|
+
|
114
|
+
elsif x[/EVENT type \d+ \(RawKey(?:Release|Press)\)/]
|
115
|
+
|
116
|
+
type = x[/EVENT type (\d+)/,1].to_i
|
117
|
+
|
118
|
+
lines = [x]
|
119
|
+
|
120
|
+
elsif type == MOTION or type == RAWKEY_PRESS or type == RAWKEY_RELEASE
|
121
|
+
|
122
|
+
lines << x
|
123
|
+
|
124
|
+
if x == "\n" then
|
125
|
+
case lines.first[/(?<=EVENT type )\d+/].to_i
|
126
|
+
when RAWKEY_PRESS
|
127
|
+
|
128
|
+
r = lines.join[/detail: (\d+)/,1]
|
129
|
+
|
130
|
+
keycode = r.to_i if r
|
91
131
|
|
92
|
-
|
93
|
-
|
132
|
+
type = lines.join[/EVENT type (\d+)/,1] .to_i
|
133
|
+
|
134
|
+
when RAWKEY_RELEASE
|
135
|
+
|
136
|
+
r = lines.join[/detail: (\d+)/,1]
|
137
|
+
|
138
|
+
keycode = r.to_i if r
|
139
|
+
|
140
|
+
type = lines.join[/EVENT type (\d+)/,1] .to_i
|
141
|
+
|
142
|
+
end
|
143
|
+
|
144
|
+
|
145
|
+
else
|
146
|
+
next
|
147
|
+
end
|
148
|
+
|
149
|
+
else
|
150
|
+
next
|
151
|
+
end
|
94
152
|
|
95
|
-
|
96
|
-
|
153
|
+
next unless keycode
|
154
|
+
puts 'keycode: ' + keycode.inspect if @debug
|
97
155
|
|
98
156
|
# type = 13 means a key has been pressed
|
99
|
-
if type ==
|
157
|
+
if type == RAWKEY_PRESS then
|
100
158
|
|
101
159
|
if @modifiers.include? raw_keys.last or @modifiers.include? keycode then
|
102
160
|
raw_keys << keycode
|
@@ -145,7 +203,7 @@ class XInputWrapper
|
|
145
203
|
|
146
204
|
|
147
205
|
# a key has been released
|
148
|
-
elsif type ==
|
206
|
+
elsif type == RAWKEY_RELEASE
|
149
207
|
|
150
208
|
# here we are only looking to detect a
|
151
209
|
# single modifier key press and release
|
@@ -187,6 +245,14 @@ class XInputWrapper
|
|
187
245
|
end
|
188
246
|
|
189
247
|
end
|
248
|
+
|
249
|
+
def on_mousemove(x,y)
|
250
|
+
|
251
|
+
if @debug then
|
252
|
+
puts "on_mousemove() x: %s y: %s" % [x, y]
|
253
|
+
end
|
254
|
+
|
255
|
+
end
|
190
256
|
|
191
257
|
def on_shift_key() end
|
192
258
|
def on_super_key() end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xinput_wrapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -35,28 +35,28 @@ cert_chain:
|
|
35
35
|
rryowfoo6nLmegcIZjm+zz/gkT/0udwMMVm2gwo0bIRQuQOLmd7IUNzYQKZQOGMA
|
36
36
|
g4ETbI8IEC3VCaoECdunsS3t
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2019-
|
38
|
+
date: 2019-05-08 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: c32
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
|
-
- - "~>"
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: '0.1'
|
47
44
|
- - ">="
|
48
45
|
- !ruby/object:Gem::Version
|
49
|
-
version: 0.
|
46
|
+
version: 0.2.0
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0.2'
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- - "~>"
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: '0.1'
|
57
54
|
- - ">="
|
58
55
|
- !ruby/object:Gem::Version
|
59
|
-
version: 0.
|
56
|
+
version: 0.2.0
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0.2'
|
60
60
|
description:
|
61
61
|
email: james@jamesrobertson.eu
|
62
62
|
executables: []
|
metadata.gz.sig
CHANGED
Binary file
|