mirror of https://github.com/k0kubun/xremap
Grab keys only when active window is changed
parent
36d41a3c99
commit
fc993cee6e
@ -0,0 +1,13 @@
|
||||
module Xkremap
|
||||
class KeyGrabManager
|
||||
# @param [Xkremap::Display] display
|
||||
def initialize(display)
|
||||
@display = display
|
||||
end
|
||||
|
||||
def grab_keys
|
||||
XlibWrapper.ungrab_keys(@display)
|
||||
XlibWrapper.grab_key(@display, 0x0062, 1<<2) # C-b
|
||||
end
|
||||
end
|
||||
end
|
@ -0,0 +1,33 @@
|
||||
module Xkremap
|
||||
class KeyRemapBuilder
|
||||
# @attribute [Hash] prebuilt
|
||||
# [Fixnum] keycode -> [Fixnum] state -> [Proc] handler
|
||||
attr_reader :prebuilt
|
||||
|
||||
# @param [Xkremap::Config] config
|
||||
# @param [Xkremap::Display] display
|
||||
def initialize(config, display)
|
||||
@config = config
|
||||
@display = display
|
||||
@prebuilt = Hash.new { |h, k| h[k] = {} }
|
||||
@current_window = fetch_active_window
|
||||
end
|
||||
|
||||
def build
|
||||
puts 'rebuilt!'
|
||||
end
|
||||
|
||||
def active_window_changed?
|
||||
next_window = fetch_active_window
|
||||
@current_window != next_window
|
||||
ensure
|
||||
@current_window = next_window
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def fetch_active_window
|
||||
XlibWrapper.fetch_active_window(@display)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue