Skip to content

Tabs, links and downloads

Open, close, bring back

⌘Ta new tab — at the end of the bar, outside every group
⌘W, the middle button (the wheel) on a tabclose the tab
⌘⇧Tput the last closed tab back where it stood, showing what it showed
⌘Lthe caret in the address field
⌘⇧Na new document — Markdown in a tab (more)

⌘⇧T remembers ten tabs, and only for this run. A tab goes back to its own group, which is made again if it was deleted. A pinned tab comes back pinned. A deleted group (Delete Group on its menu) comes back whole, on the tab that was in front. Each profile has a list of its own: ⌘⇧T brings back a tab closed in the profile on screen and never switches to another one. A private window is not on the list, and neither is a tab that never showed anything.

The last tab can be closed too: a start page opens in its place. A window with no tabs never appears — not after a close, not on switching to a profile with no tabs left, not after a relaunch.

The address field

⌘L, or a click anywhere in the field. The line shows the address without https:// but with its query and fragment — the same line before the click and after, so nothing jumps under the pointer. A click selects all of it.

A double click selects the stretch between separators — . / ? & = : # @ ; + and spaces — rather than a word as in ordinary text, so one gesture takes the domain, a part of the path or a parameter’s value. On a separator itself it selects the separator. A double click on the buttons in the field — the shield, translation, the page tools — presses the button instead of selecting text.

An unfinished address is not lost. A click on another tab or outside the field does not erase it, and coming back to the tab you find it in the field — as with an unfinished query on the start page. Esc, ↩, picking a suggestion and the page going to another address are what clear it.

↩ in a field you have not touched opens exactly the address it shows.

a plain clickas everywhere
⌘ + click, the middle button (the wheel)a new tab behind — the focus stays on the page you are reading
right-click ▸ Open Link in New Windowa new tab, and take me there
right-click ▸ Open Link Behindthe same as ⌘-click
right-click ▸ Open Link Besidea new tab beside this one — both pages on screen
right-click ▸ Download Linked Filedownload it without opening

⇧-click does nothing

And that is not an omission. WebKit hands ⇧- and ⌘⇧-clicks somewhere Savoia cannot answer from. So “open it and take me there” lives in the context menu, next to “open behind”.

A link that is not the web — magnet:, mailto:, tel:, a custom scheme — goes to the system rather than becoming a tab, and it does so wherever it was clicked: in place, in a new tab, or pasted into the address bar. The address bar hands one over only when an app on this Mac claims the scheme; with nothing to open it, what was typed is a search like anything else. A target=_blank link opens a tab, and it comes forward: it was opened to be looked at.

A window a page opens by script (window.open) — signing in through another service, a payment — is a tab too, next to the page that opened it and in front. It stays connected to that page, so it can hand a result back and close itself. It is a tab like any other: its questions about the camera and the microphone appear in it, a file it hands over goes to the downloads, and the size the page asked for is not honoured. Nothing stops a page from opening such a tab by itself.

The page’s context menu

It is Savoia’s own:

on a linkalways
Open LinkBack / Forward / Reload
Open Link in New TabCut / Copy / Paste / Select All
Open Link BehindPicture in Picture
Open Link BesideMove to Profile ▸ …
Download Linked FileClose Tab
Copy LinkSave As…, Share ▸ …
Share Link ▸ …

What it does not have yet is what WebKit’s menu knew about an element that is not a link: Save Image, Copy Image, Look Up and the spelling suggestions.

Downloads

Files land in your Downloads folder under the name the server suggested, and never overwrite: a second report.pdf becomes report 2.pdf.

The download ring appears in the top bar once something has been downloaded, and not before. Inside: what is coming in and how far, Stop, Resume for one that has stopped, Show in Finder when it is done, and a context menu per row — open, copy the address, remove from the list. Removing a row never touches the file.

Resume picks a transfer up where it left off: Savoia asks the server for the missing bytes rather than for the file again, so the ninety per cent that went down with the network stays where it is. A download that died on its own behaves the same as one you stopped. When the server will not do that, the button is honestly called Try Again: it starts over, but it still saves you finding the page and the link a second time.

A download flies from the click to that button, and the button bounces and sends out a ring when it catches one: otherwise a click that put a file in a folder at the other end of the screen looks like a click that did nothing. The button answers a download no click started, an agent’s for one, the same way. While a file’s size is not known yet, an arc turns on the button.

A download belongs to the browser, not to the window that started it: closing the window does not stop the transfer.

Unfinished downloads survive a relaunch: the row is still there after Savoia is quit, saying Interrupted with the file’s name and size, and the button offers to fetch it again. It cannot pick up from the middle across a restart — the bytes already downloaded were in a temporary folder the system is entitled to empty, so promising them would be dishonest. Finished downloads are not kept: the file is in the folder, and there is nothing to lose.

A window opened only to carry a link that turned out to be a file closes itself once the download starts: nothing was in it, and there is nothing to go back to. A tab where a file’s address was typed by hand stays and goes back to the start page — the file is not downloaded again after a relaunch.

Saving a page

⌘Ssave — a document that already has a file goes back to it
⌘⇧Ssave as…

A page saves as .html, .webarchive (the page with its pictures and styles, in one file), .pdf or .txt; a document as .md, .html or .pdf. The folder is remembered.

Sharing

Sending a page to another app. The Share button sits to the right of the bookmark star. It opens the system’s share menu: Mail, Messages, AirDrop, Notes, and any other app that takes links. The same is in the page’s context menu (Share, and Share Link over a link). A start page or a document has nothing to share, so the button is greyed out there.

Taking a page from another app. Savoia is in every app’s Share menu: Safari, Mail, Finder. Pick it, and a sheet comes up over that app and asks where the page goes:

  • the profile, if there is more than one;
  • the workspace: each row shows its first windows’ titles, the one open now is marked Current, and the last one, New Workspace, gives the page a row of its own;
  • Open opens the page as a new tab in that group and brings Savoia forward;
  • Add to Bookmarks saves the page to that workspace’s profile without opening anything or bringing Savoia forward;
  • the hand button is Open in Private Window.

What can be sent besides a link:

whatwhat Savoia offers
a link, a page from SafariOpen, Add to Bookmarks
text that is just an addressthe same as a link
any other textSearch, with your search engine
a PDF, HTML, web archive, image or plain-text fileOpen

Savoia is not offered for any other kind of file.

macOS registers extensions like this switched off, so Savoia switches itself into the Share menu — once, at the first launch that finds it off. Turning it back off, and on again, is where everything else is: Configuration ▸ General ▸ Sharing ▸ Show Savoia in the Share Menu. It is the same switch as the one in System Settings, without the hunt for it; and if you switch it off yourself, Savoia leaves it off.

What Savoia tells sites it is

Safari’s own string — the Safari installed on this machine, version number and all. It is not a disguise: the engine, the JavaScript and the quirks really are that Safari’s. Naming ourselves in the same string is exactly what makes Aviasales and Yandex answer “your browser is out of date”, so Savoia does not name itself there. Nothing beyond the string is faked.