xkeyrap 0.0.6 → 0.0.8

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: c15516786f57425708b4d610b99c2ea14b7fcdc4153c42697cf0f604df919cbe
4
- data.tar.gz: b23372edd1e9e521bf7c3a957e49b3ada9e5df948dea5da29d1f257ef03d40cf
3
+ metadata.gz: 53d65df084224617a2b2e9e7c785c26169a699129b04a6304e3d8dbd692609b0
4
+ data.tar.gz: 273876407024ab07ae36d093783e7fb509dbd15dabb2c7ca65b0d0f33f928419
5
5
  SHA512:
6
- metadata.gz: 7ca445bb0c5f0c664a4c0c4e9d4c33643e5e6f85423e56a4f2b32121300ac3f94ef1a86a4a2c5aa0dcd2e8af112effbca3e5b21548c7566e44c6eece4be26870
7
- data.tar.gz: 271f0fd8eff5b24be135423917285c45140f8f421796f773f166081ee6682eaf30e4e56d2173b64bc8c0450a352f8a7731631508b65eba4052eecd3e9544d7bf
6
+ metadata.gz: 76e0757655a469cae1a96329117aa128d05c9a74fdd3b0f89ce733082a8b1de1f61f1018bea08c067f8cafc7dbd500cc1b6c5034637f6805704e6be4ba03f5b5
7
+ data.tar.gz: 0c73fa4e02107bb8c7543b61dc0d83f4649a2c986436e8843d70b1dede44fb12c873d20fe7769d06d4b2e5b53382ff7c4c7e4f8e11562e7b988513f81f1e58c0
data/bin/xkeyrap CHANGED
@@ -1,6 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'xkeyrap'
4
- device = ARGV[1]
5
- puts "grab device: #{device}"
6
- Xkeyrap::Cli.run(device)
4
+ keyboard_device = ARGV[1]
5
+ puts "#########################################"
6
+ puts "grab device: #{keyboard_device}"
7
+ puts "#########################################"
8
+ Xkeyrap::Cli.run(keyboard_device)
@@ -1,6 +1,5 @@
1
1
  require "evdev"
2
2
  require 'libevdev'
3
-
4
3
  require 'uinput/device'
5
4
 
6
5
  module Xkeyrap
data/lib/xkeyrap/key.rb CHANGED
@@ -98,6 +98,9 @@ module Xkeyrap
98
98
  :KEY_F10,
99
99
  :KEY_F11,
100
100
  :KEY_F12,
101
+ :KEY_MUTE,
102
+ :KEY_VOLUMEDOWN,
103
+ :KEY_VOLUMEUP
101
104
  ]
102
105
 
103
106
  ALL_KEYS = NUMBER_KEYS + MISC_KEYS + LETTER_KEYS + MODIFIER_KEYS + FUNCTION_KEYS
@@ -1,3 +1,3 @@
1
1
  module Xkeyrap
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.8"
3
3
  end
data/lib/xkeyrap.rb CHANGED
@@ -9,10 +9,9 @@ require 'uinput/device'
9
9
 
10
10
  module Xkeyrap
11
11
  class Cli
12
-
13
- def self.run(device)
12
+ def self.run(keyboard_device)
14
13
  display = XlibObj::Display.new(':0')
15
- device = Uinput::Device.new do
14
+ virtual_device = Uinput::Device.new do
16
15
  self.name = "Xkeyrap virtual device"
17
16
  self.type = LinuxInput::BUS_VIRTUAL
18
17
 
@@ -24,12 +23,12 @@ module Xkeyrap
24
23
  self.add_event(:EV_SYN)
25
24
  end
26
25
 
27
- keyboard = Evdev.new(device)
26
+ keyboard = Evdev.new(keyboard_device)
28
27
  keyboard.grab
29
28
 
30
- command = Command.new(device, nil)
29
+ command = Command.new(virtual_device, nil)
31
30
 
32
- key_handler = keyboard.on(*Xkeyrap::Key::ALL_KEYS) do |state, key|
31
+ keyboard.on(*Xkeyrap::Key::ALL_KEYS) do |state, key|
33
32
  root_window = display.screens.first.root_window
34
33
  top_level_windows = root_window.property(:_NET_CLIENT_LIST_STACKING)
35
34
  focused_window = display.focused_window
@@ -57,10 +56,14 @@ module Xkeyrap
57
56
  parent = FFI::MemoryPointer.new :Window
58
57
  number = FFI::MemoryPointer.new :uint
59
58
  children = FFI::MemoryPointer.new :pointer
60
- q = Xlib.XQueryTree(display.to_native, focused_window.to_native, root, parent, children, number)
61
- parent_window_id = parent.read(:int)
62
- parent_window = top_level_windows.select {|tlw| tlw.id == parent_window_id }.first
63
- parent_window.property("WM_CLASS")[1]
59
+ begin
60
+ q = Xlib.XQueryTree(display.to_native, focused_window.to_native, root, parent, children, number)
61
+ parent_window_id = parent.read(:int)
62
+ parent_window = top_level_windows.select {|tlw| tlw.id == parent_window_id }.first
63
+ parent_window.property("WM_CLASS")[1]
64
+ rescue
65
+ "global"
66
+ end
64
67
  end
65
68
  end
66
69
  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.6
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - teddy