c888c30c089e096a47b222ff6c9053ff2018e3bc
X11 sessions now persist and restore the window position (window_x/y) in addition to size. Gated to X11: Wayland's xdg-shell gives clients no way to self-position, so we center there (and iced never emits Moved on Wayland, so window_x/y stay None). No drift across save/restore — iced's Moved event and Position::Specific both use the window's outer position. Also confirmed peerspeak already runs on X11 out of the box (winit compiles both backends and auto-selects via WAYLAND_DISPLAY/DISPLAY) and documented X11/Wayland support in FEATURES.md. - config: window_x/window_y: Option<i32> (serde-default None). - app: is_wayland() + pure initial_window_position() helper; a Moved handler records position; the close path persists it. - tests: +3 initial_window_position (X11 restore / Wayland centers / partial-or-missing centers), +2 config (round-trip incl. negative coords; backward-compat load without the new fields). 130 -> 135 lib. Verified live on X11/XWayland: saved an off-center position, the window reopened there (not centered). clippy clean incl. --all-targets. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>