#!/usr/bin/env ruby # frozen_string_literal: true require 'optparse' require 'fusuma/config' require 'fusuma/plugin/inputs/libinput_command_input.rb' require_relative '../lib/fusuma/plugin/sendkey/keyboard.rb' require_relative '../lib/fusuma/plugin/sendkey/version.rb' option = {} opt = OptionParser.new opt.on('-l', '--list-keycodes', 'List available keycodes') do |v| option[:list] = v end opt.on('--version', 'Show version') do |v| option[:version] = v end opt.parse!(ARGV) device_name = Fusuma::Config.instance.fetch_config_params( :device_name, Fusuma::Config::Index.new([:plugin, :executors, :sendkey_executor]) ).fetch(:device_name, nil) if option[:list] puts Fusuma::Plugin::Sendkey::Keyboard.new(name_pattern: device_name).search_codes return end if option[:version] puts Fusuma::Plugin::Sendkey::VERSION return end param = ARGV.first if param.nil? warn 'fusuma-sendkey require 1 arugument' warn 'e.g. fusuma-sendkey LEFTALT+LEFT' exit 1 end keyboard = Fusuma::Plugin::Sendkey::Keyboard.new(name_pattern: device_name) keyboard.valid?(param: param) && keyboard.type(param: param)