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. If you prefer tmux, set keymap = "tmux" under [workspace] to use one prefix key (Ctrl+Space) followed by a single action key; see Keymap presets.
| 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
- Press
Ctrl+P to enter pane mode
- Use arrow keys or
hjkl to split in that direction
Shift+arrows to focus adjacent panes
X to close current pane
Vim Mode Quick Reference
- Press
Ctrl+Y to enter Vim Mode
- Use
h, j, k, l to scroll left, down, up, or right
- Use
Shift+J / Shift+K for faster vertical jumps
- Arrow keys continue to use the browser engine's native page navigation while Vim Mode is active
- Use
gi to cycle through visible page inputs; use ]] and [[ to move through headings
- With CEF, press
Enter to open a link in the selected heading and leave Vim Mode; if the heading has no link, it only leaves the mode
Tab and Shift+Tab traverse focusable page controls while a page input is focused
- Other app-level shortcuts stay suspended until you leave Vim Mode
- Press
Escape to leave the mode without activating the selected heading
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. If you prefer tmux, set `keymap = "tmux"` under `[workspace]` to use one prefix key (`Ctrl+Space`) followed by a single action key; see [Keymap presets](./reference/keybindings.md#keymap-presets).
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. With CEF, press `Enter` to open a link in the selected heading and leave Vim Mode; if the heading has no link, it only leaves the mode
417. `Tab` and `Shift+Tab` traverse focusable page controls while a page input is focused
428. Other app-level shortcuts stay suspended until you leave Vim Mode
439. Press `Escape` to leave the mode without activating the selected heading
4410. `Ctrl+Y` can activate Vim Mode even when a page input or editor is already focused
45
46> **Engine behavior**: CEF and WebKit execute Vim Mode scroll steps with the
47> shared `BuildPageScrollByJS` resolver (viewport-center start, nested-scroller
48> handoff, document fallback). The application repeater owns held-key cadence;
49> each engine runs one immediate step per tick. Cross-origin frames are
50> best-effort. CEF may use native precision-wheel input only before the browser
51> frame is ready.
52
53## Omnibox
54
55Press `Ctrl+L` to open the omnibox for:
56- URL navigation
57- Search (uses default search engine)
58- Bang shortcuts (`!g query` for Google, `!gh query` for GitHub)
59
60## Floating Pane
61
62- Press `Alt+F` to toggle the floating pane.
63- Press `Ctrl+W` to close the active pane; if the floating pane is active, this fully releases it so the next open starts fresh.
64- Some `Alt+<key>` bindings can conflict with browser-engine shortcuts or desktop-level handlers.
65
66See [Floating Pane](./reference/floating-pane.md) for profile shortcuts and configuration.
67
68## Configuration
69
70Edit `~/.config/dumber/config.toml` or use:
71
72```bash
73dumber config open
74```
75
76See [Configuration](./config/index.md) for all options.
77
78## Launcher Integration
79
80Use with rofi or fuzzel:
81
82```bash
83dumber dmenu | rofi -dmenu -show-icons | dumber dmenu --select
84```
85
86## Website Permissions
87
88Dumber includes a built-in permissions system for camera, microphone, and screen sharing:
89
90- **Custom dialog** - Clean permission prompts replace native GTK dialogs
91- **Persistent choices** - "Always Allow" and "Always Deny" are saved per-origin
92- **Privacy-focused** - All permissions stored locally
93- **Camera & Microphone** - Fully working on Wayland/PipeWire
94
95> ⚠️ **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.
96
97When a website requests camera or microphone access, you'll see a permission dialog with options to allow once, always allow, deny, or always deny.
98
99See [Website Permissions](./reference/permissions.md) for details.
100
101## Crash Reporting
102
103If Dumber exits unexpectedly, crash reports are automatically generated:
104
105```bash
106# List all crash reports
107dumber crashes
108
109# View the latest crash report
110dumber crashes show latest
111
112# Generate GitHub issue payload
113dumber crashes issue latest
114```
115
116See [Session Exit Classification](./reference/session-exit-classification-runbook.md) for troubleshooting.
117
118## Next Steps
119
120- [Configuration Reference](./reference/configuration.md) - All settings
121- [Keybindings](./reference/keybindings.md) - Full keyboard shortcuts
122- [CLI Commands](./cli/index.md) - Command-line tools