The tray

A Cartmark icon by the clock · one for each person signed in to Windows · holds no key

On a Windows PC set up with Cartmark, a small icon sits by the clock and starts by itself at each sign-in. Its dot says how the PC is. Its menu says who is playing, what is lent here, what is copying and what the PC is testing, and does the things people actually do at a PC: switch the player, start a recent game or an emulator with the right saves brought in first, return or uninstall a game, pause testing while you play, sync or bring back a save, report a problem. Cards like Steam's slide up for what happens. The tray does all of it through the PC's worker and never holds the PC's key.

Live in 0.40.0.1The tray and its cards since 0.38 · recent games started with their saves since 0.38.1 · the Emulators menu, pads set up and console games from the copy here since 0.39 · Uninstall game since 0.40

What it is

The tray is a Cartmark icon by the clock. It starts at each Windows sign-in, each person signed in to the PC gets their own, and it keeps running while you play. Hover over it to see who is playing and how the PC is. Left-click it to open the library, already signed in as you where it can be. Right-click it for the menu.

The icon is Cartmark's logo with a coloured dot:

DotMeans
GreenReady.
AmberTesting is held or paused, or the tray is still waiting to hear from the PC's worker. Normal right after sign-in.
RedThe PC cannot reach the library. Games already on it still play.

Every three seconds it reads the PC's state and sets the dot; every two seconds it reads new events and shows a card for each. The menu is rebuilt only when what it shows has changed, and the icon is redrawn only when the dot changes colour.

How it is built, and why it is safe to have

  • A signed script. The PC's worker fetches the tray from Cartmark and checks its signature the same way it checks its own updates. A tray that does not match is not started, and the worker replaces one that has gone stale with the version it came with.
  • It holds no key. The worker is the part that talks to the library. The tray and the worker meet in one folder on the PC: the worker writes the PC's state and its events there, and the tray leaves its presses there as small files for the worker to carry. Pausing tests, syncing saves now and restarting the worker are done on the PC; everything else goes to the server on the worker's next poll, and each answer comes back as a card.
  • What you press is yours alone. A press, and anything it carries such as a PIN, is a file only you and the system can read; the PC's other users cannot. The worker reads who owns each press and drops one from anyone who is not the person at the PC's own screen.
  • Words never become code. Everything the tray shows comes from the server or from other people, and the tray treats it as text: a game's title or a person's name is only ever drawn on a menu or a card.
  • It runs on its own. One tray per Windows session. Restarting the worker does not close it, and each check-in starts one where this session has none, at most three times in half an hour. Exit lasts until you next sign in to Windows.
  • It stays. It makes one icon for each colour, frees its old menu each time and rebuilds only on a change, so Windows never runs it out of drawing handles. If the taskbar restarts, the icon is put back. An error in a click or a timer is written down and the tray carries on, with no error box on the screen.
  • Its own log, in your own profile, records its start, its dot changing colour, any error, and a health line every five minutes with its handle counts and when the worker last wrote. Web addresses are cut to their host, and no Windows account name, PC name, email address, long token, PIN or password is written.
  • It leaves emulators alone. The tray starts an emulator the way you would, and never closes, hooks or changes one that is running. Where it writes a setting for one launch, such as a pad or the folder Load Content opens at, it writes a new file of its own, puts the person's own settings back once the game has ended, and keeps a record on disk so a tray stopped mid-game still undoes it when it next starts.

If it goes quiet

  • The icon is missing. Windows often tucks new icons under the small up arrow by the clock; drag it onto the taskbar to keep it in view. After Exit, it is back at your next sign-in. After a PC is set up or updated, it appears once the worker has updated and you sign out and in.
  • "Waiting for this PC's worker." The tray has not heard from the worker yet. Wait a minute; right after sign-in this is normal. Then restart the PC, or, if you own it, press Run setup again on its page.
  • The dot is red. The PC cannot reach the library. Check the network, or turn on Tailscale away from home. Games already here still play, and lent games are removed only if the PC stays out of touch for days. Loans over the road.
  • The dot goes stale. If the worker has not written for ten minutes the tray says so in its log; the icon stays and the menu's first line says what it last knew.

