Skip to content

Refactored launcher with sidebar navigation - #364

Merged
themartiano merged 14 commits into
mainfrom
native-launcher-ui
Oct 20, 2026
Merged

themartiano merged 14 commits into
mainfrom
native-launcher-ui

Conversation

@themartiano

@themartiano themartiano commented Oct 17, 2026 •

Copy link
Copy Markdown
Collaborator

What changed and why

The launcher used a custom dark, terminal-styled theme and one long scrolling column. It is now a native macOS window that follows Light and Dark mode, laid out like System Settings: a sidebar grouped as Home | Permissions, Sharing, Network, Virtual Machine | Startup, with roomy rows and wider, shorter content. The window keeps a 760×500 minimum size.

  • Home shows the Omarchy logo, VM status and guest version, a large Launch Omarchy button (Done, Restart Omarchyâ€Ķ and Shut Downâ€Ķ while running), a Needs Attention list (unreachable VM folder, bridged adapter or helper problems, shared-folder problems, unplugged USB device) with sidebar badges, and quick settings for Immersive, Shared Folder and Resources. While the factory image downloads, Home shows the download progress.
  • Permissions on first launch. Until Omarchy first boots, Home has a Get Started section with Accessibility, Microphone and Camera rows that request each one in place. The first press of Launch with any of them unanswered opens a one-time Get the Full Experience sheet with the same rows and Launch Anyway. Afterwards they live in Permissions, and only missing Accessibility keeps the sidebar badge.
  • Every other pane has the pane title and Launch in the title-bar row. Toggles are native switches and rows use System Settings–style icons. Startup includes the Camera Notch switch on Macs with a notch.
  • VM management. Deleting a VM lives in Manage VMs → Delete VMâ€Ķ: one confirmation, then the whole VM folder moves to macOS Trash, where Finder's Put Back restores it. The typed Try Omarchy confirmation is gone because nothing is removed permanently. Moving a VM asks first, copies and verifies, then sends the original to Trash. Folder pickers no longer carry titles or explanations. make reset opens Manage VMs and asks to delete the selected VM.
  • Reset Settings replaces Reset Omarchy in the Virtual Machine pane. It returns resources, networking, port forwarding, the shared folder, USB device, audio devices, Immersive Mode, Camera Notch and Skip Launcher to their defaults, and leaves the VM and permissions alone.
  • The main window is SwiftUI hosted by StartMenuWindow. View state lives in LauncherState, so the launcher rules are tested without layout.
  • The Resources, Manage VMs and Port Forwarding sheets keep their AppKit controls and identifiers, restyled with a shared native header, grouped rows and standard buttons (NativeSheetChrome). The Network and USB alerts gain matching icons.
  • The Check for Updates window is redesigned to match: app icon and installed version, a status row per check result (Downloadâ€Ķ when an update is available), Release Notes, and a Check Automatically switch.
  • The terminal theme and custom buttons (OmarchyLauncherControls, StartMenuPermissionRow) are removed. README, macos/README.md and docs/architecture.md describe the new flows.

Testing

  • make test: 447 Swift tests in 88 suites plus the shell, Python and contract suites pass. New tests cover the first-launch permission sheet and Get Started, Reset Settings, clearing resource preferences, the confirmed move that trashes the original, and deletion.

  • git diff --check is clean.

  • Built the development app and checked in the running app: the sidebar grouping and row height, the minimum window size (a corner drag stops at 760×528 instead of collapsing), Get Started after resetting the dev build's permissions, and the Virtual Machine pane with Reset Settings.

  • Not checked in the running app: deleting or moving a real VM, pressing Reset Settings, the running-VM state of the window, and the factory download progress. These paths are covered by unit tests only.

  • make e2e passes on an Apple Silicon Mac (not run)

@themartiano themartiano changed the title Native macOS launcher with sidebar navigation Refactored launcher with sidebar navigation Oct 17, 2026
@themartiano
themartiano merged commit 1633ec5 into main Oct 20, 2026
7 checks passed
@themartiano
themartiano deleted the native-launcher-ui branch October 20, 2026 06:45
NimbleAINinja pushed a commit to NimbleAINinja/try-omarchy that referenced this pull request Oct 20, 2026
Main's launcher refactor (omacom#364) replaced the settings window, so the
Dictation setting moves into the new launcher: a row in Sharing, beside
Shared Folder and USB Device, shown only where dictation can run. The
per-setting restart caption is gone upstream, and its dictation phrase
with it. Reset Settings now resets Dictation too. The package moves to
0.1.0-31, above main's 30. The manual and the docs index mention
dictation.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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