xkeyrap 0.0.6 → 0.0.8

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