detached a49291f

feat: replace ncruces/go-sqlite3 with purego-sqlite and switch to bnema/puregotk

Replace the WASM-based ncruces/go-sqlite3 driver with bnema/purego-sqlite,
which calls libsqlite3 natively via purego FFI — no WASM runtime, no CGO.
This removes the sqlite3.Initialize() WASM precompile step and the embed import.

Also migrate puregotk imports from jwijenbergh's fork to bnema/puregotk and
update ebitengine/purego to v0.10.0 via bnema/purego fork.
commit
a49291f9f2142c6fff7724667fcd2ea539fa91ed
author
brice · · 2026-03-27 05:39 UTC
parent
2f35bdf
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
60 files · +112 -130
M cmd/dumber/main.go +1 -4
@@ -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
@@ -342,9 +342,6 @@ func handleParallelInitError(ctx context.Context, err error) {
342342
343343 func logDeferredInitResults(ctx context.Context, result bootstrap.DeferredInitResult) {
344344 log := logging.FromContext(ctx)
345- if result.SQLiteErr != nil {
346- log.Warn().Err(result.SQLiteErr).Msg("deferred sqlite wasm init failed")
347- }
348345 if result.RuntimeErr != nil {
349346 if runtimeErr, ok := result.RuntimeErr.(*bootstrap.RuntimeRequirementsError); ok {
350347 runtimeErr.LogDetails(ctx)
@@ -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
@@ -342,9 +342,6 @@ func handleParallelInitError(ctx context.Context, err error) {
342 342
343 func logDeferredInitResults(ctx context.Context, result bootstrap.DeferredInitResult) {343 func logDeferredInitResults(ctx context.Context, result bootstrap.DeferredInitResult) {
344 log := logging.FromContext(ctx)344 log := logging.FromContext(ctx)
345- if result.SQLiteErr != nil {
346- log.Warn().Err(result.SQLiteErr).Msg("deferred sqlite wasm init failed")
347- }
348 if result.RuntimeErr != nil {345 if result.RuntimeErr != nil {
349 if runtimeErr, ok := result.RuntimeErr.(*bootstrap.RuntimeRequirementsError); ok {346 if runtimeErr, ok := result.RuntimeErr.(*bootstrap.RuntimeRequirementsError); ok {
350 runtimeErr.LogDetails(ctx)347 runtimeErr.LogDetails(ctx)
M go.mod +9 -8
@@ -1,17 +1,17 @@
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/purego-sqlite v0.1.0
7+ github.com/bnema/puregotk v0.2.0
8+ github.com/bnema/puregotk-webkit v0.0.15
79 github.com/charmbracelet/bubbles v1.0.0
810 github.com/charmbracelet/bubbletea v1.3.10
911 github.com/charmbracelet/lipgloss v1.1.0
12+ github.com/ebitengine/purego v0.10.0
1013 github.com/fsnotify/fsnotify v1.9.0
1114 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.0
1515 github.com/pelletier/go-toml/v2 v2.2.4
1616 github.com/pressly/goose/v3 v3.27.0
1717 github.com/rs/zerolog v1.34.0
@@ -23,7 +23,10 @@ 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 (
27+ github.com/bnema/purego-sqlite => ../purego-sqlite
28+ github.com/ebitengine/purego => github.com/bnema/purego v0.0.0-20260323095903-91aa177a2704
29+)
2730
2831 require (
2932 github.com/atotto/clipboard v0.1.4 // indirect
@@ -49,7 +52,6 @@ require (
4952 github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
5053 github.com/muesli/cancelreader v0.2.2 // indirect
5154 github.com/muesli/termenv v0.16.0 // indirect
52- github.com/ncruces/julianday v1.0.0 // indirect
5355 github.com/pmezard/go-difflib v1.0.0 // indirect
5456 github.com/rivo/uniseg v0.4.7 // indirect
5557 github.com/russross/blackfriday/v2 v2.1.0 // indirect
@@ -61,7 +63,6 @@ require (
6163 github.com/spf13/pflag v1.0.10 // indirect
6264 github.com/stretchr/objx v0.5.3 // indirect
6365 github.com/subosito/gotenv v1.6.0 // indirect
64- github.com/tetratelabs/wazero v1.11.0 // indirect
6566 github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
6667 go.uber.org/multierr v1.11.0 // indirect
6768 go.yaml.in/yaml/v3 v3.0.4 // indirect
@@ -1,17 +1,17 @@
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/purego-sqlite v0.1.0
7+ github.com/bnema/puregotk v0.2.0
8+ github.com/bnema/puregotk-webkit v0.0.15
7 github.com/charmbracelet/bubbles v1.0.09 github.com/charmbracelet/bubbles v1.0.0
8 github.com/charmbracelet/bubbletea v1.3.1010 github.com/charmbracelet/bubbletea v1.3.10
9 github.com/charmbracelet/lipgloss v1.1.011 github.com/charmbracelet/lipgloss v1.1.0
12+ github.com/ebitengine/purego v0.10.0
10 github.com/fsnotify/fsnotify v1.9.013 github.com/fsnotify/fsnotify v1.9.0
11 github.com/godbus/dbus/v5 v5.2.214 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.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
17 github.com/rs/zerolog v1.34.017 github.com/rs/zerolog v1.34.0
@@ -23,7 +23,10 @@ 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 (
27+ github.com/bnema/purego-sqlite => ../purego-sqlite
28+ github.com/ebitengine/purego => github.com/bnema/purego v0.0.0-20260323095903-91aa177a2704
29+)
27 30
28 require (31 require (
29 github.com/atotto/clipboard v0.1.4 // indirect32 github.com/atotto/clipboard v0.1.4 // indirect
@@ -49,7 +52,6 @@ require (
49 github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect52 github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
50 github.com/muesli/cancelreader v0.2.2 // indirect53 github.com/muesli/cancelreader v0.2.2 // indirect
51 github.com/muesli/termenv v0.16.0 // indirect54 github.com/muesli/termenv v0.16.0 // indirect
52- github.com/ncruces/julianday v1.0.0 // indirect
53 github.com/pmezard/go-difflib v1.0.0 // indirect55 github.com/pmezard/go-difflib v1.0.0 // indirect
54 github.com/rivo/uniseg v0.4.7 // indirect56 github.com/rivo/uniseg v0.4.7 // indirect
55 github.com/russross/blackfriday/v2 v2.1.0 // indirect57 github.com/russross/blackfriday/v2 v2.1.0 // indirect
@@ -61,7 +63,6 @@ require (
61 github.com/spf13/pflag v1.0.10 // indirect63 github.com/spf13/pflag v1.0.10 // indirect
62 github.com/stretchr/objx v0.5.3 // indirect64 github.com/stretchr/objx v0.5.3 // indirect
63 github.com/subosito/gotenv v1.6.0 // indirect65 github.com/subosito/gotenv v1.6.0 // indirect
64- github.com/tetratelabs/wazero v1.11.0 // indirect
65 github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect66 github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
66 go.uber.org/multierr v1.11.0 // indirect67 go.uber.org/multierr v1.11.0 // indirect
67 go.yaml.in/yaml/v3 v3.0.4 // indirect68 go.yaml.in/yaml/v3 v3.0.4 // indirect
M go.sum +6 -12
@@ -4,10 +4,12 @@ github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiE
44 github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
55 github.com/aymanbagabas/go-udiff v0.3.1 h1:LV+qyBQ2pqe0u42ZsUEtPiCaUoqgA9gYRDs3vj1nolY=
66 github.com/aymanbagabas/go-udiff v0.3.1/go.mod h1:G0fsKmG+P6ylD0r6N/KgQD/nWzgfnl8ZBcNLgcbrw8E=
7-github.com/bnema/puregotk v0.1.0 h1:fNdoWi0wAEk5/rfwtpSeQuuB4AgAxkpiPPlivXXQk3I=
8-github.com/bnema/puregotk v0.1.0/go.mod h1:mZu8qSvCSqtVL+xoiebZuicnJijwrLfGRs6/eTVgFlc=
9-github.com/bnema/puregotk-webkit v0.0.14 h1:fwJ9fE3UKWQ8+VWFueddtfLMvcmO3EvfieIX/AYgHhY=
10-github.com/bnema/puregotk-webkit v0.0.14/go.mod h1:wc+zzGdAy51YgyG1N3iwkQIusgCY4lFHGJUQgi4svJ0=
7+github.com/bnema/purego v0.0.0-20260323095903-91aa177a2704 h1:0GaiO4102gOdp0es0MO2d0bRSvyeMw5A2D4F4WdIw0k=
8+github.com/bnema/purego v0.0.0-20260323095903-91aa177a2704/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
9+github.com/bnema/puregotk v0.2.0 h1:lQ3zKbSRbAej/OWRlknrVTRxSzjxynamULjutV83bWM=
10+github.com/bnema/puregotk v0.2.0/go.mod h1:Sl24sbCl02M/HLCNUgaYVCckkYcGOi8yxMuGuQVWsL8=
11+github.com/bnema/puregotk-webkit v0.0.15 h1:CUcuoHfx+7AO1Diig7+NrEb7i5m/+MKTiQFUMH3j72k=
12+github.com/bnema/puregotk-webkit v0.0.15/go.mod h1:jbMK8QD+J34OE24HUc19v7FUcbSYvsTd7Cs8x1Ab/14=
1113 github.com/charmbracelet/bubbles v1.0.0 h1:12J8/ak/uCZEMQ6KU7pcfwceyjLlWsDLAxB5fXonfvc=
1214 github.com/charmbracelet/bubbles v1.0.0/go.mod h1:9d/Zd5GdnauMI5ivUIVisuEm3ave1XwXtD1ckyV6r3E=
1315 github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw=
@@ -55,8 +57,6 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
5557 github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
5658 github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
5759 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
58-github.com/jwijenbergh/purego v0.0.0-20251017112123-b71757b9ba42 h1:kQ0LX4ffJvtONhymro3HzrB8XUa6dIGgrbnkl38Rgl0=
59-github.com/jwijenbergh/purego v0.0.0-20251017112123-b71757b9ba42/go.mod h1:amE5lVGstyh2GTEIHFEbgJHmoMD0llIuapnzIlZx7Fc=
6060 github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
6161 github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
6262 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
@@ -84,12 +84,8 @@ github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELU
8484 github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo=
8585 github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc=
8686 github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk=
87-github.com/ncruces/go-sqlite3 v0.32.0 h1:hNBUXp88LrfQCsuyXLqWTbTUG35sUuktDsqhhgHvU20=
88-github.com/ncruces/go-sqlite3 v0.32.0/go.mod h1:MIWTK60ONDl0oVY073zYvJP21C3Dly6P9bxVpgkLwdQ=
8987 github.com/ncruces/go-strftime v1.0.0 h1:HMFp8mLCTPp341M/ZnA4qaf7ZlsbTc+miZjCLOFAw7w=
9088 github.com/ncruces/go-strftime v1.0.0/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
91-github.com/ncruces/julianday v1.0.0 h1:fH0OKwa7NWvniGQtxdJRxAgkBMolni2BjDHaWTxqt7M=
92-github.com/ncruces/julianday v1.0.0/go.mod h1:Dusn2KvZrrovOMJuOt0TNXL6tB7U2E8kvza5fFc9G7g=
9389 github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
9490 github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
9591 github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -131,8 +127,6 @@ github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu
131127 github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
132128 github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
133129 github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
134-github.com/tetratelabs/wazero v1.11.0 h1:+gKemEuKCTevU4d7ZTzlsvgd1uaToIDtlQlmNbwqYhA=
135-github.com/tetratelabs/wazero v1.11.0/go.mod h1:eV28rsN8Q+xwjogd7f4/Pp4xFxO7uOGbLcD/LzB1wiU=
136130 github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=
137131 github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
138132 go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
@@ -4,10 +4,12 @@ github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiE
4 github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=4 github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
5 github.com/aymanbagabas/go-udiff v0.3.1 h1:LV+qyBQ2pqe0u42ZsUEtPiCaUoqgA9gYRDs3vj1nolY=5 github.com/aymanbagabas/go-udiff v0.3.1 h1:LV+qyBQ2pqe0u42ZsUEtPiCaUoqgA9gYRDs3vj1nolY=
6 github.com/aymanbagabas/go-udiff v0.3.1/go.mod h1:G0fsKmG+P6ylD0r6N/KgQD/nWzgfnl8ZBcNLgcbrw8E=6 github.com/aymanbagabas/go-udiff v0.3.1/go.mod h1:G0fsKmG+P6ylD0r6N/KgQD/nWzgfnl8ZBcNLgcbrw8E=
7-github.com/bnema/puregotk v0.1.0 h1:fNdoWi0wAEk5/rfwtpSeQuuB4AgAxkpiPPlivXXQk3I=7+github.com/bnema/purego v0.0.0-20260323095903-91aa177a2704 h1:0GaiO4102gOdp0es0MO2d0bRSvyeMw5A2D4F4WdIw0k=
8-github.com/bnema/puregotk v0.1.0/go.mod h1:mZu8qSvCSqtVL+xoiebZuicnJijwrLfGRs6/eTVgFlc=8+github.com/bnema/purego v0.0.0-20260323095903-91aa177a2704/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
9-github.com/bnema/puregotk-webkit v0.0.14 h1:fwJ9fE3UKWQ8+VWFueddtfLMvcmO3EvfieIX/AYgHhY=9+github.com/bnema/puregotk v0.2.0 h1:lQ3zKbSRbAej/OWRlknrVTRxSzjxynamULjutV83bWM=
10-github.com/bnema/puregotk-webkit v0.0.14/go.mod h1:wc+zzGdAy51YgyG1N3iwkQIusgCY4lFHGJUQgi4svJ0=10+github.com/bnema/puregotk v0.2.0/go.mod h1:Sl24sbCl02M/HLCNUgaYVCckkYcGOi8yxMuGuQVWsL8=
11+github.com/bnema/puregotk-webkit v0.0.15 h1:CUcuoHfx+7AO1Diig7+NrEb7i5m/+MKTiQFUMH3j72k=
12+github.com/bnema/puregotk-webkit v0.0.15/go.mod h1:jbMK8QD+J34OE24HUc19v7FUcbSYvsTd7Cs8x1Ab/14=
11 github.com/charmbracelet/bubbles v1.0.0 h1:12J8/ak/uCZEMQ6KU7pcfwceyjLlWsDLAxB5fXonfvc=13 github.com/charmbracelet/bubbles v1.0.0 h1:12J8/ak/uCZEMQ6KU7pcfwceyjLlWsDLAxB5fXonfvc=
12 github.com/charmbracelet/bubbles v1.0.0/go.mod h1:9d/Zd5GdnauMI5ivUIVisuEm3ave1XwXtD1ckyV6r3E=14 github.com/charmbracelet/bubbles v1.0.0/go.mod h1:9d/Zd5GdnauMI5ivUIVisuEm3ave1XwXtD1ckyV6r3E=
13 github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw=15 github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw=
@@ -55,8 +57,6 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
55 github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=57 github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
56 github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=58 github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
57 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=59 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
58-github.com/jwijenbergh/purego v0.0.0-20251017112123-b71757b9ba42 h1:kQ0LX4ffJvtONhymro3HzrB8XUa6dIGgrbnkl38Rgl0=
59-github.com/jwijenbergh/purego v0.0.0-20251017112123-b71757b9ba42/go.mod h1:amE5lVGstyh2GTEIHFEbgJHmoMD0llIuapnzIlZx7Fc=
60 github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=60 github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
61 github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=61 github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
62 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=62 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
@@ -84,12 +84,8 @@ github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELU
84 github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo=84 github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo=
85 github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc=85 github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc=
86 github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk=86 github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk=
87-github.com/ncruces/go-sqlite3 v0.32.0 h1:hNBUXp88LrfQCsuyXLqWTbTUG35sUuktDsqhhgHvU20=
88-github.com/ncruces/go-sqlite3 v0.32.0/go.mod h1:MIWTK60ONDl0oVY073zYvJP21C3Dly6P9bxVpgkLwdQ=
89 github.com/ncruces/go-strftime v1.0.0 h1:HMFp8mLCTPp341M/ZnA4qaf7ZlsbTc+miZjCLOFAw7w=87 github.com/ncruces/go-strftime v1.0.0 h1:HMFp8mLCTPp341M/ZnA4qaf7ZlsbTc+miZjCLOFAw7w=
90 github.com/ncruces/go-strftime v1.0.0/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=88 github.com/ncruces/go-strftime v1.0.0/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
91-github.com/ncruces/julianday v1.0.0 h1:fH0OKwa7NWvniGQtxdJRxAgkBMolni2BjDHaWTxqt7M=
92-github.com/ncruces/julianday v1.0.0/go.mod h1:Dusn2KvZrrovOMJuOt0TNXL6tB7U2E8kvza5fFc9G7g=
93 github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=89 github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
94 github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=90 github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
95 github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=91 github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -131,8 +127,6 @@ github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu
131 github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=127 github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
132 github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=128 github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
133 github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=129 github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
134-github.com/tetratelabs/wazero v1.11.0 h1:+gKemEuKCTevU4d7ZTzlsvgd1uaToIDtlQlmNbwqYhA=
135-github.com/tetratelabs/wazero v1.11.0/go.mod h1:eV28rsN8Q+xwjogd7f4/Pp4xFxO7uOGbLcD/LzB1wiU=
136 github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=130 github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=
137 github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=131 github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
138 go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=132 go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
M internal/bootstrap/gui.go +1 -10
@@ -20,7 +20,6 @@ import (
2020 "github.com/bnema/dumber/internal/infrastructure/persistence/sqlite"
2121 "github.com/bnema/dumber/internal/logging"
2222 "github.com/bnema/dumber/internal/ui/theme"
23- sqlite3 "github.com/ncruces/go-sqlite3"
2423 )
2524
2625 // DatabaseResult holds database connection and cleanup function.
@@ -43,7 +42,6 @@ type ParallelInitResult struct {
4342 type DeferredInitResult struct {
4443 RuntimeErr error
4544 MediaErr error
46- SQLiteErr error
4745 Duration time.Duration
4846 }
4947
@@ -155,17 +153,11 @@ func RunDeferredInit(input DeferredInitInput) DeferredInitResult {
155153 var (
156154 runtimeErr error
157155 mediaErr error
158- sqliteErr error
159156 wg sync.WaitGroup
160157 )
161158
162159 start := time.Now()
163- wg.Add(3)
164-
165- go func() {
166- defer wg.Done()
167- sqliteErr = sqlite3.Initialize()
168- }()
160+ wg.Add(2)
169161
170162 go func() {
171163 defer wg.Done()
@@ -182,7 +174,6 @@ func RunDeferredInit(input DeferredInitInput) DeferredInitResult {
182174 return DeferredInitResult{
183175 RuntimeErr: runtimeErr,
184176 MediaErr: mediaErr,
185- SQLiteErr: sqliteErr,
186177 Duration: time.Since(start),
187178 }
188179 }
@@ -20,7 +20,6 @@ import (
20 "github.com/bnema/dumber/internal/infrastructure/persistence/sqlite"20 "github.com/bnema/dumber/internal/infrastructure/persistence/sqlite"
21 "github.com/bnema/dumber/internal/logging"21 "github.com/bnema/dumber/internal/logging"
22 "github.com/bnema/dumber/internal/ui/theme"22 "github.com/bnema/dumber/internal/ui/theme"
23- sqlite3 "github.com/ncruces/go-sqlite3"
24 )23 )
25 24
26 // DatabaseResult holds database connection and cleanup function.25 // DatabaseResult holds database connection and cleanup function.
@@ -43,7 +42,6 @@ type ParallelInitResult struct {
43 type DeferredInitResult struct {42 type DeferredInitResult struct {
44 RuntimeErr error43 RuntimeErr error
45 MediaErr error44 MediaErr error
46- SQLiteErr error
47 Duration time.Duration45 Duration time.Duration
48 }46 }
49 47
@@ -155,17 +153,11 @@ func RunDeferredInit(input DeferredInitInput) DeferredInitResult {
155 var (153 var (
156 runtimeErr error154 runtimeErr error
157 mediaErr error155 mediaErr error
158- sqliteErr error
159 wg sync.WaitGroup156 wg sync.WaitGroup
160 )157 )
161 158
162 start := time.Now()159 start := time.Now()
163- wg.Add(3)160+ wg.Add(2)
164-
165- go func() {
166- defer wg.Done()
167- sqliteErr = sqlite3.Initialize()
168- }()
169 161
170 go func() {162 go func() {
171 defer wg.Done()163 defer wg.Done()
@@ -182,7 +174,6 @@ func RunDeferredInit(input DeferredInitInput) DeferredInitResult {
182 return DeferredInitResult{174 return DeferredInitResult{
183 RuntimeErr: runtimeErr,175 RuntimeErr: runtimeErr,
184 MediaErr: mediaErr,176 MediaErr: mediaErr,
185- SQLiteErr: sqliteErr,
186 Duration: time.Since(start),177 Duration: time.Since(start),
187 }178 }
188 }179 }
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/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/persistence/sqlite/connection.go +1 -2
@@ -8,8 +8,7 @@ import (
88 "path/filepath"
99
1010 "github.com/bnema/dumber/internal/logging"
11- _ "github.com/ncruces/go-sqlite3/driver" // SQLite driver (pure Go)
12- _ "github.com/ncruces/go-sqlite3/embed" // Embed SQLite WASM binary
11+ _ "github.com/bnema/purego-sqlite/driver" // SQLite driver (purego, no WASM/CGo)
1312 )
1413
1514 // NewConnection creates a new SQLite database connection with optimized settings.
@@ -8,8 +8,7 @@ import (
8 "path/filepath"8 "path/filepath"
9 9
10 "github.com/bnema/dumber/internal/logging"10 "github.com/bnema/dumber/internal/logging"
11- _ "github.com/ncruces/go-sqlite3/driver" // SQLite driver (pure Go)11+ _ "github.com/bnema/purego-sqlite/driver" // SQLite driver (purego, no WASM/CGo)
12- _ "github.com/ncruces/go-sqlite3/embed" // Embed SQLite WASM binary
13 )12 )
14 13
15 // NewConnection creates a new SQLite database connection with optimized settings.14 // NewConnection creates a new SQLite database connection with optimized settings.
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