# vim:set et sts=4 sw=4: # # ibus-sulekha - The Sulekha engine for IBus # # Copyright(c) 2009 Santhosh Thottingal # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os import sys import getopt import ibus import gobject import factory class IMApp: def __init__(self, exec_by_ibus): self.__component = ibus.Component("org.freedesktop.IBus.Sulekha", "Sulekha Component", "0.1.0", "GPL", "Peng Huang ") self.__component.add_engine("sulekha", "Sulekha", "Sulekha Input method", "ml_IN", "GPL", "Peng Huang ", "", "en") self.__mainloop = gobject.MainLoop() self.__bus = ibus.Bus() self.__bus.connect("destroy", self.__bus_destroy_cb) self.__factory = factory.EngineFactory(self.__bus) if exec_by_ibus: self.__bus.request_name("org.freedesktop.IBus.Sulekha", 0) else: self.__bus.register_component(self.__component) def run(self): self.__mainloop.run() def __bus_destroy_cb(self, bus): self.__mainloop.quit() def launch_engine(exec_by_ibus): IMApp(exec_by_ibus).run() def print_help(out, v = 0): print >> out, "-i, --ibus execute by ibus." print >> out, "-h, --help show this message." print >> out, "-d, --daemonize daemonize ibus" sys.exit(v) def main(): daemonize = False exec_by_ibus = False shortopt = "hdi" longopt = ["help", "daemonize", "ibus"] try: opts, args = getopt.getopt(sys.argv[1:], shortopt, longopt) except getopt.GetoptError, err: print_help(sys.stderr, 1) for o, a in opts: if o in("-h", "--help"): print_help(sys.stdout) elif o in ("-d", "--daemonize"): daemonize = True elif o in ("-i", "--ibus"): exec_by_ibus = True else: print >> sys.stderr, "Unknown argument: %s" % o print_help(sys.stderr, 1) if daemonize: if os.fork(): sys.exit() launch_engine(exec_by_ibus) if __name__ == "__main__": main()