Skip to content

On a phone

Andrea de Ruvo edited this page Aug 19, 2026 · 1 revision

On a phone

There is no phone version. It is the same app, the same address, the same token and the same desks — a session you left open on the laptop is the session you find on the train. What changes below 560px is the navigation, and it changes because the desktop navigation does not survive that width: measured on a 390px screen, the bar of seven tabs came to 476px of content in a 390px strip — a tab and a bit off the side, and the ones you could see were 55px targets wearing 10px words.

The menu, not a bar

The navigation is a drawer that comes in from the left, and the in the header opens it. Tap the veil, tap a destination, or press Escape, and it goes away.

It holds everything the rail holds on a desktop — Files, Sessions, Windows, Prompts, Values, System, Journal — each with its count. An amber count means one of those sessions has stopped and is waiting for you, the same as everywhere else.

Two decisions inside that are worth saying out loud:

  • The hamburger wears the waiting mark itself, as a dot. An alert you have to open a menu to see is not an alert, and that is exactly what moving the navigation into a drawer would otherwise have cost.
  • There is no Settings row. The sliders are in the header on every screen, and a menu whose job is to hold what the header cannot hold has no business repeating it.

If you want the bar back, it is a setting: Settings → Look → Bar along the bottom, on a phone. With it on you get four tabs along the bottom and the drawer keeps the other three — which is the layout Argus had before, kept because a bar you can reach with a thumb without opening anything is a real argument, just not the default one.

A window's title bar

A window narrower than 520px keeps its name, the i, a and Close. Everything else — the bell, the pairing, full screen, moving it to another desk — is in the sheet behind the ⋯.

Two things about how that is decided:

  • It is asked of the window, not of the screen. A 300px window on a wide monitor has exactly the same problem as a phone, and a media query cannot tell the two apart. So the window is its own container and answers for itself.
  • The sheet is read off the bar. Whatever the width hid is what the sheet offers, so a window that carries buttons of its own needs no special case and nothing can be left unreachable by forgetting to list it.

The name gets the room that leaves, because the name is the one thing on that bar you cannot work out from looking at the picture.

The desk toolbar

Icons only, below 560px, and bigger than they were: 40px tall instead of 36. Measured on a 390px screen, fourteen buttons wearing their words came to 970px of content in a 390px strip — two thirds of the toolbar off the side, at a size a thumb cannot be sure of. What is left over still scrolls, because a desk toolbar is a row of tools and not a row of five.

The custom arrangement keeps no word either: the puzzle piece is distinct enough beside three tilings, and its label was a seventh of the strip.

Scrolling, and dragging

The desk tabs scroll sideways. That is worth stating because it is the thing that breaks first: what makes a tab draggable is telling the browser not to treat a touch on it as a scroll, and doing that to the whole strip is how the strip stopped scrolling — twice.

So the rule everywhere something can be both dragged and scrolled past:

  • A quick swipe scrolls. Always.
  • A press held for about a third of a second picks the thing up — a desk tab, a window's tab in the tray.
  • A prompt drags from its handle, the tile of six dots at the left of the row, and only from there. The gesture belongs to that 22px square; the rest of the list scrolls normally.

The terminal

The key bar under a session is the row a touch keyboard does not have: Esc, Tab, the arrows, and the control codes. A coarse pointer gets it by default, and two settings cover what a media query cannot see — a laptop with a touchscreen you drive with the trackpad, and a tablet with a keyboard attached.

Scrolling the terminal with a finger pans the buffer rather than the page. Copying, pasting a screenshot, and the rest of it work as they do anywhere; see Sessions and the terminal.

If your keyboard duplicates letters as you type, that is a known one and the FAQ says what to do.

Targets

Nothing you tap is smaller than 46px, and a window's own buttons go to 36px as soon as the pointer is coarse — an audit found a dozen of them sitting at exactly 30, which is comfortable with a mouse and a lottery with a thumb.

Installing it

Add it to the home screen and it runs without the browser's furniture, which is worth more than it sounds: an installed app has no tabs to switch and no address bar to focus, so nearly every keyboard shortcut that a browser would otherwise swallow reaches Argus instead — see Keyboard shortcuts.

Several machines, several apps. A browser identifies an installed app by its origin — scheme, host and port — so https://one-machine:8090 and https://another:8090 are two apps and installing either has never had anything to do with the other. What made them hard to live with is that both were an icon called Argus drawn with the same picture: the manifest now carries the address it was asked for, so the name is Argus · host and the label under the icon is that host's own first word. Nothing is stored or guessed — it is the Host header, which is what you typed.

If the browser never offers, the offer is a button: Settings → Go to → Install it on this device. It keeps whatever the browser raised, so you can take it when you want rather than when it asks; and where there was nothing to keep, it says why in three lines it can actually check — a secure origin, a running service worker, a manifest that arrives with its icons — and then where each browser hides the command by hand. Safari never offers and never will, which is a fact about Safari rather than a fault, and the sheet says so on an iPhone.

Getting the address and the token onto the phone in the first place is a QR code: Settings → Go to → Open on another device, or start the server with --qr and photograph what it prints. Each device can have its own token, so losing a phone costs you one revoke rather than a new token everywhere.

Clone this wiki locally