def test_engine_desc(self): # construction with keyword args desc = IBus.EngineDesc(name='foo') self.assertEqual(desc.props.name, 'foo') # construction with non-keyword args desc = IBus.EngineDesc('bar') self.assertEqual(desc.props.name, 'bar')
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 __init__(self, exec_by_ibus): self.__id = 0 engine_name = "BoGo Engine" self.__component = \ IBus.Component.new("org.freedesktop.IBus.BoGoPython", "BoGo Engine for IBus", "0.2", "GPLv3", "Long T. Dam <*****@*****.**>", "https://github.com/BoGoEngine/ibus-bogo-python", "/usr/bin/exec", "ibus-bogo") engine = IBus.EngineDesc(name="bogo-python", longname=engine_name, description="BoGo Engine for IBus", language="vi", license="GPLv3", author="Long T. Dam <*****@*****.**>", icon=current_path + "/data/ibus-bogo.svg", layout="us") self.__component.add_engine(engine) self.__mainloop = GObject.MainLoop() self.__bus = IBus.Bus() self.__bus.connect("disconnected", self.__bus_disconnected_cb) self.__config = Config() self.__factory = IBus.Factory.new(self.__bus.get_connection()) self.__factory.add_engine("bogo-python", GObject.type_from_name("EngineBoGo")) if exec_by_ibus: self.__bus.request_name("org.freedesktop.IBus.BoGoPython", 0) else: self.__bus.register_component(self.__component) self.__bus.set_global_engine_async("bogo-python", -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 __init__(self, exec_by_ibus): engine_name = "bogo" long_engine_name = "BoGo" author = "BoGo Development Team <*****@*****.**>" description = "ibus-bogo for IBus" version = "0.4" license = "GPLv3" self.component = \ IBus.Component.new("org.freedesktop.IBus.BoGo", description, version, license, author, "https://github.com/BoGoEngine/ibus-bogo", "/usr/bin/exec", "ibus-bogo") engine = IBus.EngineDesc( name=engine_name, longname=long_engine_name, description=description, language="vi", license=license, author=author, icon=current_path + "/data/ibus-bogo-dev.svg", # icon = "ibus-bogo", layout="default") self.component.add_engine(engine) self.mainloop = GObject.MainLoop() self.bus = IBus.Bus() self.bus.connect("disconnected", self.bus_disconnected_cb) self.engine_count = 0 self.factory = IBus.Factory.new(self.bus.get_connection()) self.factory.connect("create-engine", self.create_engine) CONFIG_DIR = os.path.expanduser("~/.config/ibus-bogo/") self.config = Config() self.abbr_expander = AbbreviationExpander(config=self.config) self.abbr_expander.watch_file(CONFIG_DIR + "/abbr_rules.json") if exec_by_ibus: self.bus.request_name("org.freedesktop.IBus.BoGo", 0) else: self.bus.register_component(self.component) self.bus.set_global_engine_async("bogo", -1, None, None, None) custom_broker = enchant.Broker() custom_broker.set_param('enchant.myspell.dictionary.path', DICT_PATH) spellchecker = enchant.DictWithPWL('vi_VN_telex', pwl=PWL_PATH, broker=custom_broker) # FIXME: Catch enchant.errors.DictNotFoundError exception here. english_spellchecker = enchant.Dict('en_US') self.auto_corrector = AutoCorrector(self.config, spellchecker, english_spellchecker)
def __init__(self, exec_by_ibus): engine_name = "bogo" long_engine_name = "BoGo" author = "BoGo Development Team <*****@*****.**>" description = "ibus-bogo for IBus" version = "0.4" license = "GPLv3" self.component = \ IBus.Component.new("org.freedesktop.IBus.BoGo", description, version, license, author, "https://github.com/BoGoEngine/ibus-bogo", "/usr/bin/exec", "ibus-bogo") engine = IBus.EngineDesc(name=engine_name, longname=long_engine_name, description=description, language="vi", license=license, author=author, icon=current_path + "/data/ibus-bogo-dev.svg", # icon = "ibus-bogo", layout="default") self.component.add_engine(engine) self.mainloop = GObject.MainLoop() self.bus = IBus.Bus() self.bus.connect("disconnected", self.bus_disconnected_cb) self.engine_count = 0 self.factory = IBus.Factory.new(self.bus.get_connection()) self.factory.connect("create-engine", self.create_engine) CONFIG_DIR = os.path.expanduser("~/.config/ibus-bogo/") self.config = Config() self.abbr_expander = AbbreviationExpander(config=self.config) self.abbr_expander.watch_file(CONFIG_DIR + "/abbr_rules.json") self.icon = TrayIcon() if exec_by_ibus: self.bus.request_name("org.freedesktop.IBus.BoGo", 0) else: self.bus.register_component(self.component) self.bus.set_global_engine_async( "bogo", -1, None, None, None)
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_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
renderer.set_property("sensitive", True) renderer.set_property("text", engine.get_longname()) renderer.set_property( "weight", Pango.Weight.BOLD if engine.get_rank() > 0 else Pango.Weight.NORMAL) def __notify_active_cb(self, combobox, property): self.notify("active-engine") def do_get_property(self, property): if property.name == "active-engine": i = self.get_active() if i == 0 or i == -1: return None iter = self.get_active_iter() return self.get_model()[iter][0] else: raise AttributeError('unknown property %s' % property.name) def get_active_engine(self): return self.get_property("active-engine") if __name__ == "__main__": combo = EngineComboBox() combo.set_engines([IBus.EngineDesc(language="zh")]) w = Gtk.Window() w.add(combo) w.show_all() Gtk.main()
def __create_tags(self, text_buffer): text_buffer.create_tag("heading", weight=Pango.Weight.BOLD, size=16 * Pango.SCALE) text_buffer.create_tag("bold", weight=Pango.Weight.BOLD) text_buffer.create_tag("italic", style=Pango.Style.ITALIC) text_buffer.create_tag("small", scale=0.833333333333) # Pango.SCALE_SMALL ? text_buffer.create_tag("gray_foreground", foreground="dark gray") text_buffer.create_tag("wrap_text", wrap_mode=Gtk.WrapMode.WORD) text_buffer.create_tag("left_margin_16", left_margin=16) text_buffer.create_tag("left_margin_32", left_margin=32) def __load_icon(self, icon): try: pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale( icon, 48, 48, True) except: theme = Gtk.IconTheme.get_default() icon = theme.lookup_icon("ibus-engine", 48, 0) if icon == None: icon = theme.lookup_icon(Gtk.STOCK_MISSING_IMAGE, 48, 0) pixbuf = icon.load_icon() return pixbuf if __name__ == "__main__": desc = IBus.EngineDesc() EngineAbout(desc).run()