Skip to content
i-got-this-faaPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Strip Browser

A programmable, Niri-inspired desktop browser. The web engine is real Chromium (Helium/Chromium source is the planned backend); everything you see and touch is a Rust + GPUI shell driven by one Lua file.

  • Pages are first-class surfaces on an infinite horizontal strip.
  • Opening a page never resizes another page.
  • Dynamic workspaces stacked vertically, niri style: one empty workspace always waits at the bottom; ctrl+u / ctrl+i move between them.
  • Resize a page like a niri column (presets, +/-10%, maximize) without touching its neighbors; ctrl+o zooms out to an overview of everything.
  • Pages can play audio; a note in the page bar shows it, ctrl+m mutes.
  • Keyboard-first: prompt (ctrl+k), palette (ctrl+p), no tab bar required.
  • The whole experience is ~/.config/strip-browser/browser.lua — hot reload on save.
  • Or configure it from the settings page (ctrl+,): theme, behavior and keybindings, written back to that same file.

Run

cargo run -p browser-ui --release

Requires a Chromium-family browser on PATH (google-chrome, chromium, chromium-browser). The engine spawns headless; the GPUI window is the browser. Linux/Wayland first (niri-tested), X11 works via gpui's x11 backend.

Default keys

key action
ctrl+t / ctrl+shift+t new page / new page beside
ctrl+w close page
ctrl+h / ctrl+l focus left / right
ctrl+shift+h / ctrl+shift+l move page left / right
ctrl+n / ctrl+shift+n next / previous page
alt+left / alt+right back / forward
ctrl+r / ctrl+shift+r reload / reload bypassing cache
ctrl+k prompt: URL, search, bookmark, or :command
ctrl+d bookmark / unbookmark the page
ctrl+p command palette
ctrl+u / ctrl+i, ctrl+pagedown / ctrl+pageup focus workspace below / above
ctrl+1..4 focus workspace n (counted from the top)
ctrl+shift+u / ctrl+shift+i, ctrl+shift+pagedown / ctrl+shift+pageup move page to workspace below / above (focus follows)
ctrl+shift+1..4 send page to workspace n (focus stays)
ctrl+alt+r cycle page width presets (1/3, 1/2, 2/3)
ctrl+alt+- / ctrl+alt+= page 10% narrower / wider
ctrl+alt+f maximize page (toggle)
ctrl+m mute / unmute page
ctrl+o overview (see below)
ctrl+, settings page (strip://settings)
ctrl+shift+e reload browser.lua
ctrl+q quit

Overview: h j k l or the arrow keys move focus between pages and workspaces, enter / escape / ctrl+o leave, a click focuses a page (or workspace) and leaves, the wheel moves between workspaces.

All redefinable in browser.lua (keys = {} disables every default), or from the settings page. A browser.lua written before ctrl+, existed has its own keys table and needs { "ctrl+,", "settings.open" } added; :settings.open in the prompt, the palette and the agent API work regardless.

Documentation

  • docs/ARCHITECTURE.md — data flow, crate map, reused vs new code, frame/input paths.
  • docs/CONFIG.md — full browser.lua reference, including the settings page and the block it owns.
  • docs/AGENT_API.md — drive the browser over the control socket.
  • decisions.tsv — decision log with evidence.

License

GPL-3.0-or-later for this workspace's code. GPUI is Apache-2.0 (upstream notice in the crate). Chromium remains under its original licenses; no Chromium source is redistributed by this repository yet.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages