Add Flet desktop client

This commit is contained in:
sarah committed 2026-10-08 23:25:41 +02:00
1 parent 16787aba14
commit 0eecfba224
18 files changed
+2588

No files matched your search

+40
View File
@@ -268,3 +268,43 @@ of this setting.
There's also a per-viewer toggle for showing avatars instead of usernames
in the blame gutter, using each author's chosen colour either way.
---
## Desktop Client
`Client/` is SaraView as a desktop app, built with Flet and laid out like
SaraFem: a directory tree on the left, the file list on the right, and an
open file in place of the list. It has two modes, picked in Settings >
Connection:
- **Local**: browses one root directory on your own computer (any path).
Same rules as the server: `.sv_` directory notes, SaraTag's own files
hidden, new directories get their note. Deleting goes to the trash.
- **Server**: talks to a SaraView server (the one on SpineS) through the same
`/api` the web view uses. Logged out you browse as Guest; log in from the
connection button in the toolbar to create, rename/move, delete, upload
(large files go up in chunks) and edit. Saving records blame for you,
locks are enforced by the server as usual, and SaraTag tags show above
the file. Download saves a file, or a directory as a .zip.
Markdown is rendered in View, config and HTML files are highlighted, and
Edit/Save (Ctrl+E, Ctrl+S) work like the web view. Images show in the app;
videos and other files open in their default program (Open Externally).
Rename takes a `/` to move, like the web view (`../Archive/Notes.md`).
Shortcuts: Enter opens, Backspace goes up, F2 renames, Delete deletes,
Ctrl+N / Ctrl+Shift+N new file / directory, Ctrl+R refreshes, Ctrl+B
toggles the tree, Alt+Left/Right go back/forward, Esc closes the open file.
Settings live in `~/.config/SaraSuite/SaraView/Config.toml`, with the
shared SaraSuite theme, font and title bar like every other Sara program.
A saved login is kept apart in `Session.toml` (never in a settings export);
server sessions end when the server restarts, and the client then falls
back to Guest.
- From source: `cd Client && python3 -m venv .venv && .venv/bin/pip install -r requirements.txt`,
then `Packaging/Launch.sh`.
- AppImage: `Client/Packaging/BuildAppImage.sh` builds `dist/SaraView-x86_64.AppImage`.
- SaraSuite: `Client/Packaging/SaraSuite/` is the manifest, kept in sync with
SaraSuite's `Programs/SaraView/`. It installs only `Client/`.