xkeyrap 0.0.19 → 0.0.20

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
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