xkeyrap 0.0.11 → 0.0.12

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: 367d7c8937513520bed251b8f22567cba09cb69da0df0f82ed93406e7f12001b
4
- data.tar.gz: 1727b9a683b43f6aeb83897e3a7c95b8f48894e6eaf2d5b42079092eb3a1d2c5
3
+ metadata.gz: 5166ef8f9f2b8c64a5a4e5642f0eba0cde66cac757d735d1c68b6b13c3edcc87
4
+ data.tar.gz: f20626547c836198596d8d3cd2f046f249c62a8f6fe1f645440bc83c82f6e65b
5
5
  SHA512:
6
- metadata.gz: fae3c332f02175bab10a1d94f921131c07c314b673217801b6f65dea758f892dd39a0955131c6b8479818e2baf76e96d8a3303f020fe061106ad2474fc75731a
7
- data.tar.gz: 5eece7fa73f55810b4d860f0cc1eca708426f58d0ab5da8f515aff8dc9beccc11c766f34f6d5af10c43ab237d5137977ab63da46179633520af92bb400be7900
6
+ metadata.gz: 554f1143b2ddd626f4ad3aab2aeed619b175899c9133ab139363303257be66014469427a3ef761c7c1ae2c7056cc40e04097fd02c094237e537659223001878b
7
+ data.tar.gz: a40e3b718a36dc73f9cf9d7f46ef2717e617229246423f7e01f2636b83dd45f082b4a48f08d42bc4107daf854c60e59cb753e6ab1f76c25bf6c77d034d70bff4
@@ -4,10 +4,12 @@ require 'uinput/device'
4
4
 
5
5
  module Xkeyrap
6
6
  class Command
7
+ attr_accessor :modifier_key
7
8
  attr_accessor :output_device
8
9
  attr_accessor :config
9
10
 
10
11
  def initialize(device, config)
12
+ self.modifier_key = nil
11
13
  self.output_device = device
12
14
  unless config
13
15
  self.config = {
@@ -27,6 +29,21 @@ module Xkeyrap
27
29
  end
28
30
 
29
31
  def receive(state, key, wm_class_name = "global")
32
+ if Key.is_modifier_key?(key) && state == 1
33
+ self.modifier_key = key # and do nothing to output
34
+ else
35
+ if self.modifier_key
36
+ output_event(self.modifier_key, 1)
37
+ output_event(key, state)
38
+ output_event(self.modifier_key, 0)
39
+ self.modifier_key = nil
40
+ else
41
+ output_event(key, state)
42
+ end
43
+ end
44
+ end
45
+
46
+ def output_event(key, state)
30
47
  sub_json = self.config[wm_class_name.to_sym] || self.config[:global]
31
48
  mapped_key = sub_json[key] || self.config[:global][key] || key
32
49
  puts "#{wm_class_name} | #{state} | origin: #{key} | mapped: #{mapped_key}"
data/lib/xkeyrap/key.rb CHANGED
@@ -113,5 +113,9 @@ module Xkeyrap
113
113
 
114
114
  ALL_KEYS = NUMBER_KEYS + MISC_KEYS + LETTER_KEYS + MODIFIER_KEYS + FUNCTION_KEYS
115
115
 
116
+ def self.is_modifier_key?(key)
117
+ MODIFIER_KEYS.include?(key)
118
+ end
119
+
116
120
  end
117
121
  end
@@ -1,3 +1,3 @@
1
1
  module Xkeyrap
2
- VERSION = "0.0.11"
2
+ VERSION = "0.0.12"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xkeyrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - teddy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-26 00:00:00.000000000 Z
11
+ date: 2018-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler