Skip to content

Fix LAN-reachable shares, frameless window controls per WM side, focus-mode panels#91

Merged
johnjazzi merged 2 commits into
mainfrom
dev
Jun 15, 2026
Merged

Fix LAN-reachable shares, frameless window controls per WM side, focus-mode panels#91
johnjazzi merged 2 commits into
mainfrom
dev

Conversation

@johnjazzi

Copy link
Copy Markdown
Contributor

Summary

Follow-up fixes from cross-machine testing of the window-chrome / peer-discovery / focus-mode work (#90).

Peer sharing — share link now reachable from other machines

  • get_lan_ip picks the real private-LAN IPv4, skipping VPN/tunnel/AWDL/bridge/VM interfaces, and never falls back to loopback in the share link. A loopback link worked on the sharing machine but was unreachable from any peer ("could not reach…"). Pure selection split into choose_lan_ip with 4 unit tests.

Window controls — frameless, on the system's configured side

  • Kept the frameless themed min/max/close (no native decorations), but they now render on the side the desktop is configured for via a new window_controls_side command (reads GNOME button-layout; Windows / non-GNOME default to right). macOS keeps native traffic lights.
  • Buttons extracted into WindowControls.vue.

Focus mode

  • Wide-screen titlebar exposes left/right panel toggles — the only way to open the hidden sidebars without leaving focus mode.
  • Floating panels render expanded (leftExpanded/rightExpanded) instead of the collapsed icon strip with no content.
  • Small-screen floating modal fills the viewport (specificity fix over the compact width override).
  • Floating modal repaints to the opaque --bg-surface (joins the floater re-opaque list) so it isn't see-through in window-transparency mode.

Specs updated in REQUIREMENTS.md. All 311 tests pass; cargo check clean. Ran /simplify over the diff.

🤖 Generated with Claude Code

john and others added 2 commits June 14, 2026 22:38
…us-mode panels

Peer sharing:
- get_lan_ip now picks the real private-LAN IPv4, skipping VPN/tunnel/AWDL/
  bridge/VM interfaces and never falling back to loopback in the share link
  (a loopback link worked on the host but was unreachable from other machines).
  Pure selection extracted to choose_lan_ip with unit tests.

Window controls:
- Keep frameless custom controls (not native decorations), but render them on
  the side the desktop is configured for via new window_controls_side command
  (reads GNOME button-layout; Windows/other = right). macOS keeps traffic lights.
- Extracted buttons into WindowControls.vue.

Focus mode:
- Wide-screen titlebar now exposes left/right panel toggles (only way to reach
  the hidden sidebars in focus mode).
- Floating panel rendered with leftExpanded/rightExpanded so tabs/content show
  expanded instead of the collapsed icon strip.
- Small-screen floating modal fills the viewport (specificity fix over compact).
- Floating modal repaints to the opaque --bg-surface (joins the floater
  re-opaque list) so it isn't see-through in window-transparency mode.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@johnjazzi johnjazzi merged commit 03dcc0e into main Jun 15, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant