history of internal/ui/input/keyboard.go at docs/readme-install-v0.33.0

2026-10-10

a94e48afeat(vim): add link hints, visual selection, and text-object yanks GPG Verifiedbrice

2026-10-07

d625c0cfeat(input): add tmux keymap preset with one-shot prefix (#464) GPG Unverifiedbnema

2026-08-28

a80868dfeat(vim): activate selected heading links GPG Verifiedbrice

2026-08-14

fc18cdefix(vim): cycle inputs and contain reverse focus GPG Verifiedbrice
8c7ae2bfix(vim): keep input activation and reverse focus GPG Verifiedbrice
04133a4fix(vim): pass tab focus keys to pages GPG Verifiedbrice
2bdff8afix(vim): format rebased native mode changes brice
7a23056fix(input): cancel vim sequence state on detach brice
eca30c1feat(page-mode): show pending vim sequences in mode toaster brice
adf5a45feat(input): dispatch page mode key sequences brice
23fc389feat(input): rename page mode to vim mode GPG Verifiedbrice

2026-07-29

3ad27cdfix(page-mode): harden scroll scheduling and repeat GPG Verifiedbrice

2026-07-28

5b1cfa8fix(page-mode): harden scrolling and editable focus GPG Verifiedbrice
0c4b1f1feat(page-mode): add keyboard page navigation GPG Verifiedbrice

2026-06-11

0337582fix(ui): avoid controller teardown during destroy GPG Verifiedbrice

2026-06-09

14af573refactor(input): reduce callback pressure for windows GPG Verifiedbrice

2026-05-24

bd18fcbfix(input): release gesture callbacks GPG Verifiedbrice
c48b63ffix(input): suppress ghost shortcut repeats GPG Verifiedbrice

2026-03-25

2aad925refactor: migrate from jwijenbergh to bnema/puregotk + ebitengine/purego GPG Verifiedbrice

2026-03-17

3489869refactor(M7): decouple coordinators and UI subsystems from infrastructure GPG Verifiedbrice

2026-03-13

ff5eb4ffix: make setControllerPhase synchronous, dispatch modal timeouts via GTK main thread GPG Verifiedbrice
9c71032fix: address thread-safety and nil-guard issues in keyboard routing GPG Verifiedbrice
7dee585fix: restore app shortcuts when WebView has focus GPG Verifiedbrice

2026-03-11

b574babfix(app): restore green gates and harden accent input GPG Verifiedbrice
0523844fix(input): prevent double accent detection and restrict JS events to editable targets GPG Verifiedbrice
b05099cfix(input): use bubble phase + IM fallback for dead keys, move accent detection to widget level GPG Verifiedbrice
476d2f2fix(input): keep accent picker universal for accessibility GPG Verifiedbnema
51b8f8afix(input): fix off-by-one in dead key range, extract test config helper GPG Verifiedbnema
d91ea3edocs(input): add manual testing checklist for dead key / compose support GPG Verifiedbnema
0185904refactor(input): rewrite handleKeyPress with unified key routing GPG Verifiedbnema
801a8a3refactor(input): add KeyRoute enum and replace shouldBypass with routeKey GPG Verifiedbnema

2026-02-17

9244af4fix: hide visible floating pane on Escape GPG Verifiedbrice

2026-01-29

8c8c066feat: allow Alt+hjkl pane navigation while omnibox is open GPG Verifiedbrice

2026-01-24

e6c3832feat(input): add hot reload for keyboard shortcuts GPG Verifiedbnema

2025-12-30

b3920c5feat(ui): integrate accent picker into keyboard handler and app brice

2025-12-27

53b38cfchore(lint): satisfy gocritic assignOp brice
f2001c9fix(input): normalize shifted letter keyvals brice

2025-12-26

b7c5bfffix(panes): stabilize consume/expel cycling semantics brice
a9a926cfeat(ui): implement niri-like consume and expel pane operations brice
c9cbc6efeat(ui): implement modal resize mode and shortcuts brice

2025-12-25

6050ce9fix(input): support Alt/Ctrl+number shortcuts on non-QWERTY keyboards brice
76add37feat(ui): add session manager modal and state change tracking bnema

2025-12-22

d0dbbe7fix(ui): fix omnibox pane switching, Ctrl+L handling, and overlay dimensions bnema

2025-12-21

0bdd398chore(lint): address linting warnings bnema

2025-12-16

5740371refactor(context): pass context as first parameter to webkit and ui methods brice

2025-12-17

39222bfrefactor(input): pass context as first parameter in keyboard and modal handlers brice

2025-12-14

f3b20f3refactor(ui): complete SQLite wiring, JS handler deprecation, and GTK theme system brice

2025-12-11

73b7a8dfeat(theme): add GTK CSS styling for tab bar and modal keyboard shortcuts brice
e1760bfrefactor(input): use context-based logging pattern and reduce debug verbosity brice

2025-12-09

faafca5feat(ui): add keyboard input handling with modal modes brice

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