aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/README.md')
-rw-r--r--desktop/README.md13
1 files changed, 13 insertions, 0 deletions
diff --git a/desktop/README.md b/desktop/README.md
index 40b5e92..1bd2b7e 100644
--- a/desktop/README.md
+++ b/desktop/README.md
@@ -35,6 +35,19 @@ gear beside the user header opens it, as do SUPER+Return and IPC:
qs -p ./desktop ipc call settings open autostart
qs -p ./desktop ipc call settings toggle
+A page that edits a file edits a draft: its fields change the draft as they
+are typed, and nothing is written until Save in the page's header
+(`SaveBar.qml`, through `Page.actions`). Discard drops the draft, a dot in
+the sidebar marks a page holding one, and drafts survive moving between
+pages. A draft over a file that changed on disk meanwhile is refused at
+Save rather than written over it. Two rules make live editing work: a field
+is not bound to its value (a binding resets the cursor and eats a typed
+trailing space), and a Repeater's model is the set of row keys, assigned
+only when that set changes, never an array rebuilt from the draft, which
+would recreate the row being typed in on every keystroke and drop its
+focus. Git, autostart's rows, HyprSunset, HyprIdle and User keep their own
+buttons.
+
The sidebar's edge drags to resize it, between 160 and 420px; the width is
saved in the preferences file on release.