diff options
author | Huang Peng <shawn.p.huang@gmail.com> | 2009-02-05 10:39:56 +0800 |
---|---|---|
committer | Huang Peng <shawn.p.huang@gmail.com> | 2009-02-05 10:39:56 +0800 |
commit | aedad1ea0a7fef604aa27f4b58433fd8f2ece29e (patch) | |
tree | ffcb531d8474bde18b90341bcd4eb639edd74525 /daemon/ibusdaemon.py | |
parent | 41ad46305a88637dd99f00a2d2a3f455505d357b (diff) | |
download | ibus-aedad1ea0a7fef604aa27f4b58433fd8f2ece29e.tar.gz ibus-aedad1ea0a7fef604aa27f4b58433fd8f2ece29e.tar.xz ibus-aedad1ea0a7fef604aa27f4b58433fd8f2ece29e.zip |
re-implement ibus in c language.
Diffstat (limited to 'daemon/ibusdaemon.py')
-rw-r--r-- | daemon/ibusdaemon.py | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/daemon/ibusdaemon.py b/daemon/ibusdaemon.py deleted file mode 100644 index b2f44c8..0000000 --- a/daemon/ibusdaemon.py +++ /dev/null @@ -1,112 +0,0 @@ -# vim:set et sts=4 sw=4: -# -# ibus - The Input Bus -# -# Copyright (c) 2007-2008 Huang Peng <shawn.p.huang@gmail.com> -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this program; if not, write to the -# Free Software Foundation, Inc., 59 Temple Place, Suite 330, -# Boston, MA 02111-1307 USA - -import os -import sys -import getopt -import getpass -import gobject -import dbus.server -import dbus.mainloop.glib -import ibus -from _dbus import DBus -from bus import IBus -from connection import Connection - - -class IBusServer(dbus.server.Server): - def __init__(self, *args, **kargs): - super(IBusServer, self).__init__() - - self.__ibus = IBus() - # self.__launch_auto_load_engines() - - # def __launch_auto_load_engines(self): - # engines = [] - # try: - # engines = self.__ibus.config_get_value("general", "preload_engines", None) - # if not engines: - # engines = [] - # except: - # pass - # for e in engines: - # try: - # lang, name = e.split(":") - # self.__ibus.register_start_engine(lang, name, None) - # except: - # pass - - def connection_added(self, dbusconn): - conn = Connection(dbusconn) - self.__ibus.new_connection(conn) - DBus(conn) - - def connection_removed(self, dbusconn): - # do nothing. - pass - -def launch_ibus(): - dbus.mainloop.glib.DBusGMainLoop(set_as_default = True) - loop = gobject.MainLoop() - try: - os.mkdir("/tmp/ibus-%s" % getpass.getuser()) - except: - pass - bus = IBusServer(ibus.IBUS_ADDR) - try: - loop.run() - except KeyboardInterrupt, e: - print "daemon exits" - sys.exit() - - -def print_help(out, v = 0): - print >> out, "-h, --help show this message." - print >> out, "-d, --daemonize daemonize ibus" - sys.exit(v) - -def main(): - daemonize = False - shortopt = "hd" - longopt = ["help", "daemonize"] - 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 - else: - print >> sys.stderr, "Unknown argument: %s" % o - print_help(sys.stderr, 1) - - if daemonize: - if os.fork(): - sys.exit() - - launch_ibus() - - -if __name__ == "__main__": - main() |