Dia Command Bar
A small extension that adds an Arc-style command bar to Dia. Demo below.
Why I made it
Arc had a feature I really liked: press ⌘T and a little bar shows up on top of whatever page you're on.
- one text box for your open tabs, bookmarks and history
- a few browser actions, and a normal search when nothing matches
- a Chromium extension, built for Dia and tested in plain Chromium
- no build step, no account, no runtime dependencies
- not an Arc clone: no spaces, no themes, no clever ranking
Try it
- this is the real interface on made-up data
- the four tabs are fake, so Enter just tells you what it would have done
- click inside it first so it picks up your keys
sample data only
things to try
- type
@to see only tabs, or>to see the browser actions - type a few letters of a tab name, like
fig - type
github.comand it treats it as an address; type something with a space in it and it becomes a search - press
Ctrl+,(⌘,on a Mac) for settings. Under sources, switch on bookmarks and history and the sample ones will start showing up
new tab vs overlay
- the buttons above switch between the two ways it appears
- new tab is a full page with a clock; overlay floats over a website (the stripes stand in for the site)
- in overlay mode,
Escclears what you typed and a secondEsccloses it Ctrl+Shift+Lbrings it back; drag the little handle at the top to move it
Using it
- on a website, press
⌘⇧L(Ctrl+Shift+Lon Windows and Linux) or click the toolbar icon - a fresh new tab gets the full-page version
- want
⌘Tto work like Arc? There's a setting for it (see the rough parts)
| you do | it does |
|---|---|
| type a phrase | searches with your browser's default engine |
example.com localhost:3000 | goes straight there |
@ | finds an open tab, including ones in other windows |
* | searches bookmarks |
# | searches history (7, 30 or 90 days back) |
> | browser actions: downloads, history, bookmarks, extensions, new window, settings |
↑ ↓ Enter | move through results and open one |
⌘Enter | opens in a new tab |
⌘1 to ⌘9 | jumps to that result |
Esc | clears the search; again to close the overlay |
⌘, | opens settings |
- bookmarks and history are off until you switch them on, and the browser asks permission first
- results opened from the overlay go into a new tab by default, so the page you were reading stays put
- you can change that to replace the current tab
Settings
- seven sections: appearance, command bar, new tab, search, sources, overlay, shortcuts
- cosmetic: theme, accent color, font, spacing, corner roundness, width
- practical: search engine, how many results, where results open
- want the closest thing to Arc? The README lists the exact choices: blue accent, 14px corners, 620px wide, soft highlight, results in a new tab
Privacy and permissions
- no analytics, no remote scripts, no remote fonts
- the content security policy only allows one outside address, Google's autocomplete endpoint, and only if you turn suggestions on
- matching against tabs, bookmarks and history happens on your machine
- search suggestions are off by default. If you enable them, what you've typed so far (after three characters and a short pause) goes to Google, even if your search engine is something else
- addresses,
@*#>searches and private windows never send anything
| permission | why it's there |
|---|---|
| tabs | read tab titles and addresses so it can search and switch tabs |
| activeTab, scripting | draw the overlay after you click the icon or use the shortcut |
| storage | save your settings locally |
| search | use the browser's default search engine |
| bookmarks, history | optional, only after you turn them on |
| suggestqueries.google.com | optional, only for search suggestions |
| all websites | optional, only for the ⌘T overlay |
Restore defaults in settings turns everything off again and revokes the optional permissions.
The rough parts
the ⌘T overlay is a workaround
- browsers don't let extensions take over ⌘T
- so the browser opens a new tab as usual, the extension waits for the bar to load on your previous page, switches back, and closes the empty tab
- you might see a quick flash while that happens
- it only ever closes the empty tab it was handed
- it spots a fresh tab by Dia's homepage address (
chrome://start-page/plus an id). Dia doesn't document that, so a future release could break it until I update
smaller things
- the overlay can't draw on
chrome://pages, the Chrome Web Store, or sites that refuse to be embedded. There it opens a regular tab instead - on a new tab the browser sometimes keeps focus in its own address bar, so click the command bar or hit the shortcut
- it isn't on any extension store
- tested by running the real extension in an isolated Chromium profile with Playwright, plus unit tests for the timing cases in the new tab logic
- independent project, not affiliated with The Browser Company, Dia or Arc
Install
- get the code from github and put it somewhere it can stay
- open
chrome://extensionsin Dia and turn on developer mode - click load unpacked and pick the folder with
manifest.json - pin it, then press
⌘⇧Lon any website
- the browser loads it straight from that folder, so don't move it afterwards
- changed something? hit reload on the extension card
- for ⌘T: settings → overlay → open new tabs as an overlay, then allow website access