uh-wm/lib/uh/wm/run_control.rb
2015-04-14 22:14:10 +00:00

40 lines
780 B
Ruby

module Uh
module WM
class RunControl
KEYSYM_TRANSLATIONS = {
backspace: :BackSpace,
enter: :Return,
return: :Return,
tab: :Tab
}.freeze
class << self
def evaluate env
rc_path = File.expand_path(env.rc_path)
rc = new env
rc.evaluate File.read(rc_path) if File.exist?(rc_path)
end
end
def initialize env
@env = env
end
def evaluate code
instance_eval code
end
def key keysym, &block
@env.keybinds[translate_keysym keysym] = block
end
private
def translate_keysym keysym
KEYSYM_TRANSLATIONS.key?(keysym) ? KEYSYM_TRANSLATIONS[keysym] : keysym
end
end
end
end