From 53490530b645c96539ea74178ba2b80c27c174b5 Mon Sep 17 00:00:00 2001 From: luongthanhlam Date: Sat, 30 Mar 2019 21:05:56 +0700 Subject: [PATCH 1/7] update lookupTable --- ibus/lookupTable.go | 98 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/ibus/lookupTable.go b/ibus/lookupTable.go index 2f7c959..4802093 100644 --- a/ibus/lookupTable.go +++ b/ibus/lookupTable.go @@ -37,3 +37,101 @@ func (lt *LookupTable) AppendLabel(label string) { l := NewText(label) lt.Labels = append(lt.Labels, dbus.MakeVariant(*l)) } + +func (lt *LookupTable) SetCursorPos(pos uint32) bool { + if pos >= uint32(len(lt.Candidates)) || pos < 0 { + return false + } + lt.CursorPos = pos + return true +} + +func (lt *LookupTable) GetCursorPos() uint32 { + return lt.CursorPos +} + +func (lt *LookupTable) GetCursorPosInCurrentPage() uint32 { + return lt.CursorPos % lt.PageSize +} + +func (lt *LookupTable) SetCursorPosInCurrentPage(pos uint32) bool { + if pos < 0 || pos >= lt.PageSize { + return false + } + pos += lt.GetCursorPosInCurrentPage() + if pos >= uint32(len(lt.Candidates)) { + return false + } + lt.CursorPos = pos + return true +} + +func (lt *LookupTable) CursorUp() bool { + if lt.CursorPos == 0 { + if lt.Round { + lt.CursorPos = uint32(len(lt.Candidates)) - 1 + return true + } else { + return false + } + } + lt.CursorPos -= 1 + return true +} + +func (lt *LookupTable) CursorDown() bool { + if lt.CursorPos == uint32(len(lt.Candidates)) { + if lt.Round { + lt.CursorPos = 0 + return true + } else { + return false + } + } + lt.CursorPos += 1 + return true +} + +func (lt *LookupTable) PageUp() bool { + if lt.CursorPos < lt.PageSize { + if lt.Round { + var nrCandidates = uint32(len(lt.Candidates)) + var maxPage = uint32(nrCandidates / lt.PageSize) + lt.CursorPos += maxPage * lt.PageSize + if lt.CursorPos > nrCandidates-1 { + lt.CursorPos = nrCandidates - 1 + return true + } else { + return false + } + } + } + lt.CursorPos -= lt.PageSize + return true +} + +func (lt *LookupTable) PageDown() bool { + var currentPage = lt.CursorPos / lt.PageSize + var nrCandidates = uint32(len(lt.Candidates)) + var maxPage = nrCandidates / lt.PageSize + if currentPage >= maxPage { + if lt.Round { + lt.CursorPos %= lt.PageSize + return true + } else { + return false + } + } + var pos = lt.CursorPos + lt.PageSize + if pos >= nrCandidates { + pos = nrCandidates - 1 + } + lt.CursorPos = pos + return true +} + +func (lt *LookupTable) Clean() { + lt.Candidates = nil + lt.Labels = nil + lt.CursorPos = 0 +} From d399059e0f263ddcec7e4576da7f568a048b1502 Mon Sep 17 00:00:00 2001 From: luongthanhlam Date: Mon, 4 Nov 2019 12:58:16 +0700 Subject: [PATCH 2/7] Fix PageUp method --- ibus/lookupTable.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ibus/lookupTable.go b/ibus/lookupTable.go index 4802093..d016cd6 100644 --- a/ibus/lookupTable.go +++ b/ibus/lookupTable.go @@ -100,10 +100,10 @@ func (lt *LookupTable) PageUp() bool { lt.CursorPos += maxPage * lt.PageSize if lt.CursorPos > nrCandidates-1 { lt.CursorPos = nrCandidates - 1 - return true - } else { - return false } + return true + } else { + return false } } lt.CursorPos -= lt.PageSize From ea4df577c5d6a814917564d175080c01f10cc09f Mon Sep 17 00:00:00 2001 From: luongthanhlam Date: Thu, 30 Apr 2020 10:09:17 +0700 Subject: [PATCH 3/7] Use WAYLAND_DISPLAY on Wayland sessions --- ibus/common.go | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/ibus/common.go b/ibus/common.go index 88bf4b1..ac09ad0 100644 --- a/ibus/common.go +++ b/ibus/common.go @@ -79,20 +79,31 @@ func GetSocketPath() string { if path != "" { return path } - display := os.Getenv("DISPLAY") + display := os.Getenv("WAYLAND_DISPLAY") + isWayland := true + if display == "" { + isWayland = false + display = os.Getenv("DISPLAY") + } if display == "" { fmt.Fprintf(os.Stderr, "DISPLAY is empty! We use default DISPLAY (:0.0)") display = ":0.0" } - // format is {hostname}:{displaynumber}.{screennumber} hostname := "unix" - HDS := strings.SplitN(display, ":", 2) - DS := strings.SplitN(HDS[1], ".", 2) - - if HDS[0] != "" { - hostname = HDS[0] + displayNumber := "" + if isWayland { + displayNumber = display + } else { + // format is {hostname}:{displaynumber}.{screennumber} + HDS := strings.SplitN(display, ":", 2) + DS := strings.SplitN(HDS[1], ".", 2) + + if HDS[0] != "" { + hostname = HDS[0] + } + displayNumber = DS[0] } - p := fmt.Sprintf("%s-%s-%s", GetLocalMachineId(), hostname, DS[0]) + p := fmt.Sprintf("%s-%s-%s", GetLocalMachineId(), hostname, displayNumber) path = GetUserConfigDir() + "/ibus/bus/" + p return path From 96c1068d469691b6b9f9564644295b8e4ebe68e0 Mon Sep 17 00:00:00 2001 From: goatastronaut0212 Date: Wed, 17 Jul 2024 17:53:23 +0700 Subject: [PATCH 4/7] Switch to go module and update to dbus v5 --- ibus/_common.cgo => _common.cgo | 0 ibus/bus.go => bus.go | 4 ++-- ibus/common.go => common.go | 4 ++-- ibus/component.go => component.go | 5 +++-- ibus/engine.go => engine.go | 4 ++-- ibus/engineDesc.go => engineDesc.go | 4 ++-- ibus/factory.go => factory.go | 4 ++-- go.mod | 5 +++++ go.sum | 2 ++ ibus/lookupTable.go => lookupTable.go | 4 ++-- ibus/property.go => property.go | 4 ++-- ibus/text.go => text.go | 4 ++-- 12 files changed, 26 insertions(+), 18 deletions(-) rename ibus/_common.cgo => _common.cgo (100%) rename ibus/bus.go => bus.go (95%) rename ibus/common.go => common.go (98%) rename ibus/component.go => component.go (97%) rename ibus/engine.go => engine.go (99%) rename ibus/engineDesc.go => engineDesc.go (98%) rename ibus/factory.go => factory.go (96%) create mode 100644 go.mod create mode 100644 go.sum rename ibus/lookupTable.go => lookupTable.go (98%) rename ibus/property.go => property.go (97%) rename ibus/text.go => text.go (96%) diff --git a/ibus/_common.cgo b/_common.cgo similarity index 100% rename from ibus/_common.cgo rename to _common.cgo diff --git a/ibus/bus.go b/bus.go similarity index 95% rename from ibus/bus.go rename to bus.go index eb29c49..fcf8408 100644 --- a/ibus/bus.go +++ b/bus.go @@ -1,6 +1,6 @@ -package ibus +package main -import "github.com/godbus/dbus" +import "github.com/godbus/dbus/v5" type Bus struct { dbusConn *dbus.Conn diff --git a/ibus/common.go b/common.go similarity index 98% rename from ibus/common.go rename to common.go index ac09ad0..4ec2cfc 100644 --- a/ibus/common.go +++ b/common.go @@ -1,4 +1,4 @@ -package ibus +package main import ( "fmt" @@ -7,7 +7,7 @@ import ( "strconv" "strings" - "github.com/godbus/dbus" + "github.com/godbus/dbus/v5" ) const ( diff --git a/ibus/component.go b/component.go similarity index 97% rename from ibus/component.go rename to component.go index a78ae49..fd3818b 100644 --- a/ibus/component.go +++ b/component.go @@ -1,10 +1,11 @@ -package ibus +package main import ( "encoding/xml" "fmt" - "github.com/godbus/dbus" "io" + + "github.com/godbus/dbus/v5" ) type Component struct { diff --git a/ibus/engine.go b/engine.go similarity index 99% rename from ibus/engine.go rename to engine.go index e507f76..cfa1f1c 100644 --- a/ibus/engine.go +++ b/engine.go @@ -1,7 +1,7 @@ -package ibus +package main import ( - "github.com/godbus/dbus" + "github.com/godbus/dbus/v5" ) type Engine struct { diff --git a/ibus/engineDesc.go b/engineDesc.go similarity index 98% rename from ibus/engineDesc.go rename to engineDesc.go index a2f61c9..52ead77 100644 --- a/ibus/engineDesc.go +++ b/engineDesc.go @@ -1,7 +1,7 @@ -package ibus +package main import ( - "github.com/godbus/dbus" + "github.com/godbus/dbus/v5" ) type EngineDesc struct { diff --git a/ibus/factory.go b/factory.go similarity index 96% rename from ibus/factory.go rename to factory.go index 2be4a3d..bfb841b 100644 --- a/ibus/factory.go +++ b/factory.go @@ -1,7 +1,7 @@ -package ibus +package main import ( - "github.com/godbus/dbus" + "github.com/godbus/dbus/v5" ) type Factory struct { diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..29ad64d --- /dev/null +++ b/go.mod @@ -0,0 +1,5 @@ +module goibus + +go 1.13 + +require github.com/godbus/dbus/v5 v5.1.0 diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..024b269 --- /dev/null +++ b/go.sum @@ -0,0 +1,2 @@ +github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= +github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= diff --git a/ibus/lookupTable.go b/lookupTable.go similarity index 98% rename from ibus/lookupTable.go rename to lookupTable.go index d016cd6..bf19d0f 100644 --- a/ibus/lookupTable.go +++ b/lookupTable.go @@ -1,7 +1,7 @@ -package ibus +package main import ( - "github.com/godbus/dbus" + "github.com/godbus/dbus/v5" ) type LookupTable struct { diff --git a/ibus/property.go b/property.go similarity index 97% rename from ibus/property.go rename to property.go index b5751f7..df2184f 100644 --- a/ibus/property.go +++ b/property.go @@ -1,7 +1,7 @@ -package ibus +package main import ( - "github.com/godbus/dbus" + "github.com/godbus/dbus/v5" ) type PropList struct { diff --git a/ibus/text.go b/text.go similarity index 96% rename from ibus/text.go rename to text.go index 6c7c691..4f90ffd 100644 --- a/ibus/text.go +++ b/text.go @@ -1,7 +1,7 @@ -package ibus +package main import ( - "github.com/godbus/dbus" + "github.com/godbus/dbus/v5" ) type Attribute struct { From 703302ba7589f2ac757455fd7edfdf552a7cb9f8 Mon Sep 17 00:00:00 2001 From: goatastronaut0212 Date: Wed, 17 Jul 2024 18:08:47 +0700 Subject: [PATCH 5/7] Change module in go.mod for import --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 29ad64d..ed0fd69 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module goibus +module github.com/goatastronaut0212/goibus go 1.13 From d8b83bab2a9b56aafdc1e71ef2eb02a4bb0835d2 Mon Sep 17 00:00:00 2001 From: goatastronaut0212 Date: Wed, 17 Jul 2024 18:12:59 +0700 Subject: [PATCH 6/7] Change package to goibus as a library for import --- _common.cgo | 2 +- bus.go | 2 +- common.go | 2 +- component.go | 2 +- engine.go | 2 +- engineDesc.go | 2 +- factory.go | 2 +- lookupTable.go | 2 +- property.go | 2 +- text.go | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/_common.cgo b/_common.cgo index 6863f66..d5af05c 100644 --- a/_common.cgo +++ b/_common.cgo @@ -1,4 +1,4 @@ -package ibus +package goibus /* #cgo pkg-config: ibus-1.0 diff --git a/bus.go b/bus.go index fcf8408..c5cdbb4 100644 --- a/bus.go +++ b/bus.go @@ -1,4 +1,4 @@ -package main +package goibus import "github.com/godbus/dbus/v5" diff --git a/common.go b/common.go index 4ec2cfc..216e8e4 100644 --- a/common.go +++ b/common.go @@ -1,4 +1,4 @@ -package main +package goibus import ( "fmt" diff --git a/component.go b/component.go index fd3818b..2552658 100644 --- a/component.go +++ b/component.go @@ -1,4 +1,4 @@ -package main +package goibus import ( "encoding/xml" diff --git a/engine.go b/engine.go index cfa1f1c..aa3462f 100644 --- a/engine.go +++ b/engine.go @@ -1,4 +1,4 @@ -package main +package goibus import ( "github.com/godbus/dbus/v5" diff --git a/engineDesc.go b/engineDesc.go index 52ead77..1cac4e5 100644 --- a/engineDesc.go +++ b/engineDesc.go @@ -1,4 +1,4 @@ -package main +package goibus import ( "github.com/godbus/dbus/v5" diff --git a/factory.go b/factory.go index bfb841b..584d671 100644 --- a/factory.go +++ b/factory.go @@ -1,4 +1,4 @@ -package main +package goibus import ( "github.com/godbus/dbus/v5" diff --git a/lookupTable.go b/lookupTable.go index bf19d0f..a9f5e0b 100644 --- a/lookupTable.go +++ b/lookupTable.go @@ -1,4 +1,4 @@ -package main +package goibus import ( "github.com/godbus/dbus/v5" diff --git a/property.go b/property.go index df2184f..1a9e9b5 100644 --- a/property.go +++ b/property.go @@ -1,4 +1,4 @@ -package main +package goibus import ( "github.com/godbus/dbus/v5" diff --git a/text.go b/text.go index 4f90ffd..af6ed33 100644 --- a/text.go +++ b/text.go @@ -1,4 +1,4 @@ -package main +package goibus import ( "github.com/godbus/dbus/v5" From 7e33eeebc96cc61a16c77d493ff7fdaa2e683b50 Mon Sep 17 00:00:00 2001 From: goatastronaut0212 Date: Wed, 24 Jul 2024 13:36:35 +0700 Subject: [PATCH 7/7] Update module name --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index ed0fd69..7c5f27a 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/goatastronaut0212/goibus +module github.com/BambooEngine/goibus go 1.13