xkeyrap 0.0.19 → 0.0.20

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: eae37872151dc7bea00a1519f26b559702e3f07abcb582d53ae46cdef5e7e32a
4
- data.tar.gz: c4acc8ca4a7b39113609ce54a4a10bfdaa2c406eb988ff64d86712cf6cac240b
3
+ metadata.gz: 51485fe303d41a0964b7a0d685ff4ea7ac396137f43ea8ddba88b37c4e758b41
4
+ data.tar.gz: e9a08a687b85b672b2a9fba8bfa4d8c686df4a3c8b337b041ff324dbb52e0330
5
5
  SHA512:
6
- metadata.gz: 0b96902041f6b343df02a0079436fdaee0b23b9426b7257471f1ae77cd7fc8853421c78aa972b3e6ad9a1194e02a47a14f7245ae67fb40e830623866d12f821d
7
- data.tar.gz: e6518a51d7845c5af1c1a5464aa33d9143695ee5c1e9a9a48184b5443efd3fc7ad5673efec0ac64ef6740e5ecd27b52985f9dbbed835cae6f11099ef9ae34db3
6
+ metadata.gz: 5df9b4fc61a706b973bcc590967484057e9ef5134dc42f50ca298105cfd3e8b4acf43cb1de5a95af854a6af6b2d01f242d13e506a73f5438a5c71759e37852f9
7
+ data.tar.gz: a7c9119ccf5c0d969c95ecf6679334f93b3a074ccfcb8aa8ce5593e0312ca9570e923c2b1bab84f070a5a64fdbe0ee6a11ba97218f2566fe1772e5824aae9dbd
@@ -31,14 +31,17 @@ module Xkeyrap
31
31
  def receive(state, key, wm_class_name = "global")
32
32
  if Key.is_modifier_key?(key)
33
33
  if state == 1 || state == 2
34
+ puts "set modifier key: #{key}"
34
35
  self.modifier_key = key # and do nothing to output
35
36
  else # state = 0
37
+ puts "clear modifier key: #{self.modifier_key}"
36
38
  self.modifier_key = nil
37
39
  end
38
- else
40
+ else # normal key
39
41
  if self.modifier_key
40
42
  transport(self.modifier_key, key, state, wm_class_name)
41
43
  else
44
+ puts "normal key: #{key}"
42
45
  output_event(key, state, wm_class_name)
43
46
  end
44
47
  end
@@ -50,40 +53,34 @@ module Xkeyrap
50
53
 
51
54
  if wm_class_name == "Google-chrome"
52
55
  if mapped_modifier_key == :KEY_LEFTMETA
53
- case key
54
- when :KEY_A
55
- output_event(:KEY_HOME, 1, wm_class_name)
56
- output_event(:KEY_HOME, 0, wm_class_name)
57
- when :KEY_E
58
- output_event(:KEY_END, 1, wm_class_name)
59
- output_event(:KEY_END, 0, wm_class_name)
60
- when :KEY_B
61
- output_event(:KEY_LEFT, 1, wm_class_name)
62
- output_event(:KEY_LEFT, 0, wm_class_name)
63
- when :KEY_F
64
- output_event(:KEY_RIGHT, 1, wm_class_name)
65
- output_event(:KEY_RIGHT, 0, wm_class_name)
66
- when :KEY_N
67
- output_event(:KEY_DOWN, 1, wm_class_name)
68
- output_event(:KEY_DOWN, 0, wm_class_name)
69
- when :KEY_P
70
- output_event(:KEY_UP, 1, wm_class_name)
71
- output_event(:KEY_UP, 0, wm_class_name)
72
- else
73
- output_combine(mapped_modifier_key, key, state, wm_class_name)
74
- end
75
- end
76
- else
56
+ mapped_key_config = {
57
+ :KEY_A => :KEY_HOME,
58
+ :KEY_E => :KEY_END,
59
+ :KEY_B => :KEY_LEFT,
60
+ :KEY_F => :KEY_RIGHT,
61
+ :KEY_N => :KEY_DOWN,
62
+ :KEY_P => :KEY_UP
63
+ }
64
+ mapped_key = mapped_key_config[key] || mapped_key
65
+ puts "transport mapped key is #{mapped_key}"
66
+ output_event(:mapped_key, state, wm_class_name)
67
+ self.modifier_key = nil
68
+ else # normal combine (e.g ctrl+c ctrl+v)
77
69
  output_combine(mapped_modifier_key, key, state, wm_class_name)
78
70
  end
79
71
  end
80
72
 
81
- def output_combine(modifier_key, key, state, wm_class_name)
73
+ def output_combine(modifier_key, key, state, wm_class_name)
74
+ puts "output combine: #{modifier_key}, #{key}, #{state}, #{wm_class_name}"
75
+ # output_event(self.modifier_key, 1, wm_class_name)
76
+ # output_event(key, state, wm_class_name)
77
+ # output_event(self.modifier_key, 0, wm_class_name)
82
78
  if state == 1
83
- output_event(self.modifier_key, 1, wm_class_name)
84
- output_event(key, state, wm_class_name)
85
- output_event(self.modifier_key, 0, wm_class_name)
79
+ self.output_device.send_event(:EV_KEY, self.modifier_key, 1)
80
+ self.output_device.send_event(:EV_KEY, key, state)
81
+ self.output_device.send_event(:EV_KEY, self.modifier_key, 0)
86
82
  end
83
+ self.output_device.send_event(:EV_SYN, :SYN_REPORT)
87
84
  self.modifier_key = nil
88
85
  end
89
86
 
@@ -1,3 +1,3 @@
1
1
  module Xkeyrap
2
- VERSION = "0.0.19"
2
+ VERSION = "0.0.20"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xkeyrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.19
4
+ version: 0.0.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - teddy