/goibus

golang implementation of libibus

Primary LanguageGo

goibus - golang implementation of libibus

This project was originally designed and developed by sarim.

This fork aims to keep the project update with new Go versions, resolving pre-existing issues, adding new features.

For any developers who want to contribute, PRs are always welcome.

Introduce

goibus implements the libibus bindings in golang. goibus can be used to create IBus engines aka develop custom input methods.

IBus is an Intelligent Input Bus. It provides full featured and user friendly input method user interface. It also may help developers to develop input method easily.

This library is little bit different than other libibus bindings/wrappers. Instead of wrapping libibus c library or GOBject-Introspection, it implements whole functionality by communicating over DBus IPC. Because of that it is a independent 100% pure golang library without any native dependencies.

libibus has various classes that are not absolutely required for creating engines. This library only implements engine related classes. Some uncommon class/methods are also skipped for now.

Implementation

libibus goibus
IBusAttrList ✔️ Implemented In text.go
IBusAttribute ✔️ Implemented In text.go
IBusBus ✔️ Implemented In bus.go
IBusComponent ✔️ Implemented In component.go
IBusConfig Ignored, not implemented
IBusConfigService Ignored, not implemented
IBusEngine ✔️ Implemented In engine.go
IBusEngineDesc ✔️ Implemented In engineDesc.go
IBusFactory ✔️ Implemented In factory.go
IBusHotkeyProfile Ignored, not implemented
IBusInputContext 🚧 Ignored, relevant inherited signals implemented in Engine
IBusKeymap 🚧 Ignored for now, will implement
IBusLookupTable ✔️ Implemented In lookupTable.go
IBusObject ✔️ Ignored, Parent/Interface class, relevant inherited signals implemented in Engine
IBusObservedPath Ignored, not implemented
IBusPanelService Ignored, not implemented
IBusPropList ✔️ Implemented In property.go
IBusProperty ✔️ Implemented In property.go
IBusProxy Ignored, not implemented
IBusRegistry Ignored, not implemented
IBusSerializable ✔️ Not needed in golang, All implemented classes are Serializable
IBusService ✔️ Ignored, not needed. Parent/Interface class
IBusText ✔️ Implemented In text.go

Install

go get github.com/haunt98/goibus