def test_component(self): # construction with keyword args component = IBus.Component(name='foo', description='foo desc') self.assertEqual(component.props.name, 'foo') # construction with non-keyword args component = IBus.Component('bar', 'bar desc') self.assertEqual(component.props.name, 'bar')
def __init__(self, exec_by_ibus): self.__mainloop = GObject.MainLoop() self.__bus = IBus.Bus() self.__bus.connect("disconnected", self.__bus_destroy_cb) self.__factory = factory.EngineFactory(self.__bus) self.destroied = False if exec_by_ibus: self.__bus.request_name("org.freedesktop.IBus.Sdim", 0) else: self.__component = IBus.Component("org.freedesktop.IBus.Sdim", "Sdim Component", "0.1.0", "GPL", "Yuwei Yu <*****@*****.**>") name = 'SDIM' longname = name description = 'Shadow Dance Input Method' language = 'zh' license = 'LGPL' author = 'Bao Haojun <*****@*****.**>' icon = icon_dir + "/sdim.png" if icon: icon = os.path.join(icon_dir, icon) if not os.access(icon, os.F_OK): icon = '' layout = 'us' self.__component.add_engine(name, longname, description, language, license, author, icon, layout) self.__bus.register_component(self.__component)
def __init__(self, exec_by_ibus): command_line = config.LIBEXECDIR + '/ibus-engine-anthy --ibus' self.__component = IBus.Component( name='org.freedesktop.IBus.Anthy', description='Anthy Component', version='0.1.0', license='GPL', author='Peng Huang <*****@*****.**>', homepage='https://github.com/ibus/ibus/wiki', command_line=command_line, textdomain='ibus-anthy') engine = IBus.EngineDesc(name='anthy', longname='Anthy', description='Anthy Input Method', language='ja', license='GPL', author='Peng Huang <*****@*****.**>', icon='ibus-anthy', layout=config.LAYOUT, symbol=config.SYMBOL_CHAR, rank=99) self.__component.add_engine(engine) self.__mainloop = GLib.MainLoop() self.__bus = IBus.Bus() self.__bus.connect('disconnected', self.__bus_disconnected_cb) self.__factory = factory.EngineFactory(self.__bus) if exec_by_ibus: self.__bus.request_name('org.freedesktop.IBus.Anthy', 0) else: self.__bus.register_component(self.__component)
def __init__(self, exec_by_ibus): self._mainloop = GLib.MainLoop() self._bus = IBus.Bus() self._bus.connect("disconnected", self._bus_disconnected_cb) self._factory = IBus.Factory(self._bus) self._factory.add_engine("hiragana", GObject.type_from_name("EngineHiragana")) if exec_by_ibus: self._bus.request_name("org.freedesktop.IBus.Hiragana", 0) else: self._component = IBus.Component( name="org.freedesktop.IBus.Hiragana", description="Hiragana IME", version=package.get_version(), license="Apache", author="Esrille Inc. <*****@*****.**>", homepage="https://github.com/esrille/" + package.get_name(), textdomain=package.get_name()) engine = IBus.EngineDesc(name="hiragana", longname="Hiragana IME", description="Hiragana IME", language="ja", license="Apache", author="Esrille Inc. <*****@*****.**>", icon=package.get_name(), layout="default") self._component.add_engine(engine) self._bus.register_component(self._component) self._bus.set_global_engine_async("hiragana", -1, None, None, None)
def register_ibus_engine(self) -> bool: self.__bus = IBus.Bus() if not self.__bus.is_connected(): self.fail('ibus-daemon is not running') return False self.__bus.get_connection().signal_subscribe( 'org.freedesktop.DBus', 'org.freedesktop.DBus', 'NameOwnerChanged', '/org/freedesktop/DBus', None, 0, self.__bus_signal_cb, self.__bus) self.__factory = IBus.Factory(object_path=IBus.PATH_FACTORY, connection=self.__bus.get_connection()) self.__factory.connect('create-engine', self.__create_engine_cb) self.__component = IBus.Component( name='org.freedesktop.IBus.TypingBooster.Test', description='Test Typing Booster Component', version='1.0', license='GPL', author=('Mike FABIAN <*****@*****.**>, ' + 'Anish Patil <*****@*****.**>'), homepage='http://mike-fabian.github.io/ibus-typing-booster', command_line='', textdomain='ibus-typing-booster') desc = IBus.EngineDesc( name='testTyping-booster', longname='Test Typing Booster', description='Test a completion input method to speedup typing.', language='t', license='GPL', author=('Mike FABIAN <*****@*****.**>, ' + 'Anish Patil <*****@*****.**>'), icon='', symbol='T') self.__component.add_engine(desc) self.__bus.register_component(self.__component) self.__bus.request_name('org.freedesktop.IBus.TypingBooster.Test', 0) return True
def register_engine(bus, live=False): log.debug('Registering the component') component = IBus.Component( name=COMPONENT, description='DeepSpeech-in-docker input method', version='1.0', license='LGPL', author='Mike C. Fletcher', homepage='https://github.com/mcfletch/deepspeech-docker', command_line='listener-ibus', textdomain='en', # TODO: is this really language? ) component.add_engine(ListenerEngine.DESCRIPTION) connection = bus.get_connection() if not connection: raise RuntimeError("IBus has no connection") factory = IBus.Factory.new(connection) log.info("Adding ibus engine at %r", SERVICE_NAME) factory.add_engine(SERVICE_NAME, GObject.type_from_name(NAME)) if not live: log.info( 'Running in development (non-live) mode with direct registation') ListenerEngine.stand_alone = True assert bus.register_component( component), "Unable to register our component" def on_set_engine(source, result, data=None): if result.had_error(): log.error("Unable to register!") MAINLOOP.quit() else: log.info('Set engine called: %s, %s, %s', source, result, data) def set_engine(): log.info("Registering IBus Service at %r", SERVICE_NAME) bus.set_global_engine_async( SERVICE_NAME, 5000, # shouldn't take this long! None, on_set_engine, None, ) GLib.idle_add(set_engine) else: log.info('Registering for activation via DBUS') GLib.idle_add( bus.request_name, COMPONENT, IBus.BusNameFlag.ALLOW_REPLACEMENT, )
def __init__(self, exec_by_ibus): if DEBUG_LEVEL > 1: sys.stderr.write("IMApp.__init__(exec_by_ibus=%s)\n" % exec_by_ibus) self.__mainloop = GLib.MainLoop() self.__bus = IBus.Bus() self.__bus.connect("disconnected", self.__bus_destroy_cb) self.__factory = factory.EngineFactory(self.__bus, config_file_dir=CONFIG_FILE_DIR) self.destroyed = False if exec_by_ibus: self.__bus.request_name("org.freedesktop.IBus.IbusTypingBooster", 0) else: self.__component = IBus.Component( name="org.freedesktop.IBus.IbusTypingBooster", description="Table Component", version="0.1.0", license="GPL", author="Anish Patil <*****@*****.**>", homepage="http://mike-fabian.github.io/ibus-typing-booster", textdomain="ibus-typing-booster") # now we get IME info from self.__factory.db name = self.__factory.db.ime_properties.get("name") longname = self.__factory.db.ime_properties.get("ime_name") description = self.__factory.db.ime_properties.get("description") language = self.__factory.db.ime_properties.get("language") credit = self.__factory.db.ime_properties.get("credit") author = self.__factory.db.ime_properties.get("author") icon = self.__factory.db.ime_properties.get("icon") if icon: icon = os.path.join(ICON_DIR, icon) if not os.access(icon, os.F_OK): icon = '' layout = self.__factory.db.ime_properties.get("layout") symbol = self.__factory.db.ime_properties.get("symbol") engine = IBus.EngineDesc(name=name, longname=longname, description=description, language=language, license=credit, author=author, icon=icon, layout=layout, symbol=symbol) self.__component.add_engine(engine) self.__bus.register_component(self.__component)
def __init__(self, exec_by_ibus): if DEBUG_LEVEL > 1: sys.stderr.write( "IMApp.__init__(exec_by_ibus=%s)\n" % exec_by_ibus) self.__mainloop = GLib.MainLoop() self.__bus = IBus.Bus() self.__bus.connect("disconnected", self.__bus_destroy_cb) self.__factory = factory.EngineFactory(self.__bus) self.destroyed = False if exec_by_ibus: self.__bus.request_name( "org.freedesktop.IBus.IbusTypingBooster", 0) else: self.__component = IBus.Component( name="org.freedesktop.IBus.IbusTypingBooster", description="Typing Booster Component", version=version.get_version(), license="GPL", author="Mike FABIAN <*****@*****.**>, Anish Patil <*****@*****.**>", homepage="http://mike-fabian.github.io/ibus-typing-booster", textdomain="ibus-typing-booster") # now we get IME info from self.__factory.db name = 'typing-booster' longname = 'Typing Booster' description = 'A completion input method to speedup typing.' language = 't' author = ( 'Mike FABIAN <*****@*****.**>' + ', Anish Patil <*****@*****.**>') icon = os.path.join(ICON_DIR, 'ibus-typing-booster.svg') if not os.access(icon, os.F_OK): icon = '' layout = 'default' symbol = '🚀' engine = IBus.EngineDesc(name=name, longname=longname, description=description, language=language, license='GPL', author=author, icon=icon, layout=layout, symbol=symbol) self.__component.add_engine(engine) self.__bus.register_component(self.__component)
def __init__(self, dbfile, exec_by_ibus): self.__mainloop = GLib.MainLoop() self.__bus = IBus.Bus() self.__bus.connect("disconnected", self.__bus_destroy_cb) self.__factory = factory.EngineFactory(self.__bus, dbfile) self.destroyed = False if exec_by_ibus: self.__bus.request_name("org.freedesktop.IBus.Table", 0) else: self.__component = IBus.Component( name='org.freedesktop.IBus.Table', description='Table Component', version='0.1.0', license='GPL', author='Yuwei Yu <*****@*****.**>', homepage='http://code.google.com/p/ibus/', textdomain='ibus-table') # now we get IME info from self.__factory.db engine_name = os.path.basename( self.__factory.db.filename).replace('.db', '') name = 'table:'+engine_name longname = self.__factory.db.ime_properties.get("name") description = self.__factory.db.ime_properties.get("description") language = self.__factory.db.ime_properties.get("languages") credit = self.__factory.db.ime_properties.get("credit") author = self.__factory.db.ime_properties.get("author") icon = self.__factory.db.ime_properties.get("icon") if icon: icon = os.path.join(ICON_DIR, icon) if not os.access(icon, os.F_OK): icon = '' layout = self.__factory.db.ime_properties.get("layout") symbol = self.__factory.db.ime_properties.get("symbol") setup_arg = "{} --engine-name {}".format(SETUP_CMD, name) engine = IBus.EngineDesc(name=name, longname=longname, description=description, language=language, license=credit, author=author, icon=icon, layout=layout, symbol=symbol, setupdsis=setup_arg) self.__component.add_engine(engine) self.__bus.register_component(self.__component)
def register_engine(bus, live=False): log.debug('Registering the component') component = IBus.Component( name=COMPONENT, description='DeepSpeech-in-docker input method', version='1.0', license='LGPL', author='Mike C. Fletcher', homepage='https://github.com/mcfletch/deepspeech-docker', command_line='listener-ibus -r', textdomain='en', # TODO: is this language? ) component.add_engine(ListenerEngine.DESCRIPTION) connection = bus.get_connection() assert connection, "IBus has no connection" factory = IBus.Factory.new(connection) factory.add_engine( SERVICE_NAME, GObject.type_from_name(NAME)), "Unable to add the engine" if not live: assert bus.register_component( component), "Unable to register our component" def on_set_engine(source, result, data=None): if result.had_error(): log.error("Unable to register!") MAINLOOP.quit() def set_engine(): log.info("Registering IBus Service at %s", SERVICE_NAME) bus.set_global_engine_async( SERVICE_NAME, 5000, # shouldn't take this long! None, on_set_engine, None, ) GLib.idle_add(set_engine) else: GLib.idle_add( bus.request_name, COMPONENT, IBus.BusNameFlag.ALLOW_REPLACEMENT, )
def register_ibus_engine(self): self.__bus = IBus.Bus() if not self.__bus.is_connected(): self.fail('ibus-daemon is not running') return False self.__bus.get_connection().signal_subscribe( 'org.freedesktop.DBus', 'org.freedesktop.DBus', 'NameOwnerChanged', '/org/freedesktop/DBus', None, 0, self.__bus_signal_cb, self.__bus) self.__factory = IBus.Factory( object_path=IBus.PATH_FACTORY, connection=self.__bus.get_connection()) self.__factory.connect('create-engine', self.__create_engine_cb) self.__component = IBus.Component( name='org.freedesktop.IBus.Table.Test', description='Test Table Component', version='1.0', license='GPL', author=('Mike FABIAN <*****@*****.**>, ' + 'Caius "kaio" CHANCE <*****@*****.**>'), homepage='http://mike-fabian.github.io/ibus-table/', command_line='', textdomain='ibus-table') desc = IBus.EngineDesc( name=ENGINE_NAME, longname='Test Table %s' % ENGINE_NAME, description='Test Table Component', language='t', license='GPL', author=('Mike FABIAN <*****@*****.**>, ' + 'Caius "kaio" CHANCE <*****@*****.**>'), icon='', symbol='T') self.__component.add_engine(desc) self.__bus.register_component(self.__component) self.__bus.request_name('org.freedesktop.IBus.Table.Test', 0) return True