v0.20.1 d9a391f

history of internal/ui/app.go at v0.20.1

2025-12-24

e736791fix: eliminate white flash and improve dark mode detection (fixes #14, #15) brice
1628a6bfix: add idle inhibition for fullscreen video playback (fixes #18) brice
5dc745afix: use GtkShortcutController for Alt+number tab switching (fixes #16) brice

2025-12-22

04b95bcrefactor(ui): split app activation into helpers brice
0f157defix(ui): propagate color scheme to GTK for WebKit dark mode detection brice

2025-12-21

cd2db31fix(ui): use theme semantic colors for toasts and filter status message bnema
0bdd398chore(lint): address linting warnings bnema
225e37efeat(find): add find-in-page functionality with keyboard shortcut bnema

2025-12-20

ee9c157fix(webui-theme): refresh injected scripts after appearance save brice

2025-12-18

2708968feat(ui): apply filters to existing webviews and show filter status brice
3011e5drefactor(favicon): move favicon handling to clean architecture bnema

2025-12-17

717efa6refactor(deps): integrate CopyURLUseCase into dependency injection brice
83a6fc8feat(ui): add toast notification system for user feedback brice
786d68afix(id-gen): use monotonic counter to prevent pane ID collisions brice
5740d12feat(app): integrate popup and middle-click handling into application coordinators brice

2025-12-18

d6476fbfeat(ui): implement tab workspace switching with coordinator callbacks brice

2025-12-17

a531dc8feat(app): add InitialURL support and normalize URLs with shared utility bnema

2025-12-16

e30e9edfix(history): record full URL instead of domain on navigation brice
1fe5ab8feat(coordinator): wire gesture handler to webviews and keyboard dispatcher brice
5af29c5fix(zoom): prevent zoom shift during navigation via LoadCommitted event brice
fa675efrefactor(wiring): wire message handlers into UI layer and update frontend messaging brice
bf08946fix(scheme-handler): serve embedded webui assets with CORS support brice

2025-12-17

5a4101arefactor(callers): update calls to pass context to refactored components brice

2025-12-16

b106e60feat(omnibox): move overlay from window to active pane bnema
2067abefeat(favicon): add disk cache persistence for DuckDuckGo favicons bnema
b9f594cfeat(app): integrate omnibox with main window overlay bnema
751112cfeat(history): persist page titles via ContentCoordinator callback brice

2025-12-15

4622b8cfeat(keyboard): implement zoom actions (in/out/reset) with omnibox integration brice
f9e2d43feat(app): wire favicon support through coordinators and omnibox brice
33d4791refactor(app): migrate to coordinator-based architecture brice
03c91d2feat(ui): implement incremental stack split with visible pane navigation brice
05af959fix(focus): sync StackedView visibility on stack navigation brice

2025-12-16

8cb6471feat(focus): add geometric navigation and mode border overlays brice
739acbafeat(ui): implement incremental stacked pane operations with title tracking brice
385e5a2feat(pane): add stack-pane shortcut binding (s key), stub handler until incremental ops implemented brice

2025-12-14

f3b20f3refactor(ui): complete SQLite wiring, JS handler deprecation, and GTK theme system brice
e4c93f7feat(app): integrate native omnibox with navigation and history recording brice

2025-12-11

3385450fix(config): register HideTabBarWhenSingleTab default in viper loader brice
0f0e7d6feat(ui): implement auto-hide tab bar when single tab exists brice
a970f83refactor(ui): integrate webkit pool, injector, router into app lifecycle brice

2025-12-09

137ce9cfeat(ui): integrate pane management and keyboard handling into app brice
13b335cfeat(ui): implement GTK application core with dependency injection and tab bar component bnema

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