xinput_wrapper 0.7.0 → 0.8.0
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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/xinput_wrapper.rb +63 -26
- metadata +2 -2
- 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: 8bff9abfb50413d2ef185c472020cd348c53da5512b1f12d92ffbce10b491d2c
|
4
|
+
data.tar.gz: 4066ac4f9896ee680bff3a583bc1caf855c5bb17a43e40ff80aeaa4a9c01f263
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b8cd2b9b6c92418ed1d517d5f201b7e34e8ac7146ba8857d17b94638f4dd05eb626d8c75b1bd7afcc31ca475e7935302db2cb4015a75049a02fc843f3f278a9f
|
7
|
+
data.tar.gz: ce4b85f5cab6c0f613d0530c630ce227e15df0432e018b1aae15071484e7c72ef79708a21a771db7f5d50d2770aff051b4778f1d9ea9f4edfabdc4b927431459
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/xinput_wrapper.rb
CHANGED
@@ -31,10 +31,14 @@ class XInputWrapper
|
|
31
31
|
# 10 = USB Optical Mouse (locally attached)
|
32
32
|
# 11 = Microsoft Wired Keyboard 600 (locally attached)
|
33
33
|
#
|
34
|
+
|
35
|
+
# keys - add the keys you want to be captured. If empty then
|
36
|
+
# all keys are captured.
|
37
|
+
|
34
38
|
def initialize(device: nil, verbose: true, lookup: {}, debug: false,
|
35
|
-
callback: nil )
|
39
|
+
callback: nil, keys: [] )
|
36
40
|
|
37
|
-
@callback = callback
|
41
|
+
@callback, @keys = callback, keys
|
38
42
|
|
39
43
|
# defaults to QWERTY keyboard layout
|
40
44
|
@modifiers = {
|
@@ -100,6 +104,7 @@ class XInputWrapper
|
|
100
104
|
}.merge(@modifiers).merge(lookup)
|
101
105
|
|
102
106
|
@device, @verbose, @debug = device, verbose, debug
|
107
|
+
@mouse_pos = [0, 0]
|
103
108
|
|
104
109
|
end
|
105
110
|
|
@@ -202,7 +207,8 @@ class XInputWrapper
|
|
202
207
|
# type = 13 means a key has been pressed
|
203
208
|
if type == RAWKEY_PRESS then
|
204
209
|
|
205
|
-
if @modifiers.include? raw_keys.last or
|
210
|
+
if @modifiers.include? raw_keys.last or \
|
211
|
+
@modifiers.include? keycode then
|
206
212
|
raw_keys << keycode
|
207
213
|
end
|
208
214
|
|
@@ -224,10 +230,28 @@ class XInputWrapper
|
|
224
230
|
|
225
231
|
puts key.to_s + ' key presssed' if @verbose
|
226
232
|
name = "on_#{key}_key".to_sym
|
227
|
-
|
233
|
+
puts 'name: ' + name.inspect if @debug
|
234
|
+
|
235
|
+
if private_methods.include? name and (@keys.empty? or \
|
236
|
+
@keys.include? key.to_sym) then
|
237
|
+
puts 'before method' if @debug
|
238
|
+
method(name).call
|
239
|
+
end
|
228
240
|
|
229
241
|
keystring = ((key.length > 1 or key == ' ') ? "{%s}" % key : key)
|
230
|
-
|
242
|
+
|
243
|
+
if block_given? then
|
244
|
+
|
245
|
+
yield(keystring)
|
246
|
+
|
247
|
+
else
|
248
|
+
|
249
|
+
if @keys.empty? or @keys.include? key.to_sym then
|
250
|
+
on_key_press(keystring, keycode)
|
251
|
+
end
|
252
|
+
|
253
|
+
end
|
254
|
+
|
231
255
|
@callback.on_keypress(keystring, keycode) if @callback
|
232
256
|
|
233
257
|
end
|
@@ -240,9 +264,13 @@ class XInputWrapper
|
|
240
264
|
if block_given? then
|
241
265
|
yield(format_key(keys.last, keys[0..-2]))
|
242
266
|
else
|
243
|
-
|
244
|
-
@
|
267
|
+
|
268
|
+
if @keys.empty? or (!@keys.empty? and \
|
269
|
+
@keys.include? keys.last) then
|
270
|
+
on_key_press(keys.last, keycode, keys[0..-2])
|
271
|
+
end
|
245
272
|
end
|
273
|
+
@callback.on_keypress(keys.last, keycode, keys[0..-2]) if @callback
|
246
274
|
|
247
275
|
raw_keys = []
|
248
276
|
|
@@ -266,8 +294,14 @@ class XInputWrapper
|
|
266
294
|
yield(format_key(key.to_s))
|
267
295
|
|
268
296
|
else
|
269
|
-
name = "on_#{key}_key".to_sym
|
270
|
-
method
|
297
|
+
name = "on_#{key.to_s}_key".to_sym
|
298
|
+
puts 'calling method' if @debug
|
299
|
+
|
300
|
+
if private_methods.include? name and (@keys.empty? or \
|
301
|
+
@keys.include? key.to_sym) then
|
302
|
+
method(name).call #if self.methods.include? name
|
303
|
+
end
|
304
|
+
|
271
305
|
on_key_press(key, keycode)
|
272
306
|
@callback.on_keypress(key, keycode) if @callback
|
273
307
|
end
|
@@ -302,10 +336,14 @@ class XInputWrapper
|
|
302
336
|
end
|
303
337
|
end
|
304
338
|
|
305
|
-
|
339
|
+
private
|
340
|
+
|
341
|
+
def message(s)
|
342
|
+
puts 'msg: ' + s
|
343
|
+
end
|
306
344
|
|
307
|
-
def
|
308
|
-
|
345
|
+
def on_ctrl_key()
|
346
|
+
message 'ctrl key pressed'
|
309
347
|
end
|
310
348
|
|
311
349
|
def on_key_press(key, keycode, modifier=nil)
|
@@ -360,20 +398,18 @@ class XInputWrapper
|
|
360
398
|
def on_shift_key() end
|
361
399
|
def on_super_key() end
|
362
400
|
|
363
|
-
def on_f1_key()
|
364
|
-
def on_f2_key()
|
365
|
-
def on_f3_key()
|
366
|
-
def on_f4_key()
|
367
|
-
def on_f5_key()
|
368
|
-
def on_f6_key()
|
369
|
-
def on_f7_key()
|
370
|
-
def on_f8_key()
|
371
|
-
def on_f9_key()
|
372
|
-
def on_f10_key()
|
373
|
-
def on_f11_key()
|
374
|
-
def on_f12_key()
|
375
|
-
|
376
|
-
private
|
401
|
+
def on_f1_key() message 'f1' end
|
402
|
+
def on_f2_key() message 'f2' end
|
403
|
+
def on_f3_key() message 'f3' end
|
404
|
+
def on_f4_key() message 'f4' end
|
405
|
+
def on_f5_key() message 'f5' end
|
406
|
+
def on_f6_key() message 'f6' end
|
407
|
+
def on_f7_key() message 'f7' end
|
408
|
+
def on_f8_key() message 'f8' end
|
409
|
+
def on_f9_key() message 'f9' end
|
410
|
+
def on_f10_key() message 'f10' end
|
411
|
+
def on_f11_key() message 'f11' end
|
412
|
+
def on_f12_key() message 'f12' end
|
377
413
|
|
378
414
|
def format_key(key, modifier=[])
|
379
415
|
|
@@ -382,6 +418,7 @@ class XInputWrapper
|
|
382
418
|
|
383
419
|
end
|
384
420
|
|
421
|
+
def on_alt_key() message 'alt' end
|
385
422
|
def on_leftcontrol_key() on_control_key() end
|
386
423
|
def on_rightcontrol_key() on_control_key() end
|
387
424
|
def on_left_alt_key() on_alt_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.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
B//EUqLB2VKtMmcrYMc2FfbLwllNLY4TRq+/lgVLoDb7oLHsiggYSLZS6lPBIQj/
|
36
36
|
YnYsDKwN5siDA79sB0fqq2ml
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2020-08-
|
38
|
+
date: 2020-08-25 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: c32
|
metadata.gz.sig
CHANGED
Binary file
|