I turned my split-screen extension into a browser

ruusvuu1 pts0 comments

Splitser -- a tiling desktop browser

; it is safe up here because widget.js defers to DOMContentLoaded when<br>document.body isn't ready yet (curio/public/widget.js:1167).<br>-->

Skip to content

Paid

Tiling desktop browser

Your logged-in apps,<br>side by side.

Splitser tiles real Chromium views in one window. Every pane is a whole browser --<br>its own history, its own zoom, its own find -- and every site it loads is a<br>first-party tab , not an iframe leaning on third-party cookies that most<br>browsers already block.<br>Nothing leaves your machine: no account, no sync, no telemetry .

Download<br>See what it does

v0.1.4 &middot; unsigned<br>Free, and free forever. Installers for Linux, Windows and macOS -- or build it yourself.

Pause

Splitser, actually running. A tab opens and switches back, the divider drags, a pane<br>splits, the layout becomes a 2×2 grid, then a second set opens -- and the first set<br>comes back exactly as it was left.

Splitser

sets

Pull requests<br>Issues

github.com

Payments

dashboard.stripe.com<br>🔑

https://github.com/…<br>Splitser

An illustration of the interface, not a screenshot -- but the gutter drags, same as it<br>does in the app. Those two URLs are what a fresh install opens.

What it does today

Everything on this page is built and working. What isn't built is<br>listed just as plainly.

Panes that are really browsers

Each pane carries its own toolbar -- back, forward, reload, favicon, address bar, bookmark star, split, close -- and its own navigation history. Not a viewport onto one page. A browser.

🛡

Ads and trackers blocked, without being asked

EasyList and EasyPrivacy-class filtering runs at the session level, on by default -- it blocks the ad and tracker requests, rather than just hiding what arrives. Each pane carries a shield with a live count of what it stopped, and you can allowlist one site or switch the lot off.

No server, no account, no telemetry

No backend to sign in to, nothing phoning home, no analytics. The one thing it fetches for itself is the ad-block filter list, once, which it then caches -- after that the only traffic is the sites you point it at.

Workspaces: a whole grid you can flip between

A workspace is an entire independent grid of panes with its own layout. Ctrl+T, or + New grid in the Workspaces bar, opens a fresh one. Each pill carries a favicon and a name -- taken from the first site you open there, and renamable in place -- and the bar wraps across rows as you collect them. The workspace you left keeps running, hidden but never torn down, so its audio keeps playing and every page holds its state. Three levels deep: workspaces hold panes, panes hold tabs.

Columns, or a grid -- every border drags

Columns by default, or a 2×2 / 3×3 grid from the status bar or Ctrl+1 / Ctrl+2 / Ctrl+3, per set. Every internal border resizes -- columns, rows, and the corners where they cross. A column divider resizes that column down all the rows, a row divider resizes that row across all the columns, and the diagonal grip where two dividers meet reproportions both axes in one drag. Sizes persist per layout, and it all drags right over a live page.

Tabs inside every pane

Each pane carries its own tab strip -- the strip's + opens a tab, the tab's × closes it, click to switch. A background tab is a real, live view, hidden and never destroyed, so audio keeps playing and the page keeps its state.

Links open as panes

A target=_blank link or a window.open popup opens a new pane beside the one you clicked from -- not a new OS window stacked on top of your work.

Real find in page

Ctrl+F runs Chromium's native find: actual highlighting, an actual match count, next and previous. Not a script crawling the DOM and guessing.

Shortcuts that fire anyway

Keyboard shortcuts reach the shell even while a page has focus -- they're forwarded from the main process, so a page can't swallow them.

Per-pane zoom and mute

Ctrl+= / − / 0 zooms one pane without touching the others. Ctrl+M mutes it, and any pane making noise grows a speaker button.

An address bar that remembers

Type, and matches from your own browsing history drop down -- arrow keys and Enter to pick. Ranked by how often you actually go there.

Bookmarks and downloads

Star a page with Ctrl+D and reopen it from the ★ panel. Downloads land in your OS Downloads folder, with a ↓ panel tracking progress.

Session restore, all three levels

Quit with four sets open, each with its own layout, panes and tabs -- and the set you were on -- and it all comes back. On a fresh install it starts you with GitHub next to your Stripe dashboard.

🛡

Permission prompts that mean it

Camera, microphone, geolocation and notifications raise a real allow/deny dialog. Everything else defaults to deny -- a page gets nothing it has not been handed.

The browser bits you would miss

A right-click menu on any page -- open a link in a new pane or tab, image actions, copy and paste, inspect. Sign-in dialogs for sites behind HTTP Basic or Digest auth, prefilled...

pane page ctrl browser opens grid

Related Articles