What needs no password, and what does

From the tray, with no password

  • Switch the player to a member (their PIN), or to nobody.
  • Start a recent game or an emulator, as the player.
  • Return a lent copy, uninstall an installed game after a second yes, and answer "removed on purpose?".
  • Sync saves now, and bring back the save before (your PIN).
  • Pause and resume testing, run diagnostics, restart the worker.
  • Report a game that did not work.

Never from the tray

  • Switching a PC between Shares only and Full station: that is the owner's or an admin's password, on the PC's page.
  • Anything that changes an account, a setting or the library: a tray sign-in only reads, and the page asks for your password first.
  • Letting an old copy with a save go without a Yes: Cartmark refuses it, even from a PC on an older worker.

Saves first, then the game

A game started from Recently played, from the Emulators menu or from an RA choice does not start until your saves for it are in place. The worker makes sure the emulator is closed, sends up that game's saves from the PC, fetches your newest and checks each against its checksum and size, backs up what was on the PC first, and only then says the game may start. Only the tray of the person who asked starts it.

  • A small window says what is happening: "Getting your save for … ready", with about how many seconds it needs once the worker knows, and Cancel. After a second and a half it grows a progress bar, "3 of 12 saves" where the whole is known, or a moving bar where it is not. Nothing is started while it shows.
  • A wait that is moving is never cut off. Each time the worker reports progress the wait is given five more minutes, up to two hours in all. One the worker stopped reporting on ends with Try again or Cancel, and never a start.
  • Cancel starts nothing, now or when the worker answers later. Saves already placed stay, each with the copy it replaced kept beside it.
  • Held rather than guessed. If the player changed meanwhile, a checksum did not match, the core cannot be told for sure, or a save layout cannot be read safely, the launch is held with its reason.
  • The game starts the way it was played: the same file and the same emulator or RetroArch core, each held to its checksum from when the play was seen.

A game you open from an emulator's own shortcut instead is seen too, and nothing is done to the emulator. If the save on the PC was not your newest when it opened, the tray says "This game's save is not your newest"; what you save then goes up as a separate copy on My saves and never replaces your newest.

The Emulators menu

Every emulator the set-up found on this PC is listed: RetroArch, with "all systems" or any one of its cores by name, and PCSX2, Dolphin, PPSSPP, xemu, Cemu, RPCS3 and Ryujinx where they are installed. Choosing one brings in every save of the player's for that emulator, or for just that core, with the same wait and progress bar, then opens the emulator as you would, with no arguments and from its own folder. RetroArch's Load Content opens at the chosen core's games on the library share, and that one setting is put back once RetroArch has closed, unless you changed it yourself meanwhile.

A console game lent to this PC

A console game can be lent to a Windows PC like a PC game. Starting it from Recently played asks once: "Play it from this PC" (Enter), "Stream it from the library", or Cancel. From this PC opens the emulator at the copy on the PC; stream is the ordinary start from the library. Where the library share does not answer, the copy here is all there is and it plays from the PC without asking. If the emulator it was played with is not set up here, a card says so instead.

Pads set up for one launch

A Wii U game started from the tray gets a Pro Controller for player one unless it needs the GamePad's screen; a Wii game gets the Classic Controller, the GameCube pad or the remote on your pad, whichever the game takes. It is done through each emulator's own documented settings, as a new file for that one launch, and taken away when the game's process ends. What you set yourself wins: a game you have settings of your own for, a player one you mapped to a controller, a real Wii Remote or the GameCube adapter, a device type you chose, or a Cemu player one that is anything but the GamePad, is left exactly as you set it.

Saves handed back to you

When a game is taken back from a PC you share with someone else, the saves it leaves behind are handed to you by the tray the next time you sign in: moved, as whole sets, into Cartmark Saves in your own Documents, never through a link and never over a file already there, and a card says so. Other files the game left are kept in a Kept folder beside your games, which Cartmark never deletes.

