mirror of
https://git.srhtnin.garden/sarah/SaraSort.git
synced 2026-10-13 18:28:18 +02:00
SaraSort: Flet GUI for configuring SaraSortd
Flowchart of inputs/outputs with editable arrows, service page (status, controls, autostart, version, logs), config editor (form + raw), templates, tools (warnings, filename tester, failed files) and settings with SaraFem-compatible export/import. AppImage build and a SaraSuite manifest in Packaging/. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
commit
f7ed23edf9
22 files changed
+3399
No files matched your search
@@ -0,0 +1,64 @@
|
||||
# SaraSort
|
||||
|
||||
A GUI for configuring [SaraSortd](https://git.srhtnin.garden/sarah/SaraSortd), built with Flet.
|
||||
SaraSort doesn't sort anything itself: SaraSortd stays the backend, and SaraSort reads and edits its
|
||||
configs and controls its systemd user service.
|
||||
|
||||
Needs SaraSortd **7.1** or newer for arrows with their own patterns (per-entry `ValidInputDirs`).
|
||||
|
||||
## Pages
|
||||
|
||||
- **Flow**: every input (red), output (blue) and both (purple) directory as a box, with arrows labelled
|
||||
with the file patterns that travel along them. Click a label to see all of its patterns. Boxes start in
|
||||
columns and can be dragged (positions are kept in `Layout.toml`).
|
||||
In **Edit mode**: click a directory, then the one it should sort into, and type the patterns. Each
|
||||
pattern becomes its own `[[Files]]` entry in the output's config, with its own `ValidInputDirs`, and
|
||||
the other settings come from `OutputDirConf.toml` (the template). Click a label to add or remove
|
||||
patterns, remove the arrow, or save it as a template. Click a box to remove it or open its config.
|
||||
- **Service**: running/stopped, start/stop/restart, start on login, SaraSortd's version (and the
|
||||
SaraSuite install it came from), and its logs: its own log files or the systemd journal.
|
||||
- **Configs**: `GlobalConf.toml`, the two templates and every directory's own config, as a form (with
|
||||
help text, a live NewFileName preview and variable buttons) or as raw TOML. Saving only writes the
|
||||
values you changed, so SaraSortd's own NextNum/NextChar/LastFile updates aren't overwritten.
|
||||
- **Templates**: ready-made connections (Pictures, Videos, Music, Documents, Archives, Git repositories,
|
||||
Logs, 3D printing, Installers, Backup copy) that only ask for an input and an output. Your own templates
|
||||
are TOML files in `~/.config/SaraSuite/SaraSort/Templates/`.
|
||||
- **Tools**: warnings about the setup (Unset values, version mismatches, outputs nothing reaches, inputs
|
||||
without outputs, entries shadowed by a catch-all), a filename tester that shows where a file would go
|
||||
and why, and the files in FailedDir with a retry button.
|
||||
- **Settings**: the shared SaraSuite appearance, SaraSort's own settings, where SaraSortd lives, and
|
||||
export/import in the same file format as SaraFem's (`[SaraSuite]` plus `[SaraSort]`).
|
||||
|
||||
After a change to `GlobalConf.toml` (new inputs or outputs) SaraSort restarts SaraSortd, since SaraSortd
|
||||
only reads that file when it starts. That can be turned off in Settings.
|
||||
|
||||
## Where things live
|
||||
|
||||
| Path | What |
|
||||
| --- | --- |
|
||||
| `~/.config/SaraSuite/Config.toml` | shared SaraSuite settings (theme, font, title bar) |
|
||||
| `~/.config/SaraSuite/Themes/` | the themes |
|
||||
| `~/.config/SaraSuite/SaraSort/Config.toml` | SaraSort's own settings |
|
||||
| `~/.config/SaraSuite/SaraSort/Layout.toml` | where flowchart boxes were dragged to |
|
||||
| `~/.config/SaraSuite/SaraSort/Templates/` | your own templates |
|
||||
| `~/.config/SaraSuite/SaraSortd/` | SaraSortd's configs, as SaraSuite installs them (changeable in Settings) |
|
||||
|
||||
## Running and building
|
||||
|
||||
- From source: `python3 -m venv .venv && .venv/bin/pip install -r requirements.txt`, then `Packaging/Launch.sh`.
|
||||
- AppImage: `Packaging/BuildAppImage.sh` builds `dist/SaraSort-x86_64.AppImage` (PyInstaller one-file
|
||||
build + `appimagetool`, like SaraSuite's and SaraFem's).
|
||||
- SaraSuite: `Packaging/SaraSuite/` is a ready manifest (`Manifest.toml` + `Templates/`) to copy into
|
||||
SaraSuite's `Programs/SaraSort/`.
|
||||
|
||||
## Files
|
||||
|
||||
| File | What |
|
||||
| --- | --- |
|
||||
| `Main.py` | window, navigation |
|
||||
| `Core.py` | paths, palette/theme, settings, export/import |
|
||||
| `Sortd.py` | SaraSortd's configs: the graph, edits, the filename simulator, warnings |
|
||||
| `Service.py` | systemctl and journalctl |
|
||||
| `Templates.py` | built-in and your own templates |
|
||||
| `Widgets.py` | the shared App context and small controls |
|
||||
| `*Page.py` | one per page |
|
||||
Reference in new issue
Block a user