Skip to content

sarim/goibus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

goibus - golang implementation of libibus

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.

####NB: 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. You can always implement those and send PR ;)

This table shows the current status of 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

Installation

go get github.com/godbus/dbus
go get github.com/sarim/goibus

check _example directory for a sample engine and ~~ TODO:detailed tutorial ~~. Run the sample engine by _example -standalone to see it in action. sample engine

License

goibus - golang implementation of libibus by Sarim Khan

Licensed under Mozilla Public License 1.1 ("MPL"), an open source/free software license.

About

golang implementation of libibus

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages