detached 2aad925

refactor: migrate from jwijenbergh to bnema/puregotk + ebitengine/purego

Switches all import paths:
- github.com/jwijenbergh/puregotk → github.com/bnema/puregotk
- github.com/jwijenbergh/purego → github.com/ebitengine/purego

This brings in the []string keepalive fix for g_object_new_with_properties
calls (web-context, network-session, related-view creation) that could
cause use-after-free with the old purego.
commit
2aad9250910138be4617c0c857ae56ad27b8e4cd
author
brice · · 2026-03-25 13:00 UTC
committer
brice · · 2026-03-25 13:32 UTC
parent
f8e1820
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
59 files · +110 -107
M cmd/dumber/main.go +1 -1
@@ -34,7 +34,7 @@ import (
3434 "github.com/bnema/dumber/internal/ui/adapter"
3535 "github.com/bnema/dumber/internal/ui/component"
3636 "github.com/bnema/dumber/internal/ui/theme"
37- "github.com/jwijenbergh/puregotk/v4/gtk"
37+ "github.com/bnema/puregotk/v4/gtk"
3838 "github.com/rs/zerolog"
3939 )
4040
@@ -34,7 +34,7 @@ import (
34 "github.com/bnema/dumber/internal/ui/adapter"34 "github.com/bnema/dumber/internal/ui/adapter"
35 "github.com/bnema/dumber/internal/ui/component"35 "github.com/bnema/dumber/internal/ui/component"
36 "github.com/bnema/dumber/internal/ui/theme"36 "github.com/bnema/dumber/internal/ui/theme"
37- "github.com/jwijenbergh/puregotk/v4/gtk"37+ "github.com/bnema/puregotk/v4/gtk"
38 "github.com/rs/zerolog"38 "github.com/rs/zerolog"
39 )39 )
40 40
M go.mod +5 -5
@@ -1,16 +1,16 @@
11 module github.com/bnema/dumber
22
3-go 1.26
3+go 1.26.1
44
55 require (
6- github.com/bnema/puregotk-webkit v0.0.14
6+ github.com/bnema/puregotk v0.2.0
7+ github.com/bnema/puregotk-webkit v0.0.15
78 github.com/charmbracelet/bubbles v1.0.0
89 github.com/charmbracelet/bubbletea v1.3.10
910 github.com/charmbracelet/lipgloss v1.1.0
11+ github.com/ebitengine/purego v0.10.0
1012 github.com/fsnotify/fsnotify v1.9.0
1113 github.com/godbus/dbus/v5 v5.2.2
12- github.com/jwijenbergh/purego v0.0.0-20251017112123-b71757b9ba42
13- github.com/jwijenbergh/puregotk v0.0.0-20260212181341-fb13c245f9f0
1414 github.com/ncruces/go-sqlite3 v0.32.0
1515 github.com/pelletier/go-toml/v2 v2.2.4
1616 github.com/pressly/goose/v3 v3.27.0
@@ -23,7 +23,7 @@ require (
2323 gopkg.in/yaml.v3 v3.0.1
2424 )
2525
26-replace github.com/jwijenbergh/puregotk => github.com/bnema/puregotk v0.1.0
26+replace github.com/ebitengine/purego => github.com/bnema/purego v0.0.0-20260323095903-91aa177a2704
2727
2828 require (
2929 github.com/atotto/clipboard v0.1.4 // indirect
@@ -1,16 +1,16 @@
1 module github.com/bnema/dumber1 module github.com/bnema/dumber
2 2
3-go 1.263+go 1.26.1
4 4
5 require (5 require (
6- github.com/bnema/puregotk-webkit v0.0.146+ github.com/bnema/puregotk v0.2.0
7+ github.com/bnema/puregotk-webkit v0.0.15
7 github.com/charmbracelet/bubbles v1.0.08 github.com/charmbracelet/bubbles v1.0.0
8 github.com/charmbracelet/bubbletea v1.3.109 github.com/charmbracelet/bubbletea v1.3.10
9 github.com/charmbracelet/lipgloss v1.1.010 github.com/charmbracelet/lipgloss v1.1.0
11+ github.com/ebitengine/purego v0.10.0
10 github.com/fsnotify/fsnotify v1.9.012 github.com/fsnotify/fsnotify v1.9.0
11 github.com/godbus/dbus/v5 v5.2.213 github.com/godbus/dbus/v5 v5.2.2
12- github.com/jwijenbergh/purego v0.0.0-20251017112123-b71757b9ba42
13- github.com/jwijenbergh/puregotk v0.0.0-20260212181341-fb13c245f9f0
14 github.com/ncruces/go-sqlite3 v0.32.014 github.com/ncruces/go-sqlite3 v0.32.0
15 github.com/pelletier/go-toml/v2 v2.2.415 github.com/pelletier/go-toml/v2 v2.2.4
16 github.com/pressly/goose/v3 v3.27.016 github.com/pressly/goose/v3 v3.27.0
@@ -23,7 +23,7 @@ require (
23 gopkg.in/yaml.v3 v3.0.123 gopkg.in/yaml.v3 v3.0.1
24 )24 )
25 25
26-replace github.com/jwijenbergh/puregotk => github.com/bnema/puregotk v0.1.026+replace github.com/ebitengine/purego => github.com/bnema/purego v0.0.0-20260323095903-91aa177a2704
27 27
28 require (28 require (
29 github.com/atotto/clipboard v0.1.4 // indirect29 github.com/atotto/clipboard v0.1.4 // indirect
M go.sum +6 -6 generated file: collapsed
M internal/infrastructure/colorscheme/detector_adwaita.go +1 -1
@@ -3,7 +3,7 @@ package colorscheme
33 import (
44 "sync/atomic"
55
6- "github.com/jwijenbergh/puregotk/v4/adw"
6+ "github.com/bnema/puregotk/v4/adw"
77 )
88
99 const (
@@ -3,7 +3,7 @@ package colorscheme
3 import (3 import (
4 "sync/atomic"4 "sync/atomic"
5 5
6- "github.com/jwijenbergh/puregotk/v4/adw"6+ "github.com/bnema/puregotk/v4/adw"
7 )7 )
8 8
9 const (9 const (
M internal/infrastructure/config/defaults.go +4 -1
@@ -147,7 +147,10 @@ func DefaultConfig() *Config {
147147 Profile: ProfileDefault,
148148 PoolPrewarmCount: defaultWebViewPoolPrewarmCount,
149149 ZoomCacheSize: defaultZoomCacheSize,
150- CookiePolicy: CookiePolicyAlways,
150+ // With ITP enabled, WebKit ignores ACCEPT_NO_THIRD_PARTY — ITP handles
151+ // third-party cookie isolation more intelligently. Using Always + ITP
152+ // matches Epiphany's model and avoids a misleading setting.
153+ CookiePolicy: CookiePolicyAlways,
151154 WebKit: WebKitEngineConfig{
152155 ITPEnabled: true,
153156 SkiaCPUPaintingThreads: defaultSkiaCPUPaintingThreads,
@@ -147,7 +147,10 @@ func DefaultConfig() *Config {
147 Profile: ProfileDefault,147 Profile: ProfileDefault,
148 PoolPrewarmCount: defaultWebViewPoolPrewarmCount,148 PoolPrewarmCount: defaultWebViewPoolPrewarmCount,
149 ZoomCacheSize: defaultZoomCacheSize,149 ZoomCacheSize: defaultZoomCacheSize,
150- CookiePolicy: CookiePolicyAlways,150+ // With ITP enabled, WebKit ignores ACCEPT_NO_THIRD_PARTY — ITP handles
151+ // third-party cookie isolation more intelligently. Using Always + ITP
152+ // matches Epiphany's model and avoids a misleading setting.
153+ CookiePolicy: CookiePolicyAlways,
151 WebKit: WebKitEngineConfig{154 WebKit: WebKitEngineConfig{
152 ITPEnabled: true,155 ITPEnabled: true,
153 SkiaCPUPaintingThreads: defaultSkiaCPUPaintingThreads,156 SkiaCPUPaintingThreads: defaultSkiaCPUPaintingThreads,
M internal/infrastructure/filtering/store.go +1 -1
@@ -7,7 +7,7 @@ import (
77
88 "github.com/bnema/dumber/internal/logging"
99 "github.com/bnema/puregotk-webkit/webkit"
10- "github.com/jwijenbergh/puregotk/v4/gio"
10+ "github.com/bnema/puregotk/v4/gio"
1111 )
1212
1313 // Store wraps webkit.UserContentFilterStore with Go-friendly async operations.
@@ -7,7 +7,7 @@ import (
7 7
8 "github.com/bnema/dumber/internal/logging"8 "github.com/bnema/dumber/internal/logging"
9 "github.com/bnema/puregotk-webkit/webkit"9 "github.com/bnema/puregotk-webkit/webkit"
10- "github.com/jwijenbergh/puregotk/v4/gio"10+ "github.com/bnema/puregotk/v4/gio"
11 )11 )
12 12
13 // Store wraps webkit.UserContentFilterStore with Go-friendly async operations.13 // Store wraps webkit.UserContentFilterStore with Go-friendly async operations.
M internal/infrastructure/textinput/gtk_entry_target.go +1 -1
@@ -5,7 +5,7 @@ import (
55
66 "github.com/bnema/dumber/internal/application/port"
77 "github.com/bnema/dumber/internal/logging"
8- "github.com/jwijenbergh/puregotk/v4/gtk"
8+ "github.com/bnema/puregotk/v4/gtk"
99 )
1010
1111 // GTKEntryTarget implements TextInputTarget for GTK SearchEntry widgets.
@@ -5,7 +5,7 @@ import (
5 5
6 "github.com/bnema/dumber/internal/application/port"6 "github.com/bnema/dumber/internal/application/port"
7 "github.com/bnema/dumber/internal/logging"7 "github.com/bnema/dumber/internal/logging"
8- "github.com/jwijenbergh/puregotk/v4/gtk"8+ "github.com/bnema/puregotk/v4/gtk"
9 )9 )
10 10
11 // GTKEntryTarget implements TextInputTarget for GTK SearchEntry widgets.11 // GTKEntryTarget implements TextInputTarget for GTK SearchEntry widgets.
M internal/infrastructure/webkit/bgcolor.go +1 -1
@@ -3,7 +3,7 @@ package webkit
33 import (
44 "sync"
55
6- "github.com/jwijenbergh/puregotk/v4/gdk"
6+ "github.com/bnema/puregotk/v4/gdk"
77 )
88
99 // bgColor holds RGBA components for WebView background color (eliminates white flash).
@@ -3,7 +3,7 @@ package webkit
3 import (3 import (
4 "sync"4 "sync"
5 5
6- "github.com/jwijenbergh/puregotk/v4/gdk"6+ "github.com/bnema/puregotk/v4/gdk"
7 )7 )
8 8
9 // bgColor holds RGBA components for WebView background color (eliminates white flash).9 // bgColor holds RGBA components for WebView background color (eliminates white flash).
M internal/infrastructure/webkit/engine_adapters.go +1 -1
@@ -7,7 +7,7 @@ import (
77 "github.com/bnema/dumber/internal/application/port"
88 "github.com/bnema/dumber/internal/infrastructure/filtering"
99 "github.com/bnema/dumber/internal/logging"
10- "github.com/jwijenbergh/puregotk/v4/gio"
10+ "github.com/bnema/puregotk/v4/gio"
1111 )
1212
1313 // --- WebViewFactory adapter ---
@@ -7,7 +7,7 @@ import (
7 "github.com/bnema/dumber/internal/application/port"7 "github.com/bnema/dumber/internal/application/port"
8 "github.com/bnema/dumber/internal/infrastructure/filtering"8 "github.com/bnema/dumber/internal/infrastructure/filtering"
9 "github.com/bnema/dumber/internal/logging"9 "github.com/bnema/dumber/internal/logging"
10- "github.com/jwijenbergh/puregotk/v4/gio"10+ "github.com/bnema/puregotk/v4/gio"
11 )11 )
12 12
13 // --- WebViewFactory adapter ---13 // --- WebViewFactory adapter ---
M internal/infrastructure/webkit/engine_init.go +1 -1
@@ -12,7 +12,7 @@ import (
1212 "github.com/bnema/dumber/internal/infrastructure/filtering"
1313 "github.com/bnema/dumber/internal/logging"
1414 "github.com/bnema/dumber/internal/ui/theme"
15- "github.com/jwijenbergh/puregotk/v4/gdk"
15+ "github.com/bnema/puregotk/v4/gdk"
1616 "github.com/rs/zerolog"
1717 )
1818
@@ -12,7 +12,7 @@ import (
12 "github.com/bnema/dumber/internal/infrastructure/filtering"12 "github.com/bnema/dumber/internal/infrastructure/filtering"
13 "github.com/bnema/dumber/internal/logging"13 "github.com/bnema/dumber/internal/logging"
14 "github.com/bnema/dumber/internal/ui/theme"14 "github.com/bnema/dumber/internal/ui/theme"
15- "github.com/jwijenbergh/puregotk/v4/gdk"15+ "github.com/bnema/puregotk/v4/gdk"
16 "github.com/rs/zerolog"16 "github.com/rs/zerolog"
17 )17 )
18 18
M internal/infrastructure/webkit/gobject_type_helpers.go +3 -3
@@ -5,9 +5,9 @@ import (
55 "sync"
66
77 "github.com/bnema/dumber/internal/logging"
8- "github.com/jwijenbergh/purego"
9- "github.com/jwijenbergh/puregotk/pkg/core"
10- gtypes "github.com/jwijenbergh/puregotk/v4/gobject/types"
8+ "github.com/bnema/puregotk/pkg/core"
9+ gtypes "github.com/bnema/puregotk/v4/gobject/types"
10+ "github.com/ebitengine/purego"
1111 )
1212
1313 var (
@@ -5,9 +5,9 @@ import (
5 "sync"5 "sync"
6 6
7 "github.com/bnema/dumber/internal/logging"7 "github.com/bnema/dumber/internal/logging"
8- "github.com/jwijenbergh/purego"8+ "github.com/bnema/puregotk/pkg/core"
9- "github.com/jwijenbergh/puregotk/pkg/core"9+ gtypes "github.com/bnema/puregotk/v4/gobject/types"
10- gtypes "github.com/jwijenbergh/puregotk/v4/gobject/types"10+ "github.com/ebitengine/purego"
11 )11 )
12 12
13 var (13 var (
M internal/infrastructure/webkit/pool.go +1 -1
@@ -11,7 +11,7 @@ import (
1111
1212 "github.com/bnema/dumber/internal/logging"
1313 "github.com/bnema/puregotk-webkit/webkit"
14- "github.com/jwijenbergh/puregotk/v4/glib"
14+ "github.com/bnema/puregotk/v4/glib"
1515 )
1616
1717 // ErrPoolClosed is returned when operations are attempted on a closed pool.
@@ -11,7 +11,7 @@ import (
11 11
12 "github.com/bnema/dumber/internal/logging"12 "github.com/bnema/dumber/internal/logging"
13 "github.com/bnema/puregotk-webkit/webkit"13 "github.com/bnema/puregotk-webkit/webkit"
14- "github.com/jwijenbergh/puregotk/v4/glib"14+ "github.com/bnema/puregotk/v4/glib"
15 )15 )
16 16
17 // ErrPoolClosed is returned when operations are attempted on a closed pool.17 // ErrPoolClosed is returned when operations are attempted on a closed pool.
M internal/infrastructure/webkit/scheme_handler.go +1 -1
@@ -20,7 +20,7 @@ import (
2020 "github.com/bnema/dumber/internal/logging"
2121 "github.com/bnema/puregotk-webkit/soup"
2222 "github.com/bnema/puregotk-webkit/webkit"
23- "github.com/jwijenbergh/puregotk/v4/gio"
23+ "github.com/bnema/puregotk/v4/gio"
2424 "github.com/rs/zerolog"
2525 )
2626
@@ -20,7 +20,7 @@ import (
20 "github.com/bnema/dumber/internal/logging"20 "github.com/bnema/dumber/internal/logging"
21 "github.com/bnema/puregotk-webkit/soup"21 "github.com/bnema/puregotk-webkit/soup"
22 "github.com/bnema/puregotk-webkit/webkit"22 "github.com/bnema/puregotk-webkit/webkit"
23- "github.com/jwijenbergh/puregotk/v4/gio"23+ "github.com/bnema/puregotk/v4/gio"
24 "github.com/rs/zerolog"24 "github.com/rs/zerolog"
25 )25 )
26 26
M internal/infrastructure/webkit/webview.go +6 -6
@@ -15,12 +15,12 @@ import (
1515 "github.com/bnema/dumber/internal/infrastructure/desktop"
1616 "github.com/bnema/dumber/internal/logging"
1717 "github.com/bnema/puregotk-webkit/webkit"
18- "github.com/jwijenbergh/puregotk/v4/gdk"
19- "github.com/jwijenbergh/puregotk/v4/gio"
20- "github.com/jwijenbergh/puregotk/v4/glib"
21- "github.com/jwijenbergh/puregotk/v4/gobject"
22- gtypes "github.com/jwijenbergh/puregotk/v4/gobject/types"
23- "github.com/jwijenbergh/puregotk/v4/gtk"
18+ "github.com/bnema/puregotk/v4/gdk"
19+ "github.com/bnema/puregotk/v4/gio"
20+ "github.com/bnema/puregotk/v4/glib"
21+ "github.com/bnema/puregotk/v4/gobject"
22+ gtypes "github.com/bnema/puregotk/v4/gobject/types"
23+ "github.com/bnema/puregotk/v4/gtk"
2424 "github.com/rs/zerolog"
2525 )
2626
@@ -15,12 +15,12 @@ import (
15 "github.com/bnema/dumber/internal/infrastructure/desktop"15 "github.com/bnema/dumber/internal/infrastructure/desktop"
16 "github.com/bnema/dumber/internal/logging"16 "github.com/bnema/dumber/internal/logging"
17 "github.com/bnema/puregotk-webkit/webkit"17 "github.com/bnema/puregotk-webkit/webkit"
18- "github.com/jwijenbergh/puregotk/v4/gdk"18+ "github.com/bnema/puregotk/v4/gdk"
19- "github.com/jwijenbergh/puregotk/v4/gio"19+ "github.com/bnema/puregotk/v4/gio"
20- "github.com/jwijenbergh/puregotk/v4/glib"20+ "github.com/bnema/puregotk/v4/glib"
21- "github.com/jwijenbergh/puregotk/v4/gobject"21+ "github.com/bnema/puregotk/v4/gobject"
22- gtypes "github.com/jwijenbergh/puregotk/v4/gobject/types"22+ gtypes "github.com/bnema/puregotk/v4/gobject/types"
23- "github.com/jwijenbergh/puregotk/v4/gtk"23+ "github.com/bnema/puregotk/v4/gtk"
24 "github.com/rs/zerolog"24 "github.com/rs/zerolog"
25 )25 )
26 26
M internal/logging/glib.go +1 -1
@@ -4,7 +4,7 @@ import (
44 "context"
55 "sync"
66
7- "github.com/jwijenbergh/puregotk/v4/glib"
7+ "github.com/bnema/puregotk/v4/glib"
88 "github.com/rs/zerolog"
99 )
1010
@@ -4,7 +4,7 @@ import (
4 "context"4 "context"
5 "sync"5 "sync"
6 6
7- "github.com/jwijenbergh/puregotk/v4/glib"7+ "github.com/bnema/puregotk/v4/glib"
8 "github.com/rs/zerolog"8 "github.com/rs/zerolog"
9 )9 )
10 10
M internal/ui/adapter/favicon.go +2 -2
@@ -8,8 +8,8 @@ import (
88 "github.com/bnema/dumber/internal/application/port"
99 domainurl "github.com/bnema/dumber/internal/domain/url"
1010 "github.com/bnema/dumber/internal/logging"
11- "github.com/jwijenbergh/puregotk/v4/gdk"
12- "github.com/jwijenbergh/puregotk/v4/glib"
11+ "github.com/bnema/puregotk/v4/gdk"
12+ "github.com/bnema/puregotk/v4/glib"
1313 "github.com/rs/zerolog"
1414 )
1515
@@ -8,8 +8,8 @@ import (
8 "github.com/bnema/dumber/internal/application/port"8 "github.com/bnema/dumber/internal/application/port"
9 domainurl "github.com/bnema/dumber/internal/domain/url"9 domainurl "github.com/bnema/dumber/internal/domain/url"
10 "github.com/bnema/dumber/internal/logging"10 "github.com/bnema/dumber/internal/logging"
11- "github.com/jwijenbergh/puregotk/v4/gdk"11+ "github.com/bnema/puregotk/v4/gdk"
12- "github.com/jwijenbergh/puregotk/v4/glib"12+ "github.com/bnema/puregotk/v4/glib"
13 "github.com/rs/zerolog"13 "github.com/rs/zerolog"
14 )14 )
15 15
M internal/ui/app.go +5 -5
@@ -27,11 +27,11 @@ import (
2727 "github.com/bnema/dumber/internal/ui/layout"
2828 "github.com/bnema/dumber/internal/ui/theme"
2929 "github.com/bnema/dumber/internal/ui/window"
30- "github.com/jwijenbergh/puregotk/v4/adw"
31- "github.com/jwijenbergh/puregotk/v4/gdk"
32- "github.com/jwijenbergh/puregotk/v4/gio"
33- "github.com/jwijenbergh/puregotk/v4/glib"
34- "github.com/jwijenbergh/puregotk/v4/gtk"
30+ "github.com/bnema/puregotk/v4/adw"
31+ "github.com/bnema/puregotk/v4/gdk"
32+ "github.com/bnema/puregotk/v4/gio"
33+ "github.com/bnema/puregotk/v4/glib"
34+ "github.com/bnema/puregotk/v4/gtk"
3535 )
3636
3737 const (
@@ -27,11 +27,11 @@ import (
27 "github.com/bnema/dumber/internal/ui/layout"27 "github.com/bnema/dumber/internal/ui/layout"
28 "github.com/bnema/dumber/internal/ui/theme"28 "github.com/bnema/dumber/internal/ui/theme"
29 "github.com/bnema/dumber/internal/ui/window"29 "github.com/bnema/dumber/internal/ui/window"
30- "github.com/jwijenbergh/puregotk/v4/adw"30+ "github.com/bnema/puregotk/v4/adw"
31- "github.com/jwijenbergh/puregotk/v4/gdk"31+ "github.com/bnema/puregotk/v4/gdk"
32- "github.com/jwijenbergh/puregotk/v4/gio"32+ "github.com/bnema/puregotk/v4/gio"
33- "github.com/jwijenbergh/puregotk/v4/glib"33+ "github.com/bnema/puregotk/v4/glib"
34- "github.com/jwijenbergh/puregotk/v4/gtk"34+ "github.com/bnema/puregotk/v4/gtk"
35 )35 )
36 36
37 const (37 const (
M internal/ui/app_flags_test.go +1 -1
@@ -3,7 +3,7 @@ package ui
33 import (
44 "testing"
55
6- "github.com/jwijenbergh/puregotk/v4/gio"
6+ "github.com/bnema/puregotk/v4/gio"
77 "github.com/stretchr/testify/assert"
88 )
99
@@ -3,7 +3,7 @@ package ui
3 import (3 import (
4 "testing"4 "testing"
5 5
6- "github.com/jwijenbergh/puregotk/v4/gio"6+ "github.com/bnema/puregotk/v4/gio"
7 "github.com/stretchr/testify/assert"7 "github.com/stretchr/testify/assert"
8 )8 )
9 9
M internal/ui/component/accent_picker.go +2 -2
@@ -5,8 +5,8 @@ import (
55
66 "github.com/bnema/dumber/internal/application/port"
77 "github.com/bnema/dumber/internal/ui/layout"
8- "github.com/jwijenbergh/puregotk/v4/gdk"
9- "github.com/jwijenbergh/puregotk/v4/gtk"
8+ "github.com/bnema/puregotk/v4/gdk"
9+ "github.com/bnema/puregotk/v4/gtk"
1010 )
1111
1212 // Accent picker layout constants.
@@ -5,8 +5,8 @@ import (
5 5
6 "github.com/bnema/dumber/internal/application/port"6 "github.com/bnema/dumber/internal/application/port"
7 "github.com/bnema/dumber/internal/ui/layout"7 "github.com/bnema/dumber/internal/ui/layout"
8- "github.com/jwijenbergh/puregotk/v4/gdk"8+ "github.com/bnema/puregotk/v4/gdk"
9- "github.com/jwijenbergh/puregotk/v4/gtk"9+ "github.com/bnema/puregotk/v4/gtk"
10 )10 )
11 11
12 // Accent picker layout constants.12 // Accent picker layout constants.
M internal/ui/component/find_bar.go +3 -3
@@ -11,9 +11,9 @@ import (
1111 "github.com/bnema/dumber/internal/domain/entity"
1212 "github.com/bnema/dumber/internal/logging"
1313 "github.com/bnema/dumber/internal/ui/layout"
14- "github.com/jwijenbergh/puregotk/v4/gdk"
15- "github.com/jwijenbergh/puregotk/v4/glib"
16- "github.com/jwijenbergh/puregotk/v4/gtk"
14+ "github.com/bnema/puregotk/v4/gdk"
15+ "github.com/bnema/puregotk/v4/glib"
16+ "github.com/bnema/puregotk/v4/gtk"
1717 )
1818
1919 const (
@@ -11,9 +11,9 @@ import (
11 "github.com/bnema/dumber/internal/domain/entity"11 "github.com/bnema/dumber/internal/domain/entity"
12 "github.com/bnema/dumber/internal/logging"12 "github.com/bnema/dumber/internal/logging"
13 "github.com/bnema/dumber/internal/ui/layout"13 "github.com/bnema/dumber/internal/ui/layout"
14- "github.com/jwijenbergh/puregotk/v4/gdk"14+ "github.com/bnema/puregotk/v4/gdk"
15- "github.com/jwijenbergh/puregotk/v4/glib"15+ "github.com/bnema/puregotk/v4/glib"
16- "github.com/jwijenbergh/puregotk/v4/gtk"16+ "github.com/bnema/puregotk/v4/gtk"
17 )17 )
18 18
19 const (19 const (
M internal/ui/component/link_status.go +2 -2
@@ -5,8 +5,8 @@ import (
55 "sync"
66
77 "github.com/bnema/dumber/internal/ui/mainloop"
8- "github.com/jwijenbergh/puregotk/v4/glib"
9- "github.com/jwijenbergh/puregotk/v4/gtk"
8+ "github.com/bnema/puregotk/v4/glib"
9+ "github.com/bnema/puregotk/v4/gtk"
1010
1111 "github.com/bnema/dumber/internal/ui/layout"
1212 )
@@ -5,8 +5,8 @@ import (
5 "sync"5 "sync"
6 6
7 "github.com/bnema/dumber/internal/ui/mainloop"7 "github.com/bnema/dumber/internal/ui/mainloop"
8- "github.com/jwijenbergh/puregotk/v4/glib"8+ "github.com/bnema/puregotk/v4/glib"
9- "github.com/jwijenbergh/puregotk/v4/gtk"9+ "github.com/bnema/puregotk/v4/gtk"
10 10
11 "github.com/bnema/dumber/internal/ui/layout"11 "github.com/bnema/dumber/internal/ui/layout"
12 )12 )
M internal/ui/component/loading_skeleton.go +1 -1
@@ -4,7 +4,7 @@ import (
44 "sync/atomic"
55
66 "github.com/bnema/dumber/internal/ui/layout"
7- "github.com/jwijenbergh/puregotk/v4/gtk"
7+ "github.com/bnema/puregotk/v4/gtk"
88 )
99
1010 // LoadingSkeleton displays a themed loading placeholder.
@@ -4,7 +4,7 @@ import (
4 "sync/atomic"4 "sync/atomic"
5 5
6 "github.com/bnema/dumber/internal/ui/layout"6 "github.com/bnema/dumber/internal/ui/layout"
7- "github.com/jwijenbergh/puregotk/v4/gtk"7+ "github.com/bnema/puregotk/v4/gtk"
8 )8 )
9 9
10 // LoadingSkeleton displays a themed loading placeholder.10 // LoadingSkeleton displays a themed loading placeholder.
M internal/ui/component/logo.go +2 -2
@@ -5,8 +5,8 @@ import (
55 "sync"
66
77 "github.com/bnema/dumber/assets"
8- "github.com/jwijenbergh/puregotk/v4/gdk"
9- "github.com/jwijenbergh/puregotk/v4/glib"
8+ "github.com/bnema/puregotk/v4/gdk"
9+ "github.com/bnema/puregotk/v4/glib"
1010 )
1111
1212 var (
@@ -5,8 +5,8 @@ import (
5 "sync"5 "sync"
6 6
7 "github.com/bnema/dumber/assets"7 "github.com/bnema/dumber/assets"
8- "github.com/jwijenbergh/puregotk/v4/gdk"8+ "github.com/bnema/puregotk/v4/gdk"
9- "github.com/jwijenbergh/puregotk/v4/glib"9+ "github.com/bnema/puregotk/v4/glib"
10 )10 )
11 11
12 var (12 var (
M internal/ui/component/modal_sizing.go +1 -1
@@ -2,7 +2,7 @@ package component
22
33 import (
44 "github.com/bnema/dumber/internal/ui/layout"
5- "github.com/jwijenbergh/puregotk/v4/gtk"
5+ "github.com/bnema/puregotk/v4/gtk"
66 )
77
88 // ModalSizeConfig holds configuration for modal sizing calculations.
@@ -2,7 +2,7 @@ package component
2 2
3 import (3 import (
4 "github.com/bnema/dumber/internal/ui/layout"4 "github.com/bnema/dumber/internal/ui/layout"
5- "github.com/jwijenbergh/puregotk/v4/gtk"5+ "github.com/bnema/puregotk/v4/gtk"
6 )6 )
7 7
8 // ModalSizeConfig holds configuration for modal sizing calculations.8 // ModalSizeConfig holds configuration for modal sizing calculations.
M internal/ui/component/omnibox.go +4 -4
@@ -18,10 +18,10 @@ import (
1818 "github.com/bnema/dumber/internal/ui/input"
1919 "github.com/bnema/dumber/internal/ui/layout"
2020 "github.com/bnema/dumber/internal/ui/mainloop"
21- "github.com/jwijenbergh/puregotk/v4/gdk"
22- "github.com/jwijenbergh/puregotk/v4/glib"
23- "github.com/jwijenbergh/puregotk/v4/graphene"
24- "github.com/jwijenbergh/puregotk/v4/gtk"
21+ "github.com/bnema/puregotk/v4/gdk"
22+ "github.com/bnema/puregotk/v4/glib"
23+ "github.com/bnema/puregotk/v4/graphene"
24+ "github.com/bnema/puregotk/v4/gtk"
2525 )
2626
2727 const (
@@ -18,10 +18,10 @@ import (
18 "github.com/bnema/dumber/internal/ui/input"18 "github.com/bnema/dumber/internal/ui/input"
19 "github.com/bnema/dumber/internal/ui/layout"19 "github.com/bnema/dumber/internal/ui/layout"
20 "github.com/bnema/dumber/internal/ui/mainloop"20 "github.com/bnema/dumber/internal/ui/mainloop"
21- "github.com/jwijenbergh/puregotk/v4/gdk"21+ "github.com/bnema/puregotk/v4/gdk"
22- "github.com/jwijenbergh/puregotk/v4/glib"22+ "github.com/bnema/puregotk/v4/glib"
23- "github.com/jwijenbergh/puregotk/v4/graphene"23+ "github.com/bnema/puregotk/v4/graphene"
24- "github.com/jwijenbergh/puregotk/v4/gtk"24+ "github.com/bnema/puregotk/v4/gtk"
25 )25 )
26 26
27 const (27 const (
M internal/ui/component/omnibox_navigation_state_test.go +1 -1
@@ -3,7 +3,7 @@ package component
33 import (
44 "testing"
55
6- "github.com/jwijenbergh/puregotk/v4/gdk"
6+ "github.com/bnema/puregotk/v4/gdk"
77 )
88
99 func TestShouldPreferTypedURLNavigation(t *testing.T) {
@@ -3,7 +3,7 @@ package component
3 import (3 import (
4 "testing"4 "testing"
5 5
6- "github.com/jwijenbergh/puregotk/v4/gdk"6+ "github.com/bnema/puregotk/v4/gdk"
7 )7 )
8 8
9 func TestShouldPreferTypedURLNavigation(t *testing.T) {9 func TestShouldPreferTypedURLNavigation(t *testing.T) {
M internal/ui/component/permission_popup.go +2 -2
@@ -6,8 +6,8 @@ import (
66
77 "github.com/bnema/dumber/internal/logging"
88 "github.com/bnema/dumber/internal/ui/layout"
9- "github.com/jwijenbergh/puregotk/v4/gdk"
10- "github.com/jwijenbergh/puregotk/v4/gtk"
9+ "github.com/bnema/puregotk/v4/gdk"
10+ "github.com/bnema/puregotk/v4/gtk"
1111 )
1212
1313 // buttonSpacing is the spacing between buttons in the permission popup.
@@ -6,8 +6,8 @@ import (
6 6
7 "github.com/bnema/dumber/internal/logging"7 "github.com/bnema/dumber/internal/logging"
8 "github.com/bnema/dumber/internal/ui/layout"8 "github.com/bnema/dumber/internal/ui/layout"
9- "github.com/jwijenbergh/puregotk/v4/gdk"9+ "github.com/bnema/puregotk/v4/gdk"
10- "github.com/jwijenbergh/puregotk/v4/gtk"10+ "github.com/bnema/puregotk/v4/gtk"
11 )11 )
12 12
13 // buttonSpacing is the spacing between buttons in the permission popup.13 // buttonSpacing is the spacing between buttons in the permission popup.
M internal/ui/component/progress_bar.go +2 -2
@@ -4,8 +4,8 @@ package component
44 import (
55 "sync"
66
7- "github.com/jwijenbergh/puregotk/v4/glib"
8- "github.com/jwijenbergh/puregotk/v4/gtk"
7+ "github.com/bnema/puregotk/v4/glib"
8+ "github.com/bnema/puregotk/v4/gtk"
99
1010 "github.com/bnema/dumber/internal/ui/layout"
1111 )
@@ -4,8 +4,8 @@ package component
4 import (4 import (
5 "sync"5 "sync"
6 6
7- "github.com/jwijenbergh/puregotk/v4/glib"7+ "github.com/bnema/puregotk/v4/glib"
8- "github.com/jwijenbergh/puregotk/v4/gtk"8+ "github.com/bnema/puregotk/v4/gtk"
9 9
10 "github.com/bnema/dumber/internal/ui/layout"10 "github.com/bnema/dumber/internal/ui/layout"
11 )11 )
M internal/ui/component/session_manager.go +3 -3
@@ -11,9 +11,9 @@ import (
1111 "github.com/bnema/dumber/internal/domain/entity"
1212 "github.com/bnema/dumber/internal/logging"
1313 "github.com/bnema/dumber/internal/ui/layout"
14- "github.com/jwijenbergh/puregotk/v4/gdk"
15- "github.com/jwijenbergh/puregotk/v4/glib"
16- "github.com/jwijenbergh/puregotk/v4/gtk"
14+ "github.com/bnema/puregotk/v4/gdk"
15+ "github.com/bnema/puregotk/v4/glib"
16+ "github.com/bnema/puregotk/v4/gtk"
1717 )
1818
1919 const (
@@ -11,9 +11,9 @@ import (
11 "github.com/bnema/dumber/internal/domain/entity"11 "github.com/bnema/dumber/internal/domain/entity"
12 "github.com/bnema/dumber/internal/logging"12 "github.com/bnema/dumber/internal/logging"
13 "github.com/bnema/dumber/internal/ui/layout"13 "github.com/bnema/dumber/internal/ui/layout"
14- "github.com/jwijenbergh/puregotk/v4/gdk"14+ "github.com/bnema/puregotk/v4/gdk"
15- "github.com/jwijenbergh/puregotk/v4/glib"15+ "github.com/bnema/puregotk/v4/glib"
16- "github.com/jwijenbergh/puregotk/v4/gtk"16+ "github.com/bnema/puregotk/v4/gtk"
17 )17 )
18 18
19 const (19 const (
M internal/ui/component/tab_bar.go +1 -1
@@ -4,7 +4,7 @@ import (
44 "sync"
55
66 "github.com/bnema/dumber/internal/domain/entity"
7- "github.com/jwijenbergh/puregotk/v4/gtk"
7+ "github.com/bnema/puregotk/v4/gtk"
88 )
99
1010 // TabBar represents the horizontal tab bar widget.
@@ -4,7 +4,7 @@ import (
4 "sync"4 "sync"
5 5
6 "github.com/bnema/dumber/internal/domain/entity"6 "github.com/bnema/dumber/internal/domain/entity"
7- "github.com/jwijenbergh/puregotk/v4/gtk"7+ "github.com/bnema/puregotk/v4/gtk"
8 )8 )
9 9
10 // TabBar represents the horizontal tab bar widget.10 // TabBar represents the horizontal tab bar widget.
M internal/ui/component/tab_button.go +2 -2
@@ -3,8 +3,8 @@ package component
33
44 import (
55 "github.com/bnema/dumber/internal/domain/entity"
6- "github.com/jwijenbergh/puregotk/v4/gtk"
7- "github.com/jwijenbergh/puregotk/v4/pango"
6+ "github.com/bnema/puregotk/v4/gtk"
7+ "github.com/bnema/puregotk/v4/pango"
88 )
99
1010 // TabButton represents a single tab button in the tab bar.
@@ -3,8 +3,8 @@ package component
3 3
4 import (4 import (
5 "github.com/bnema/dumber/internal/domain/entity"5 "github.com/bnema/dumber/internal/domain/entity"
6- "github.com/jwijenbergh/puregotk/v4/gtk"6+ "github.com/bnema/puregotk/v4/gtk"
7- "github.com/jwijenbergh/puregotk/v4/pango"7+ "github.com/bnema/puregotk/v4/pango"
8 )8 )
9 9
10 // TabButton represents a single tab button in the tab bar.10 // TabButton represents a single tab button in the tab bar.
M internal/ui/component/tab_picker.go +3 -3
@@ -6,9 +6,9 @@ import (
66
77 "github.com/bnema/dumber/internal/domain/entity"
88 "github.com/bnema/dumber/internal/ui/layout"
9- "github.com/jwijenbergh/puregotk/v4/gdk"
10- "github.com/jwijenbergh/puregotk/v4/glib"
11- "github.com/jwijenbergh/puregotk/v4/gtk"
9+ "github.com/bnema/puregotk/v4/gdk"
10+ "github.com/bnema/puregotk/v4/glib"
11+ "github.com/bnema/puregotk/v4/gtk"
1212 )
1313
1414 type TabPickerItem struct {
@@ -6,9 +6,9 @@ import (
6 6
7 "github.com/bnema/dumber/internal/domain/entity"7 "github.com/bnema/dumber/internal/domain/entity"
8 "github.com/bnema/dumber/internal/ui/layout"8 "github.com/bnema/dumber/internal/ui/layout"
9- "github.com/jwijenbergh/puregotk/v4/gdk"9+ "github.com/bnema/puregotk/v4/gdk"
10- "github.com/jwijenbergh/puregotk/v4/glib"10+ "github.com/bnema/puregotk/v4/glib"
11- "github.com/jwijenbergh/puregotk/v4/gtk"11+ "github.com/bnema/puregotk/v4/gtk"
12 )12 )
13 13
14 type TabPickerItem struct {14 type TabPickerItem struct {
M internal/ui/component/toaster.go +2 -2
@@ -6,8 +6,8 @@ import (
66 "fmt"
77 "sync"
88
9- "github.com/jwijenbergh/puregotk/v4/glib"
10- "github.com/jwijenbergh/puregotk/v4/gtk"
9+ "github.com/bnema/puregotk/v4/glib"
10+ "github.com/bnema/puregotk/v4/gtk"
1111
1212 "github.com/bnema/dumber/internal/logging"
1313 "github.com/bnema/dumber/internal/ui/layout"
@@ -6,8 +6,8 @@ import (
6 "fmt"6 "fmt"
7 "sync"7 "sync"
8 8
9- "github.com/jwijenbergh/puregotk/v4/glib"9+ "github.com/bnema/puregotk/v4/glib"
10- "github.com/jwijenbergh/puregotk/v4/gtk"10+ "github.com/bnema/puregotk/v4/gtk"
11 11
12 "github.com/bnema/dumber/internal/logging"12 "github.com/bnema/dumber/internal/logging"
13 "github.com/bnema/dumber/internal/ui/layout"13 "github.com/bnema/dumber/internal/ui/layout"
M internal/ui/component/webrtc_permission_indicator.go +1 -1
@@ -5,7 +5,7 @@ import (
55 "sync"
66
77 "github.com/bnema/dumber/internal/domain/entity"
8- "github.com/jwijenbergh/puregotk/v4/gtk"
8+ "github.com/bnema/puregotk/v4/gtk"
99 )
1010
1111 // revealerTransitionDuration is the animation duration in milliseconds
@@ -5,7 +5,7 @@ import (
5 "sync"5 "sync"
6 6
7 "github.com/bnema/dumber/internal/domain/entity"7 "github.com/bnema/dumber/internal/domain/entity"
8- "github.com/jwijenbergh/puregotk/v4/gtk"8+ "github.com/bnema/puregotk/v4/gtk"
9 )9 )
10 10
11 // revealerTransitionDuration is the animation duration in milliseconds11 // revealerTransitionDuration is the animation duration in milliseconds
M internal/ui/component/workspace_view.go +1 -1
@@ -12,7 +12,7 @@ import (
1212 "github.com/bnema/dumber/internal/domain/entity"
1313 "github.com/bnema/dumber/internal/logging"
1414 "github.com/bnema/dumber/internal/ui/layout"
15- "github.com/jwijenbergh/puregotk/v4/glib"
15+ "github.com/bnema/puregotk/v4/glib"
1616 "github.com/rs/zerolog"
1717 )
1818
@@ -12,7 +12,7 @@ import (
12 "github.com/bnema/dumber/internal/domain/entity"12 "github.com/bnema/dumber/internal/domain/entity"
13 "github.com/bnema/dumber/internal/logging"13 "github.com/bnema/dumber/internal/logging"
14 "github.com/bnema/dumber/internal/ui/layout"14 "github.com/bnema/dumber/internal/ui/layout"
15- "github.com/jwijenbergh/puregotk/v4/glib"15+ "github.com/bnema/puregotk/v4/glib"
16 "github.com/rs/zerolog"16 "github.com/rs/zerolog"
17 )17 )
18 18
M internal/ui/component/workspace_view_test.go +1 -1
@@ -4,7 +4,7 @@ import (
44 "context"
55 "testing"
66
7- "github.com/jwijenbergh/puregotk/v4/gtk"
7+ "github.com/bnema/puregotk/v4/gtk"
88 "github.com/stretchr/testify/assert"
99 "github.com/stretchr/testify/mock"
1010 "github.com/stretchr/testify/require"
@@ -4,7 +4,7 @@ import (
4 "context"4 "context"
5 "testing"5 "testing"
6 6
7- "github.com/jwijenbergh/puregotk/v4/gtk"7+ "github.com/bnema/puregotk/v4/gtk"
8 "github.com/stretchr/testify/assert"8 "github.com/stretchr/testify/assert"
9 "github.com/stretchr/testify/mock"9 "github.com/stretchr/testify/mock"
10 "github.com/stretchr/testify/require"10 "github.com/stretchr/testify/require"
M internal/ui/coordinator/content/callbacks.go +1 -1
@@ -9,7 +9,7 @@ import (
99 "github.com/bnema/dumber/internal/application/usecase"
1010 "github.com/bnema/dumber/internal/domain/entity"
1111 "github.com/bnema/dumber/internal/logging"
12- "github.com/jwijenbergh/puregotk/v4/gdk"
12+ "github.com/bnema/puregotk/v4/gdk"
1313 )
1414
1515 // internalSchemePath is the path used in dumb:// URIs (replaces webkit.HomePath).
@@ -9,7 +9,7 @@ import (
9 "github.com/bnema/dumber/internal/application/usecase"9 "github.com/bnema/dumber/internal/application/usecase"
10 "github.com/bnema/dumber/internal/domain/entity"10 "github.com/bnema/dumber/internal/domain/entity"
11 "github.com/bnema/dumber/internal/logging"11 "github.com/bnema/dumber/internal/logging"
12- "github.com/jwijenbergh/puregotk/v4/gdk"12+ "github.com/bnema/puregotk/v4/gdk"
13 )13 )
14 14
15 // internalSchemePath is the path used in dumb:// URIs (replaces webkit.HomePath).15 // internalSchemePath is the path used in dumb:// URIs (replaces webkit.HomePath).
M internal/ui/coordinator/content/lifecycle.go +1 -1
@@ -10,7 +10,7 @@ import (
1010 "github.com/bnema/dumber/internal/ui/component"
1111 "github.com/bnema/dumber/internal/ui/input"
1212 "github.com/bnema/dumber/internal/ui/layout"
13- "github.com/jwijenbergh/puregotk/v4/gtk"
13+ "github.com/bnema/puregotk/v4/gtk"
1414 )
1515
1616 // EnsureWebView acquires or reuses a WebView for the given pane.
@@ -10,7 +10,7 @@ import (
10 "github.com/bnema/dumber/internal/ui/component"10 "github.com/bnema/dumber/internal/ui/component"
11 "github.com/bnema/dumber/internal/ui/input"11 "github.com/bnema/dumber/internal/ui/input"
12 "github.com/bnema/dumber/internal/ui/layout"12 "github.com/bnema/dumber/internal/ui/layout"
13- "github.com/jwijenbergh/puregotk/v4/gtk"13+ "github.com/bnema/puregotk/v4/gtk"
14 )14 )
15 15
16 // EnsureWebView acquires or reuses a WebView for the given pane.16 // EnsureWebView acquires or reuses a WebView for the given pane.
M internal/ui/coordinator/content/navigation.go +1 -1
@@ -9,7 +9,7 @@ import (
99 "github.com/bnema/dumber/internal/domain/entity"
1010 urlutil "github.com/bnema/dumber/internal/domain/url"
1111 "github.com/bnema/dumber/internal/logging"
12- "github.com/jwijenbergh/puregotk/v4/gtk"
12+ "github.com/bnema/puregotk/v4/gtk"
1313 )
1414
1515 // onLoadCommitted re-applies zoom when page content starts loading and records history.
@@ -9,7 +9,7 @@ import (
9 "github.com/bnema/dumber/internal/domain/entity"9 "github.com/bnema/dumber/internal/domain/entity"
10 urlutil "github.com/bnema/dumber/internal/domain/url"10 urlutil "github.com/bnema/dumber/internal/domain/url"
11 "github.com/bnema/dumber/internal/logging"11 "github.com/bnema/dumber/internal/logging"
12- "github.com/jwijenbergh/puregotk/v4/gtk"12+ "github.com/bnema/puregotk/v4/gtk"
13 )13 )
14 14
15 // onLoadCommitted re-applies zoom when page content starts loading and records history.15 // onLoadCommitted re-applies zoom when page content starts loading and records history.
M internal/ui/coordinator/content/oauth.go +1 -1
@@ -10,7 +10,7 @@ import (
1010 "github.com/bnema/dumber/internal/application/port"
1111 "github.com/bnema/dumber/internal/domain/entity"
1212 "github.com/bnema/dumber/internal/logging"
13- "github.com/jwijenbergh/puregotk/v4/glib"
13+ "github.com/bnema/puregotk/v4/glib"
1414 )
1515
1616 // oauthFlowPatterns are URL patterns that indicate an OAuth flow is in progress.
@@ -10,7 +10,7 @@ import (
10 "github.com/bnema/dumber/internal/application/port"10 "github.com/bnema/dumber/internal/application/port"
11 "github.com/bnema/dumber/internal/domain/entity"11 "github.com/bnema/dumber/internal/domain/entity"
12 "github.com/bnema/dumber/internal/logging"12 "github.com/bnema/dumber/internal/logging"
13- "github.com/jwijenbergh/puregotk/v4/glib"13+ "github.com/bnema/puregotk/v4/glib"
14 )14 )
15 15
16 // oauthFlowPatterns are URL patterns that indicate an OAuth flow is in progress.16 // oauthFlowPatterns are URL patterns that indicate an OAuth flow is in progress.
M internal/ui/coordinator/content/title.go +2 -2
@@ -9,8 +9,8 @@ import (
99 "github.com/bnema/dumber/internal/logging"
1010 "github.com/bnema/dumber/internal/ui/adapter"
1111 "github.com/bnema/dumber/internal/ui/layout"
12- "github.com/jwijenbergh/puregotk/v4/gdk"
13- "github.com/jwijenbergh/puregotk/v4/glib"
12+ "github.com/bnema/puregotk/v4/gdk"
13+ "github.com/bnema/puregotk/v4/glib"
1414 )
1515
1616 // GetTitle returns the current title for a pane.
@@ -9,8 +9,8 @@ import (
9 "github.com/bnema/dumber/internal/logging"9 "github.com/bnema/dumber/internal/logging"
10 "github.com/bnema/dumber/internal/ui/adapter"10 "github.com/bnema/dumber/internal/ui/adapter"
11 "github.com/bnema/dumber/internal/ui/layout"11 "github.com/bnema/dumber/internal/ui/layout"
12- "github.com/jwijenbergh/puregotk/v4/gdk"12+ "github.com/bnema/puregotk/v4/gdk"
13- "github.com/jwijenbergh/puregotk/v4/glib"13+ "github.com/bnema/puregotk/v4/glib"
14 )14 )
15 15
16 // GetTitle returns the current title for a pane.16 // GetTitle returns the current title for a pane.
M internal/ui/coordinator/update.go +1 -1
@@ -5,7 +5,7 @@ import (
55 "fmt"
66 "sync"
77
8- "github.com/jwijenbergh/puregotk/v4/glib"
8+ "github.com/bnema/puregotk/v4/glib"
99
1010 "github.com/bnema/dumber/internal/application/usecase"
1111 "github.com/bnema/dumber/internal/domain/entity"
@@ -5,7 +5,7 @@ import (
5 "fmt"5 "fmt"
6 "sync"6 "sync"
7 7
8- "github.com/jwijenbergh/puregotk/v4/glib"8+ "github.com/bnema/puregotk/v4/glib"
9 9
10 "github.com/bnema/dumber/internal/application/usecase"10 "github.com/bnema/dumber/internal/application/usecase"
11 "github.com/bnema/dumber/internal/domain/entity"11 "github.com/bnema/dumber/internal/domain/entity"
M internal/ui/deps.go +1 -1
@@ -11,7 +11,7 @@ import (
1111 "github.com/bnema/dumber/internal/infrastructure/config"
1212 "github.com/bnema/dumber/internal/ui/adapter"
1313 "github.com/bnema/dumber/internal/ui/theme"
14- "github.com/jwijenbergh/puregotk/v4/gtk"
14+ "github.com/bnema/puregotk/v4/gtk"
1515 )
1616
1717 // Dependencies holds all injected dependencies for the UI layer.
@@ -11,7 +11,7 @@ import (
11 "github.com/bnema/dumber/internal/infrastructure/config"11 "github.com/bnema/dumber/internal/infrastructure/config"
12 "github.com/bnema/dumber/internal/ui/adapter"12 "github.com/bnema/dumber/internal/ui/adapter"
13 "github.com/bnema/dumber/internal/ui/theme"13 "github.com/bnema/dumber/internal/ui/theme"
14- "github.com/jwijenbergh/puregotk/v4/gtk"14+ "github.com/bnema/puregotk/v4/gtk"
15 )15 )
16 16
17 // Dependencies holds all injected dependencies for the UI layer.17 // Dependencies holds all injected dependencies for the UI layer.
M internal/ui/dispatcher/keyboard.go +1 -1
@@ -11,7 +11,7 @@ import (
1111 "github.com/bnema/dumber/internal/ui/component"
1212 "github.com/bnema/dumber/internal/ui/coordinator"
1313 "github.com/bnema/dumber/internal/ui/input"
14- "github.com/jwijenbergh/puregotk/v4/glib"
14+ "github.com/bnema/puregotk/v4/glib"
1515 )
1616
1717 // KeyboardDispatcher routes keyboard actions to appropriate coordinators.
@@ -11,7 +11,7 @@ import (
11 "github.com/bnema/dumber/internal/ui/component"11 "github.com/bnema/dumber/internal/ui/component"
12 "github.com/bnema/dumber/internal/ui/coordinator"12 "github.com/bnema/dumber/internal/ui/coordinator"
13 "github.com/bnema/dumber/internal/ui/input"13 "github.com/bnema/dumber/internal/ui/input"
14- "github.com/jwijenbergh/puregotk/v4/glib"14+ "github.com/bnema/puregotk/v4/glib"
15 )15 )
16 16
17 // KeyboardDispatcher routes keyboard actions to appropriate coordinators.17 // KeyboardDispatcher routes keyboard actions to appropriate coordinators.
M internal/ui/input/floating_shortcuts_test.go +1 -1
@@ -5,7 +5,7 @@ import (
55 "testing"
66
77 "github.com/bnema/dumber/internal/domain/entity"
8- "github.com/jwijenbergh/puregotk/v4/gdk"
8+ "github.com/bnema/puregotk/v4/gdk"
99 "github.com/stretchr/testify/assert"
1010 "github.com/stretchr/testify/require"
1111 )
@@ -5,7 +5,7 @@ import (
5 "testing"5 "testing"
6 6
7 "github.com/bnema/dumber/internal/domain/entity"7 "github.com/bnema/dumber/internal/domain/entity"
8- "github.com/jwijenbergh/puregotk/v4/gdk"8+ "github.com/bnema/puregotk/v4/gdk"
9 "github.com/stretchr/testify/assert"9 "github.com/stretchr/testify/assert"
10 "github.com/stretchr/testify/require"10 "github.com/stretchr/testify/require"
11 )11 )
M internal/ui/input/gesture.go +1 -1
@@ -5,7 +5,7 @@ import (
55 "sync"
66
77 "github.com/bnema/dumber/internal/logging"
8- "github.com/jwijenbergh/puregotk/v4/gtk"
8+ "github.com/bnema/puregotk/v4/gtk"
99 )
1010
1111 // DirectNavigator allows direct back/forward navigation on a WebView.
@@ -5,7 +5,7 @@ import (
5 "sync"5 "sync"
6 6
7 "github.com/bnema/dumber/internal/logging"7 "github.com/bnema/dumber/internal/logging"
8- "github.com/jwijenbergh/puregotk/v4/gtk"8+ "github.com/bnema/puregotk/v4/gtk"
9 )9 )
10 10
11 // DirectNavigator allows direct back/forward navigation on a WebView.11 // DirectNavigator allows direct back/forward navigation on a WebView.
M internal/ui/input/global_shortcuts.go +3 -3
@@ -8,9 +8,9 @@ import (
88
99 "github.com/bnema/dumber/internal/domain/entity"
1010 "github.com/bnema/dumber/internal/logging"
11- "github.com/jwijenbergh/puregotk/v4/gdk"
12- "github.com/jwijenbergh/puregotk/v4/glib"
13- "github.com/jwijenbergh/puregotk/v4/gtk"
11+ "github.com/bnema/puregotk/v4/gdk"
12+ "github.com/bnema/puregotk/v4/glib"
13+ "github.com/bnema/puregotk/v4/gtk"
1414 )
1515
1616 // GlobalShortcutHandler manages keyboard shortcuts that must work globally,
@@ -8,9 +8,9 @@ import (
8 8
9 "github.com/bnema/dumber/internal/domain/entity"9 "github.com/bnema/dumber/internal/domain/entity"
10 "github.com/bnema/dumber/internal/logging"10 "github.com/bnema/dumber/internal/logging"
11- "github.com/jwijenbergh/puregotk/v4/gdk"11+ "github.com/bnema/puregotk/v4/gdk"
12- "github.com/jwijenbergh/puregotk/v4/glib"12+ "github.com/bnema/puregotk/v4/glib"
13- "github.com/jwijenbergh/puregotk/v4/gtk"13+ "github.com/bnema/puregotk/v4/gtk"
14 )14 )
15 15
16 // GlobalShortcutHandler manages keyboard shortcuts that must work globally,16 // GlobalShortcutHandler manages keyboard shortcuts that must work globally,
M internal/ui/input/hover.go +1 -1
@@ -7,7 +7,7 @@ import (
77
88 "github.com/bnema/dumber/internal/domain/entity"
99 "github.com/bnema/dumber/internal/logging"
10- "github.com/jwijenbergh/puregotk/v4/gtk"
10+ "github.com/bnema/puregotk/v4/gtk"
1111 )
1212
1313 const (
@@ -7,7 +7,7 @@ import (
7 7
8 "github.com/bnema/dumber/internal/domain/entity"8 "github.com/bnema/dumber/internal/domain/entity"
9 "github.com/bnema/dumber/internal/logging"9 "github.com/bnema/dumber/internal/logging"
10- "github.com/jwijenbergh/puregotk/v4/gtk"10+ "github.com/bnema/puregotk/v4/gtk"
11 )11 )
12 12
13 const (13 const (
M internal/ui/input/keyboard.go +3 -3
@@ -25,9 +25,9 @@ import (
2525
2626 "github.com/bnema/dumber/internal/domain/entity"
2727 "github.com/bnema/dumber/internal/logging"
28- "github.com/jwijenbergh/puregotk/v4/gdk"
29- "github.com/jwijenbergh/puregotk/v4/glib"
30- "github.com/jwijenbergh/puregotk/v4/gtk"
28+ "github.com/bnema/puregotk/v4/gdk"
29+ "github.com/bnema/puregotk/v4/glib"
30+ "github.com/bnema/puregotk/v4/gtk"
3131 "github.com/rs/zerolog"
3232 )
3333
@@ -25,9 +25,9 @@ import (
25 25
26 "github.com/bnema/dumber/internal/domain/entity"26 "github.com/bnema/dumber/internal/domain/entity"
27 "github.com/bnema/dumber/internal/logging"27 "github.com/bnema/dumber/internal/logging"
28- "github.com/jwijenbergh/puregotk/v4/gdk"28+ "github.com/bnema/puregotk/v4/gdk"
29- "github.com/jwijenbergh/puregotk/v4/glib"29+ "github.com/bnema/puregotk/v4/glib"
30- "github.com/jwijenbergh/puregotk/v4/gtk"30+ "github.com/bnema/puregotk/v4/gtk"
31 "github.com/rs/zerolog"31 "github.com/rs/zerolog"
32 )32 )
33 33
M internal/ui/input/keyboard_test.go +1 -1
@@ -5,7 +5,7 @@ import (
55 "testing"
66
77 "github.com/bnema/dumber/internal/domain/entity"
8- "github.com/jwijenbergh/puregotk/v4/gdk"
8+ "github.com/bnema/puregotk/v4/gdk"
99 "github.com/stretchr/testify/assert"
1010 )
1111
@@ -5,7 +5,7 @@ import (
5 "testing"5 "testing"
6 6
7 "github.com/bnema/dumber/internal/domain/entity"7 "github.com/bnema/dumber/internal/domain/entity"
8- "github.com/jwijenbergh/puregotk/v4/gdk"8+ "github.com/bnema/puregotk/v4/gdk"
9 "github.com/stretchr/testify/assert"9 "github.com/stretchr/testify/assert"
10 )10 )
11 11
M internal/ui/input/shortcuts.go +1 -1
@@ -8,7 +8,7 @@ import (
88
99 "github.com/bnema/dumber/internal/domain/entity"
1010 "github.com/bnema/dumber/internal/logging"
11- "github.com/jwijenbergh/puregotk/v4/gdk"
11+ "github.com/bnema/puregotk/v4/gdk"
1212 )
1313
1414 // Modifier represents keyboard modifier flags.
@@ -8,7 +8,7 @@ import (
8 8
9 "github.com/bnema/dumber/internal/domain/entity"9 "github.com/bnema/dumber/internal/domain/entity"
10 "github.com/bnema/dumber/internal/logging"10 "github.com/bnema/dumber/internal/logging"
11- "github.com/jwijenbergh/puregotk/v4/gdk"11+ "github.com/bnema/puregotk/v4/gdk"
12 )12 )
13 13
14 // Modifier represents keyboard modifier flags.14 // Modifier represents keyboard modifier flags.
M internal/ui/input/shortcuts_test.go +1 -1
@@ -3,7 +3,7 @@ package input
33 import (
44 "testing"
55
6- "github.com/jwijenbergh/puregotk/v4/gdk"
6+ "github.com/bnema/puregotk/v4/gdk"
77 )
88
99 func TestParseKeyString_SingleKeys(t *testing.T) {
@@ -3,7 +3,7 @@ package input
3 import (3 import (
4 "testing"4 "testing"
5 5
6- "github.com/jwijenbergh/puregotk/v4/gdk"6+ "github.com/bnema/puregotk/v4/gdk"
7 )7 )
8 8
9 func TestParseKeyString_SingleKeys(t *testing.T) {9 func TestParseKeyString_SingleKeys(t *testing.T) {
M internal/ui/layout/gtk_widgets.go +5 -5
@@ -1,11 +1,11 @@
11 package layout
22
33 import (
4- "github.com/jwijenbergh/puregotk/v4/gdk"
5- "github.com/jwijenbergh/puregotk/v4/gobject"
6- "github.com/jwijenbergh/puregotk/v4/graphene"
7- "github.com/jwijenbergh/puregotk/v4/gtk"
8- "github.com/jwijenbergh/puregotk/v4/pango"
4+ "github.com/bnema/puregotk/v4/gdk"
5+ "github.com/bnema/puregotk/v4/gobject"
6+ "github.com/bnema/puregotk/v4/graphene"
7+ "github.com/bnema/puregotk/v4/gtk"
8+ "github.com/bnema/puregotk/v4/pango"
99 )
1010
1111 // Ensure implementations satisfy interfaces at compile time.
@@ -1,11 +1,11 @@
1 package layout1 package layout
2 2
3 import (3 import (
4- "github.com/jwijenbergh/puregotk/v4/gdk"4+ "github.com/bnema/puregotk/v4/gdk"
5- "github.com/jwijenbergh/puregotk/v4/gobject"5+ "github.com/bnema/puregotk/v4/gobject"
6- "github.com/jwijenbergh/puregotk/v4/graphene"6+ "github.com/bnema/puregotk/v4/graphene"
7- "github.com/jwijenbergh/puregotk/v4/gtk"7+ "github.com/bnema/puregotk/v4/gtk"
8- "github.com/jwijenbergh/puregotk/v4/pango"8+ "github.com/bnema/puregotk/v4/pango"
9 )9 )
10 10
11 // Ensure implementations satisfy interfaces at compile time.11 // Ensure implementations satisfy interfaces at compile time.
M internal/ui/layout/mocks/mocks.go +1 -1
@@ -7,7 +7,7 @@ package mocks
77 import (
88 "github.com/bnema/dumber/internal/domain/entity"
99 "github.com/bnema/dumber/internal/ui/layout"
10- "github.com/jwijenbergh/puregotk/v4/gtk"
10+ "github.com/bnema/puregotk/v4/gtk"
1111 mock "github.com/stretchr/testify/mock"
1212 )
1313
@@ -7,7 +7,7 @@ package mocks
7 import (7 import (
8 "github.com/bnema/dumber/internal/domain/entity"8 "github.com/bnema/dumber/internal/domain/entity"
9 "github.com/bnema/dumber/internal/ui/layout"9 "github.com/bnema/dumber/internal/ui/layout"
10- "github.com/jwijenbergh/puregotk/v4/gtk"10+ "github.com/bnema/puregotk/v4/gtk"
11 mock "github.com/stretchr/testify/mock"11 mock "github.com/stretchr/testify/mock"
12 )12 )
13 13
M internal/ui/layout/split.go +1 -1
@@ -6,7 +6,7 @@ import (
66 "time"
77
88 "github.com/bnema/dumber/internal/logging"
9- "github.com/jwijenbergh/puregotk/v4/glib"
9+ "github.com/bnema/puregotk/v4/glib"
1010 "github.com/rs/zerolog"
1111 )
1212
@@ -6,7 +6,7 @@ import (
6 "time"6 "time"
7 7
8 "github.com/bnema/dumber/internal/logging"8 "github.com/bnema/dumber/internal/logging"
9- "github.com/jwijenbergh/puregotk/v4/glib"9+ "github.com/bnema/puregotk/v4/glib"
10 "github.com/rs/zerolog"10 "github.com/rs/zerolog"
11 )11 )
12 12
M internal/ui/layout/stacked.go +2 -2
@@ -6,8 +6,8 @@ import (
66 "sync"
77
88 "github.com/bnema/dumber/internal/logging"
9- "github.com/jwijenbergh/puregotk/v4/gobject"
10- "github.com/jwijenbergh/puregotk/v4/gtk"
9+ "github.com/bnema/puregotk/v4/gobject"
10+ "github.com/bnema/puregotk/v4/gtk"
1111 )
1212
1313 // ErrStackEmpty is returned when operating on an empty stack.
@@ -6,8 +6,8 @@ import (
6 "sync"6 "sync"
7 7
8 "github.com/bnema/dumber/internal/logging"8 "github.com/bnema/dumber/internal/logging"
9- "github.com/jwijenbergh/puregotk/v4/gobject"9+ "github.com/bnema/puregotk/v4/gobject"
10- "github.com/jwijenbergh/puregotk/v4/gtk"10+ "github.com/bnema/puregotk/v4/gtk"
11 )11 )
12 12
13 // ErrStackEmpty is returned when operating on an empty stack.13 // ErrStackEmpty is returned when operating on an empty stack.
M internal/ui/layout/widgets.go +1 -1
@@ -3,7 +3,7 @@
33 package layout
44
55 import (
6- "github.com/jwijenbergh/puregotk/v4/gtk"
6+ "github.com/bnema/puregotk/v4/gtk"
77 )
88
99 // Orientation represents the orientation for layout widgets.
@@ -3,7 +3,7 @@
3 package layout3 package layout
4 4
5 import (5 import (
6- "github.com/jwijenbergh/puregotk/v4/gtk"6+ "github.com/bnema/puregotk/v4/gtk"
7 )7 )
8 8
9 // Orientation represents the orientation for layout widgets.9 // Orientation represents the orientation for layout widgets.
M internal/ui/theme/manager.go +2 -2
@@ -7,8 +7,8 @@ import (
77 "github.com/bnema/dumber/internal/application/port"
88 "github.com/bnema/dumber/internal/domain/entity"
99 "github.com/bnema/dumber/internal/logging"
10- "github.com/jwijenbergh/puregotk/v4/gdk"
11- "github.com/jwijenbergh/puregotk/v4/gtk"
10+ "github.com/bnema/puregotk/v4/gdk"
11+ "github.com/bnema/puregotk/v4/gtk"
1212 )
1313
1414 // Manager handles theme state and CSS application.
@@ -7,8 +7,8 @@ import (
7 "github.com/bnema/dumber/internal/application/port"7 "github.com/bnema/dumber/internal/application/port"
8 "github.com/bnema/dumber/internal/domain/entity"8 "github.com/bnema/dumber/internal/domain/entity"
9 "github.com/bnema/dumber/internal/logging"9 "github.com/bnema/dumber/internal/logging"
10- "github.com/jwijenbergh/puregotk/v4/gdk"10+ "github.com/bnema/puregotk/v4/gdk"
11- "github.com/jwijenbergh/puregotk/v4/gtk"11+ "github.com/bnema/puregotk/v4/gtk"
12 )12 )
13 13
14 // Manager handles theme state and CSS application.14 // Manager handles theme state and CSS application.
M internal/ui/window/main_window.go +1 -1
@@ -6,7 +6,7 @@ import (
66
77 "github.com/bnema/dumber/internal/logging"
88 "github.com/bnema/dumber/internal/ui/component"
9- "github.com/jwijenbergh/puregotk/v4/gtk"
9+ "github.com/bnema/puregotk/v4/gtk"
1010 "github.com/rs/zerolog"
1111 )
1212
@@ -6,7 +6,7 @@ import (
6 6
7 "github.com/bnema/dumber/internal/logging"7 "github.com/bnema/dumber/internal/logging"
8 "github.com/bnema/dumber/internal/ui/component"8 "github.com/bnema/dumber/internal/ui/component"
9- "github.com/jwijenbergh/puregotk/v4/gtk"9+ "github.com/bnema/puregotk/v4/gtk"
10 "github.com/rs/zerolog"10 "github.com/rs/zerolog"
11 )11 )
12 12

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 8

Tags 42

↑↓ moveenter openesc close