Start Gyre from an icon: launch / quit / install-desktop

- python3 -m sandtable install-desktop puts a Gyre icon in the app grid and on
  the desktop (freedesktop .desktop entry with a "Quit Gyre" action).
- The icon runs `launch`: starts the web page in the background (no terminal,
  own session, log in .cache/server.log) if it isn't running, then opens it.
  A dialog shows the reason if it can't start.
- Quit link on the page (local computer only) and `quit`: stop any design,
  motors off, close the page.
- Gyre icon (sandtable/static/gyre.svg), also the page's tab icon.
- Simulator takes several lines per tick, so streaming tests aren't slowed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ckochandClaude Opus 5.5 committed 2026-11-01 21:25:10 -05:00
1 parent 8a377af116
commit db78b1f2e6
9 files changed
+195 -13

No files matched your search

+6 -4
View File
@@ -10,10 +10,12 @@ A small Python program that drives the table from your computer over USB. It has
**Status:** running on the table since 2026-11-01. On a new build, do the first-run steps below in order.
## Web page (everyday use)
```
python3 -m sandtable web
```
This opens http://127.0.0.1:8765 in your browser. The table stays on the USB cable and the page is the remote control, so leave the program running in its terminal (Ctrl-C there quits).
**Start it from the Gyre icon** in your app grid or on the desktop. It starts Gyre in the background, with no terminal, and opens http://127.0.0.1:8765 in your browser. Clicking it again while Gyre runs just opens the page.
- **Close it:** use **Quit** at the bottom of the page, or right-click the icon and choose **Quit Gyre**. Either way any design stops and the motors switch off first.
- **One-time setup (Linux):** `python3 -m sandtable install-desktop` adds the icon to the app grid and the desktop. On GNOME, right-click the desktop icon once and choose **Allow Launching**. To add it to the dock, right-click it in the app grid and choose **Pin to Dash**.
- **If it can't start,** a pop-up shows the reason. The log is `.cache/server.log`.
- **From a terminal:** `python3 -m sandtable web` does the same in the foreground (Ctrl-C quits).
- **On a Raspberry Pi** inside the table, there's no computer to start at all: see `../pi/README.md`.
![web page](previews/web-page.png)