Cards like Steam's

Cartmark's notifications are dark cards with the Cartmark logo, a title, the detail and the time. They slide up at the bottom right of the screen, stay on top, and never take the focus from your game.

  • One at a time, up to twenty waiting, each shown for the seconds you chose, or as long as the pointer is on it. A click opens its page.
  • A coloured edge says how much it matters: blue for news, amber for a warning, red for a problem.
  • Only when someone is there. A card shows only on a PC that is unlocked and has been used in the last minute. A locked, disconnected or idle PC keeps its events in the history without popups or sound, and old queued cards are dropped rather than replayed when you come back.
  • Nothing old is replayed at a sign-in either: the tray shows what happens from then on, and remembers which of the PC's standing warnings you have already seen.
  • Your own notices come to the PC you are playing on, the last day's only, in a file only your Windows account can read. Urgent notices, which may carry a password link, never go to the tray: they go to your private channels.
  • Windows' own notices stay off while a tray is running; the worker falls back to them only where no tray has said it is alive in the last minute and a half.

What cards come for: games started and finished; the player and guests switched; saves fetched and switched, kept on the server, and restored; achievements unlocked; copies to this PC, at each quarter of the way, and installs; testing paused, held and resumed, its mode and its calibration; diagnostics finished; lent games missing and loans freed, due, going back and taken back; the worker woken, sleeping and set up, and a worker update undone; this PC's warnings and Cartmark's news, the newest What's new once; your own notices; other notices from this PC; and the answer to each thing you pressed. An admin who is the player also sees the Needs attention count.

Quiet hours, kinds and history

  • Cards always show. During quiet hours they make no sound. The default quiet hours run from ten at night to eight in the morning.
  • Settings, under Notifications: quiet hours from and to, a sound outside them or not, how many seconds each card stays (three to thirty), and a tick for each kind of card. All are on at first, and the settings are yours alone, on this PC.
  • History: the menu shows the last ten; All of them opens Cartmark notifications, the last fifty with when, what and the detail, newest first. Click one to see its card again.

Links that open Cartmark as you, for reading

The tray's links (the library, this PC's page, My achievements, Add a device, What's new, My saves, the guides) and a left-click on the icon can open Cartmark already signed in, so you do not type your password. It works when all three are true: you are this PC's player and not a guest; you are signed in to the Windows account this PC links to you; and you have given your player PIN on this PC in the last four hours. The first time, a box asks for the PIN; for the next four hours, links from this PC open without asking.

A session opened this way

  • Lasts four hours.
  • Can only read. You can look at everything, sign out, and read your achievements again. Anything that changes something sends you to the sign-in page first, and back after.
  • Is always a member's session, even for an admin.
  • Is handed to you alone. The link works once, for a minute, is kept by the server only as a hash, and reaches the tray in a file only your Windows account can read, never in the notices other users see.

What never happens

  • A guest is never signed in this way, nor anyone whose Windows account is not the one linked to them, nor anyone outside the machine's household.
  • Somebody else's browser is never taken over. A browser signed in as someone else asks first: continue as you, or stay as they are. One already signed in as you simply carries on.
  • A doubtful case opens as normal. If anything is not right, the PC does not answer within twenty seconds, the sign-in would be held for an unusual place, or your account is locked, the page simply asks you to sign in.

Whose Windows account is whose

The PC remembers which Windows account belongs to which person, so that signing in to Windows makes you the player. The first Windows account a PC sees is the person it was set up for; another is learnt the first time somebody switches the player to a person from the tray, with their PIN, while that Windows account is signed in, and the tray says "This Windows account is remembered as theirs." The list stays on the PC, readable only by its administrators. The server is told a person's number, "unknown", or nothing: never a Windows name or account identifier. The PC's page lists who has a Windows sign-in there, and the owner can press Forget beside a person.