v0.31.0 bf0756b

getting-started.md RawHistoryFolder

Getting Started

Launch the Browser

dumber browse

Or use the desktop entry after running dumber setup.

Basic Navigation

Dumber uses modal keybindings inspired by Zellij:

Mode Activation Purpose
Pane Mode Ctrl+P Split, close, focus panes
Tab Mode Ctrl+T Create, close, switch tabs
Vim Mode Ctrl+Y Scroll, navigate headings, and focus page inputs with Vim-style commands; arrow keys stay native and page focus stays inside the page while other app shortcuts wait until exit
Resize Mode Ctrl+N Resize pane splits
Session Mode Ctrl+O Session management

Press Escape or Enter to exit any mode. Vim Mode stays local to the active pane and automatically leaves the mode when focus moves into the omnibox, find bar, overlays, or a page editable.

Pane Mode Quick Reference

  1. Press Ctrl+P to enter pane mode
  2. Use arrow keys or hjkl to split in that direction
  3. Shift+arrows to focus adjacent panes
  4. X to close current pane

Vim Mode Quick Reference

  1. Press Ctrl+Y to enter Vim Mode
  2. Use h, j, k, l to scroll left, down, up, or right
  3. Use Shift+J / Shift+K for faster vertical jumps
  4. Arrow keys continue to use the browser engine's native page navigation while Vim Mode is active
  5. Use gi to cycle through visible page inputs; use ]] and [[ to move through headings
  6. Tab and Shift+Tab traverse focusable page controls while a page input is focused
  7. Other app-level shortcuts stay suspended until you leave Vim Mode
  8. Press Escape or Enter to leave the mode
  9. Ctrl+Y can activate Vim Mode even when a page input or editor is already focused

Engine behavior: CEF and WebKit execute Vim Mode scroll steps with the shared BuildPageScrollByJS resolver (viewport-center start, nested-scroller handoff, document fallback). The application repeater owns held-key cadence; each engine runs one immediate step per tick. Cross-origin frames are best-effort. CEF may use native precision-wheel input only before the browser frame is ready.

Omnibox

Press Ctrl+L to open the omnibox for:

  • URL navigation
  • Search (uses default search engine)
  • Bang shortcuts (!g query for Google, !gh query for GitHub)

Floating Pane

  • Press Alt+F to toggle the floating pane.
  • Press Ctrl+W to close the active pane; if the floating pane is active, this fully releases it so the next open starts fresh.
  • Some Alt+<key> bindings can conflict with browser-engine shortcuts or desktop-level handlers.

See Floating Pane for profile shortcuts and configuration.

Configuration

Edit ~/.config/dumber/config.toml or use:

dumber config open

See Configuration for all options.

Launcher Integration

Use with rofi or fuzzel:

dumber dmenu | rofi -dmenu -show-icons | dumber dmenu --select

Website Permissions

Dumber includes a built-in permissions system for camera, microphone, and screen sharing:

  • Custom dialog - Clean permission prompts replace native GTK dialogs
  • Persistent choices - "Always Allow" and "Always Deny" are saved per-origin
  • Privacy-focused - All permissions stored locally
  • Camera & Microphone - Fully working on Wayland/PipeWire

⚠️ WebKit fallback note: Screen sharing does not currently work on Wayland with WebKitGTK 6.0. This is a known WebKitGTK limitation and does not describe the default CEF backend.

When a website requests camera or microphone access, you'll see a permission dialog with options to allow once, always allow, deny, or always deny.

See Website Permissions for details.

Crash Reporting

If Dumber exits unexpectedly, crash reports are automatically generated:

# List all crash reports
dumber crashes

# View the latest crash report
dumber crashes show latest

# Generate GitHub issue payload
dumber crashes issue latest

See Session Exit Classification for troubleshooting.

Next Steps

source
1# Getting Started
2
3## Launch the Browser
4
5```bash
6dumber browse
7```
8
9Or use the desktop entry after running `dumber setup`.
10
11## Basic Navigation
12
13Dumber uses modal keybindings inspired by Zellij:
14
15| Mode | Activation | Purpose |
16|------|------------|---------|
17| Pane Mode | `Ctrl+P` | Split, close, focus panes |
18| Tab Mode | `Ctrl+T` | Create, close, switch tabs |
19| Vim Mode | `Ctrl+Y` | Scroll, navigate headings, and focus page inputs with Vim-style commands; arrow keys stay native and page focus stays inside the page while other app shortcuts wait until exit |
20| Resize Mode | `Ctrl+N` | Resize pane splits |
21| Session Mode | `Ctrl+O` | Session management |
22
23Press `Escape` or `Enter` to exit any mode.
24Vim Mode stays local to the active pane and automatically leaves the mode when focus moves into the omnibox, find bar, overlays, or a page editable.
25
26## Pane Mode Quick Reference
27
281. Press `Ctrl+P` to enter pane mode
292. Use arrow keys or `hjkl` to split in that direction
303. `Shift+arrows` to focus adjacent panes
314. `X` to close current pane
32
33## Vim Mode Quick Reference
34
351. Press `Ctrl+Y` to enter Vim Mode
362. Use `h`, `j`, `k`, `l` to scroll left, down, up, or right
373. Use `Shift+J` / `Shift+K` for faster vertical jumps
384. Arrow keys continue to use the browser engine's native page navigation while Vim Mode is active
395. Use `gi` to cycle through visible page inputs; use `]]` and `[[` to move through headings
406. `Tab` and `Shift+Tab` traverse focusable page controls while a page input is focused
417. Other app-level shortcuts stay suspended until you leave Vim Mode
428. Press `Escape` or `Enter` to leave the mode
439. `Ctrl+Y` can activate Vim Mode even when a page input or editor is already focused
44
45> **Engine behavior**: CEF and WebKit execute Vim Mode scroll steps with the
46> shared `BuildPageScrollByJS` resolver (viewport-center start, nested-scroller
47> handoff, document fallback). The application repeater owns held-key cadence;
48> each engine runs one immediate step per tick. Cross-origin frames are
49> best-effort. CEF may use native precision-wheel input only before the browser
50> frame is ready.
51
52## Omnibox
53
54Press `Ctrl+L` to open the omnibox for:
55- URL navigation
56- Search (uses default search engine)
57- Bang shortcuts (`!g query` for Google, `!gh query` for GitHub)
58
59## Floating Pane
60
61- Press `Alt+F` to toggle the floating pane.
62- Press `Ctrl+W` to close the active pane; if the floating pane is active, this fully releases it so the next open starts fresh.
63- Some `Alt+<key>` bindings can conflict with browser-engine shortcuts or desktop-level handlers.
64
65See [Floating Pane](./reference/floating-pane.md) for profile shortcuts and configuration.
66
67## Configuration
68
69Edit `~/.config/dumber/config.toml` or use:
70
71```bash
72dumber config open
73```
74
75See [Configuration](./config/index.md) for all options.
76
77## Launcher Integration
78
79Use with rofi or fuzzel:
80
81```bash
82dumber dmenu | rofi -dmenu -show-icons | dumber dmenu --select
83```
84
85## Website Permissions
86
87Dumber includes a built-in permissions system for camera, microphone, and screen sharing:
88
89- **Custom dialog** - Clean permission prompts replace native GTK dialogs
90- **Persistent choices** - "Always Allow" and "Always Deny" are saved per-origin
91- **Privacy-focused** - All permissions stored locally
92- **Camera & Microphone** - Fully working on Wayland/PipeWire
93
94> ⚠️ **WebKit fallback note**: Screen sharing does not currently work on Wayland with WebKitGTK 6.0. This is a known WebKitGTK limitation and does not describe the default CEF backend.
95
96When a website requests camera or microphone access, you'll see a permission dialog with options to allow once, always allow, deny, or always deny.
97
98See [Website Permissions](./reference/permissions.md) for details.
99
100## Crash Reporting
101
102If Dumber exits unexpectedly, crash reports are automatically generated:
103
104```bash
105# List all crash reports
106dumber crashes
107
108# View the latest crash report
109dumber crashes show latest
110
111# Generate GitHub issue payload
112dumber crashes issue latest
113```
114
115See [Session Exit Classification](./reference/session-exit-classification-runbook.md) for troubleshooting.
116
117## Next Steps
118
119- [Configuration Reference](./reference/configuration.md) - All settings
120- [Keybindings](./reference/keybindings.md) - Full keyboard shortcuts
121- [CLI Commands](./cli/index.md) - Command-line tools

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