Skip to content

[fix] Enable accelerated Alacritty on macOS 26+ - #176

Open
Fail-Safe wants to merge 4 commits into
omacom:mainfrom
Fail-Safe:codex/virgl-dual-source-integration
Open

[fix] Enable accelerated Alacritty on macOS 26+#176
Fail-Safe wants to merge 4 commits into
omacom:mainfrom
Fail-Safe:codex/virgl-dual-source-integration

Conversation

@Fail-Safe

@Fail-Safe Fail-Safe commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Enable accelerated Alacritty on Apple Silicon Macs running macOS 26 or newer with the released VirGL fix. Normal Alacritty launches use the packaged binary instead of the factory software-rendering wrapper.

Platform requirement

This raises Try Omarchy's minimum macOS version to 26.0. The published VirGL v1.0.42 bottle requires macOS 26.0. The app metadata, Swift deployment target, build and launcher checks, compatibility verification, CI runner, and documentation now agree on that requirement. Apple Silicon remains required.

Acceptance of this higher OS minimum is part of review. Runtime testing below was performed on macOS 27; it does not establish a completed macOS 26 host test.

Changes

  • Pin released VirGL 1.0.42, ANGLE 1.0.16, and libepoxy 1.0.5 in both runtime preparation paths, with verified archive hashes. VirGL's upstream library version is 1.3.0.
  • Remove the factory Alacritty software-rendering wrapper. Keep the existing Kitty workaround and terminal chooser.
  • Add a runtime-specific boot marker and a guarded migration helper. The helper recognizes only the exact original factory wrapper, preserves a backup, and leaves custom wrappers untouched. Existing guests use a documented one-time opt-in helper copied from the updated app; updating the app alone does not install a service into an older guest. See migration instructions.
  • Retain the shutdown-race fix: a clean audio-bridge exit after QEMU stops must not turn a successful shutdown into a launcher failure. Isolate launcher test run directories so tests cannot reap a live app's temporary state.
  • Refresh only three unavailable package versions required for a clean guest build: matching ARM kernel and headers 7.2.4-1, and Orc 0.4.44-1. The resolved candidate lock contained no other changes.

Required before merge

  • Driver PR #3 merged and v1.0.42 published; package CI and driver regression tests passed.
  • Update both runtime dependency-pin scripts with released archives and verified hashes.
  • Enforce and document macOS 26.0 consistently.
  • Provide safe, opt-in existing-guest wrapper migration with backup and custom-wrapper preservation; 16 migration tests pass.
  • Complete released-package smoke tests, including scrollback and bidirectional clipboard transfer.
  • Finish final packaged-app fresh-guest boot and confirm normal terminal selection and launch use accelerated Alacritty with visible output.

Validation

GitHub CI on macOS 26 passed for commit c7be078b2fa6fd8ae16ef1db3047d041674a8da3 (2m55s). The final full local suite passed, including 242 Swift tests and 119 guest tests, plus the shutdown-race regression, isolated launcher contracts, and storage checks. A clean QEMU runtime source build and a fresh containerized guest build passed. The complete app built successfully; code-signature verification passed, and compatibility verification checked all 17 bundled Mach-O images against macOS 26.0. The migration helper is included as an executable app resource.

The final packaged app booted a fresh factory guest, first-boot setup completed, and the remaining interaction checks passed. The technical checklist is complete; maintainer review still needs to accept the macOS 26 minimum.

Released-package runtime evidence

The v1.0.42 archive matched SHA-256 64c37340757cf300712d8e74dc43759f81058ec58cf424094d5f79c9c82c0984. An isolated app using that driver with ANGLE 1.0.16 and libepoxy 1.0.5 booted a disposable guest on macOS 27.

Final packaged-app validation used the fresh guest with kernel 7.2.4-1. Omarchy's terminal installer selected Alacritty.desktop; its normal launcher started /usr/bin/alacritty without LIBGL_ALWAYS_SOFTWARE. Visible ASCII, colored text, accented Latin, and Greek output were confirmed. Three additional launches each reported Running on virgl and Using dual source blending.

  • Scrollback: Shift+Page Up changed the visible numbered output from lines 181-250 to lines 108-180; returning to the bottom worked.
  • Clipboard: host-to-guest and guest-to-host marker comparisons passed. Pasting the transferred marker into Alacritty returned TERMINAL PASTE: PASS. Original host clipboard contents were restored.
  • Window behavior: fullscreen, workspace switch/return, and three reopen cycles passed.
  • Migration: the fresh-image service exited successfully without a wrapper. A live exercise using the exact historical wrapper confirmed backup retention and repeat-run idempotence; a custom wrapper was preserved. The disposable test fixture was then moved outside PATH, restoring /usr/bin/alacritty resolution.

The CJK probe showed missing-glyph boxes, so these results do not claim CJK font coverage. Runtime testing was on macOS 27; hosted build/test CI passed on macOS 26.

Earlier controlled tests of the equivalent fix on the previously pinned driver measured about 32% lower guest process CPU with essentially unchanged elapsed time. That is older-version, workload-specific evidence, not a v1.0.42 benchmark or a general FPS/battery-life claim. Kitty's separate OpenGL workaround and the pre-existing combined MRT transition failure remain outside this change.

@Fail-Safe Fail-Safe changed the title [fix] Enable accelerated Alacritty with corrected VirGL [fix] Enable accelerated Alacritty on macOS 26+ Sep 10, 2026
@Fail-Safe
Fail-Safe marked this pull request as ready for review September 10, 2026 21:12
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