Skip to content

Instantly share code, notes, and snippets.

@noborus
Created December 31, 2013 15:10
Show Gist options
  • Save noborus/8198154 to your computer and use it in GitHub Desktop.
Save noborus/8198154 to your computer and use it in GitHub Desktop.
IBusをONにして自動で入力正月バージョン
#! /usr/bin/ruby
# -*- coding: utf-8 -*-
require 'dbus'
INPUT_TEXT="akemasiteomedetougozaimasu"
IBUS_SERVICE="org.freedesktop.IBus"
IBUS_PATH_IBUS="/org/freedesktop/IBus"
IBUS_INTERFACE_IBUS="org.freedesktop.IBus"
def get_address
Dir.glob(ENV['HOME'] + "/.config/ibus/bus/*").each {|file|
File.open(file).each_line {|line|
/IBUS_ADDRESS=/ =~ line
next if !$'
return $'.chop
}
}
end
ibus_bus = DBus::RemoteBus.new(get_address())
ibus_service = ibus_bus.service(IBUS_SERVICE)
ibus_ibus = ibus_service.object(IBUS_PATH_IBUS)
ibus_ibus.introspect
ibus_ibus_iface = ibus_ibus[IBUS_INTERFACE_IBUS]
currentic = ibus_ibus_iface.CurrentInputContext[0]
input_context = ibus_service.object(currentic)
input_context.introspect
input_context.Enable
INPUT_TEXT.split(//).each {|s|
input_context.ProcessKeyEvent(s.ord,0,0)
sleep 0.2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment