Dumber
[License: MIT] [Go Report Card]
A TTY-inspired browser multiplexer for tiling window managers.
What is Dumber?
Dumber is a Wayland-native browser that works like your terminal multiplexer. Tabs hold workspaces. Workspaces hold panes. Panes split and stack like Zellij. Everything is keyboard-driven.
No bloat. No Chrome. No Electron.
Features:
- Zellij-style panes with modal keyboard navigation
- Wayland native (Sway, Hyprland, River, Niri)
- Session resurrection with auto-snapshots
- Built-in ad blocking (UBlock-based)
- GPU accelerated video (VA-API/VDPAU)
- Launcher integration (rofi/fuzzel/dmenu)
- Search bangs (!g, !gi, !ddg)
- Single config.toml with hot reload
Documentation
Full documentation is available at dumber.bnema.dev
Quick Start
# Install
curl -fsSL https://dumber.bnema.dev/install | sh
# Launch
dumber browse
Arch Linux (AUR)
yay -S dumber-browser-bin # Pre-built binary
yay -S dumber-browser-git # Build from source
Flatpak
wget https://github.com/bnema/dumber/releases/latest/download/dumber.flatpak
flatpak install --user dumber.flatpak
flatpak run dev.bnema.Dumber browse
Dependencies
Arch Linux:
sudo pacman -S webkitgtk-6.0 gtk4 gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugin-va
Debian/Ubuntu:
sudo apt install libwebkitgtk-6.0-4 libgtk-4-1 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad
⚠️ Ubuntu 24.04 ships GLib 2.80, but Dumber requires GLib 2.84+. Use Arch, Fedora 41+, or the Flatpak.
Keyboard-Driven
Four modal modes. Enter a mode, take action, escape out. Vim and Zellij users will feel right at home.
| Mode |
Key |
Actions |
| Pane |
Ctrl+P |
Split · Stack · Close · Move |
| Tab |
Ctrl+T |
New · Close · Switch · Rename |
| Resize |
Ctrl+N |
Grow · Shrink · hjkl/arrows |
| Session |
Ctrl+O |
Save · Restore · Browse |
Development
Dumber uses pure-Go bindings (no CGO) but requires GTK4/WebKitGTK runtime libraries for the GUI.
Environment
Set ENV=dev to use .dev/dumber/ for config/data instead of XDG paths.
Build From Source
Prerequisites:
- Go 1.25+
- Node.js 20+ (for frontend assets)
- WebKitGTK 6.0 and GTK4 dev packages
git clone https://github.com/bnema/dumber
cd dumber
make build
./dist/dumber browse
Make Targets
| Target |
Description |
make build |
Build frontend + binary |
make build-quick |
Build binary only (skip frontend) |
make dev |
Run with go run |
make test |
Run tests |
make lint |
Run golangci-lint |
make flatpak-build |
Build Flatpak bundle |
Contributing
We welcome bug fixes, performance/stability improvements, and WebUI/UX enhancements. We're not accepting new feature PRs.
All PRs must target the next branch. We test there first before releasing to main.
See CONTRIBUTING.md for details.
License
MIT - See LICENSE for details.
source
1# Dumber
2
3[](https://opensource.org/licenses/MIT) [](https://goreportcard.com/report/github.com/bnema/dumber)
4
5A TTY-inspired browser multiplexer for tiling window managers.
6
7- Website: [dumber.bnema.dev](https://dumber.bnema.dev)
8- Documentation: [dumber.bnema.dev/docs](https://dumber.bnema.dev/docs)
9
10---
11
12## What is Dumber?
13
14Dumber is a Wayland-native browser that works like your terminal multiplexer. Tabs hold workspaces. Workspaces hold panes. Panes split and stack like Zellij. Everything is keyboard-driven.
15
16No bloat. No Chrome. No Electron.
17
18**Features:**
19- Zellij-style panes with modal keyboard navigation
20- Wayland native (Sway, Hyprland, River, Niri)
21- Session resurrection with auto-snapshots
22- Built-in ad blocking (UBlock-based)
23- GPU accelerated video (VA-API/VDPAU)
24- Launcher integration (rofi/fuzzel/dmenu)
25- Search bangs (!g, !gi, !ddg)
26- Single config.toml with hot reload
27
28## Documentation
29
30Full documentation is available at **[dumber.bnema.dev](https://dumber.bnema.dev)**
31
32- [Documentation](https://dumber.bnema.dev/docs) - Installation, configuration, CLI reference
33- [Keybindings](https://dumber.bnema.dev/docs/reference/keybindings) - Keyboard shortcuts
34
35## Quick Start
36
37```bash
38# Install
39curl -fsSL https://dumber.bnema.dev/install | sh
40
41# Launch
42dumber browse
43```
44
45### Arch Linux (AUR)
46
47```bash
48yay -S dumber-browser-bin # Pre-built binary
49yay -S dumber-browser-git # Build from source
50```
51
52### Flatpak
53
54```bash
55wget https://github.com/bnema/dumber/releases/latest/download/dumber.flatpak
56flatpak install --user dumber.flatpak
57flatpak run dev.bnema.Dumber browse
58```
59
60### Dependencies
61
62**Arch Linux:**
63
64```bash
65sudo pacman -S webkitgtk-6.0 gtk4 gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugin-va
66```
67
68**Debian/Ubuntu:**
69
70```bash
71sudo apt install libwebkitgtk-6.0-4 libgtk-4-1 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad
72```
73
74> ⚠️ Ubuntu 24.04 ships GLib 2.80, but Dumber requires GLib 2.84+. Use Arch, Fedora 41+, or the Flatpak.
75
76## Keyboard-Driven
77
78Four modal modes. Enter a mode, take action, escape out. Vim and Zellij users will feel right at home.
79
80| Mode | Key | Actions |
81|------|-----|---------|
82| Pane | `Ctrl+P` | Split · Stack · Close · Move |
83| Tab | `Ctrl+T` | New · Close · Switch · Rename |
84| Resize | `Ctrl+N` | Grow · Shrink · hjkl/arrows |
85| Session | `Ctrl+O` | Save · Restore · Browse |
86
87## Development
88
89Dumber uses pure-Go bindings (no CGO) but requires GTK4/WebKitGTK runtime libraries for the GUI.
90
91### Environment
92
93Set `ENV=dev` to use `.dev/dumber/` for config/data instead of XDG paths.
94
95### Build From Source
96
97**Prerequisites:**
98- Go 1.25+
99- Node.js 20+ (for frontend assets)
100- WebKitGTK 6.0 and GTK4 dev packages
101
102```bash
103git clone https://github.com/bnema/dumber
104cd dumber
105make build
106./dist/dumber browse
107```
108
109### Make Targets
110
111| Target | Description |
112|--------|-------------|
113| `make build` | Build frontend + binary |
114| `make build-quick` | Build binary only (skip frontend) |
115| `make dev` | Run with `go run` |
116| `make test` | Run tests |
117| `make lint` | Run golangci-lint |
118| `make flatpak-build` | Build Flatpak bundle |
119
120## Contributing
121
122We welcome bug fixes, performance/stability improvements, and WebUI/UX enhancements. We're not accepting new feature PRs.
123
124**All PRs must target the `next` branch.** We test there first before releasing to `main`.
125
126See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
127
128## Community
129
130- [Report bugs](https://github.com/bnema/dumber/issues)
131- [Releases](https://github.com/bnema/dumber/releases)
132
133## License
134
135MIT - See `LICENSE` for details.