Skip to content
gillesgoetschPublic

About

Omarchy VM for Apple Silicon (OmacVM.app, UTM, VMware or Parallels), feeling native: Full notch rendering, trackpad gestures, macOS-like scrolling, GPU acceleration, synced Wi-Fi, audio and key controls AND TouchID 💥

Topics

Resources

Contributing

Stars

210 stars

Watchers

1 watching

Forks

Repository files navigation

OmacVM

Omarchy in a VM on your Mac, feeling native

One command builds the VM, in its own app OmacVM.app, UTM, VMware Fusion or Parallels Desktop. Then your Mac's Wi-Fi, Bluetooth, sound, keys, trackpad, displays, Night Shift and wallpaper all work in Omarchy.

With Omanotch: Omarchy's real bar beside the MacBook's notch, where the VM leaves a black strip.

curl -fsSL https://raw.githubusercontent.com/gillesgoetsch/omacvm/main/install.sh | bash

Using a coding agent? Copy the prompt for it.

Animated overview. A MacBook runs Omarchy full screen; the VM leaves a black strip beside the notch. The VM's invisible notch monitor appears above, Omanotch streams Omarchy's real bar into the strip piece by piece, the windows grow to full height, the pointer glides into the strip and a click on the clock opens Omarchy's calendar. Then, with the macOS host shown above the VM and OmacVM Bridge between them: the Mac's Wi-Fi and volume arrive in Omarchy's bar; volume and brightness keys drive the Mac while Omarchy shows the popup; three- and four-finger swipes and pinch arrive through OmacVM Gestures while macOS's Spaces swipe is off; Super+Ctrl+N switches the Mac's Night Shift; an external display joins in the macOS arrangement.

What you get in Omarchy How you run it
🔳 Omanotch
Omarchy's real bar beside the MacBook's notch, where the VM leaves a black strip. On by default on a Mac with a notch.
🍎 Standalone app, UTM, VMware Fusion or Parallels
Pick one, OmacVM sets it up the same way. OmacVM.app is one icon in the Dock and adds omacvm to Terminal.
🖥️ Every display, full screen
Your macOS arrangement, external monitors included, each in a Space of its own. ⌃⌥ Esc goes one Space over to macOS; twice opens Mission Control.
💻 Runs on M1, M2, M3, M4, M5, M6
Adapts to notch, ProMotion, HDR and missing hardware on its own.
🎬 Hardware video decoding
OmacVM.app: YouTube 4K on the Mac's media engine, not the CPU, Omarchy's Chromium too. The sound stays in step with the picture.
🛠️ A setup script that fits your needs
Pick the app, CPUs, memory, disk, keyboard, user and every feature; change them later anytime. OmacVM.app's window also sets CPUs and memory one by one and grows or compacts the disk.
🎮 Real GPU performance
Keeps up with your display's refresh, up to 120 Hz. Graphics in OmacVM.app: OpenGL, Vulkan (KosmicKrisp on macOS 26+) or Automatic: Vulkan on macOS 26 and newer, OpenGL before. Vulkan adds WebGPU in Chromium. Graphics memory grows with what the Mac can spare.
⏱️ Ready in 5 minutes
Download a prebuilt VM, or build it fully yourself.
👆 Mac trackpad and Magic Mouse gestures
2, 3 and 4 finger swipes and pinch zoom, optional macOS-like momentum scrolling. Magic Mouse swipes count as 3 or 4 fingers, your pick.
💾 Your VMs where you want them
OmacVM.app's Storage moves them to another folder or drive and shows their sizes.
⌨️ Mac keys, fully Omarchy
Cmd works as Super, ⌘ F10–F12 take Omarchy's screenshots, macOS shortcuts stay out of the way. In OmacVM.app the globe (fn) key opens Omarchy's emoji picker.
🎨 Theme, wallpaper and boot splash
Your Omarchy theme and wallpaper carry over to macOS; OmacVM.app shows Omarchy's logo from the first frame.
🔑 Touch ID for sudo and 1Password
Off until you turn it on: sudo, polkit and 1Password (with its own switch on) in Omarchy ask the Mac's Touch ID, in an Omarchy-styled panel in OmacVM.app, in macOS's own dialog on the other apps. Your password keeps working; only for the VM in front.
🧪 Experiments, off until you turn them on
x86 Linux apps through box64 on every route. In OmacVM.app: USB devices, a fast network (VPN included), GPU compute (OpenCL, WebGPU in Firefox) and the Mac's input methods for Chinese, Japanese and Korean.
📶 Wi-Fi, audio and battery from the Mac
The bar shows your real networks, sound devices and battery. Sound holds on a busy Mac.
🔋 Optimized for battery
Measured power draw on every route; an idle OmacVM.app VM wakes the Mac half as often.
🔊 Native volume and brightness
The Mac's keys with Omarchy's own popups, in finer steps (32, Option: 64), for external displays too. Shift+F1/F2 dims and brightens the keyboard light.
🎛️ Control centre in Omarchy
omacvm in the VM opens a floating window: features on or off, updates, report a problem. From the Mac too: Features… in OmacVM.app.
☀️ HDR and Extra brightness on XDR displays
OmacVM.app on a MacBook Pro's XDR display: HDR and 10-bit colour, and Extra brightness up to twice the Mac's normal white (up to about 1000 nits at full brightness). Extra brightness switches live from Omarchy's Display panel or the app and keeps your setting. Both experimental and off until you turn them on; they use more battery.
🩺 One check for everything
omacvm check tells you what works and what to fix.
📷 Camera and microphone
Video calls in the VM.
🔄 Updates in one step
u in the control centre updates the Mac and the VM, OmacVM.app included. Checked once a week, signed with OmacVM's release key, with a way back.
📋 Copy and paste, both ways
Plus a Mac folder at ~/Mac (OmacVM.app, off by default), Night Shift, True Tone and the Mac's clock format.
🔐 Token-secured bridge to the Mac
Only your own VM can talk to the Mac side, proven with a secret token.

See the full compatibility list per app below, or every feature in detail.

Filmed on a MacBook Pro: a swipe from macOS into the full-screen Omarchy VM, Omarchy's bar beside the notch, and the Mac's Wi-Fi, sound and battery in Omarchy's bar, then a swipe to the next workspace.

The control centre

Type omacvm in Omarchy (or pick it in the Omarchy menu): every feature with its live status, on or off with space, plus updates and "report a problem".

The OmacVM control centre, a floating terminal window in Omarchy's Tokyo Night colours, titled OmacVM and its version. A list of features with green ticks: OmacVM Bridge, wallpaper, trackpad gestures, scroll momentum, Omanotch, the Mac's clock, camera and battery, external display brightness, Chromium video, screensaver and lock disabled, the control centre and the fast network. Autologin, the memory-optimized kernel and WebGPU are off. Graphics says Automatic: OpenGL; Graphics memory says 1.1 GB, peak 1.6 GB. At the bottom: OmacVM.app, Mac linked, and the keys space on/off, r repair, u update, enter details, U updates, ! report, esc quit.

Which app?

OmacVM.app is the recommended way: free, open source, and the only one with hardware video and the full GPU. UTM is the free classic. VMware Fusion is free. Parallels is the most polished, but paid.

OmacVM.app UTM VMware Fusion Parallels
Price free free free paid
Open source ✅ ✅ ❌ ❌
Omanotch ✅ ✅ ✅ ✅
Hardware video decoding ✅ ❌ ❌ ❌
GPU in desktop and browsers ✅ ✅ ✅ ✅
Vulkan, WebGPU, OpenCL ✅ ³ ❌ ❌ ❌
External monitors ✅ ❌ ✅ ✅
120 Hz ProMotion ✅ ✅ ✅ ✅
HDR and Extra brightness on XDR displays (experimental) ✅ ❌ ❌ ❌
Trackpad and Magic Mouse gestures ✅ ✅ ✅ ✅
Momentum scrolling (optional) ✅ ✅ ✅ ✅
Cmd as Super ✅ ✅ ✅ ✅ ¹
Wi-Fi, Bluetooth, audio from the Mac ✅ ✅ ✅ ✅
Battery in the bar ✅ ✅ ✅ ✅
Volume and brightness ✅ ✅ ✅ ✅
Keyboard backlight (Shift+F1/F2) ✅ ✅ ✅ ✅
External display brightness ✅ ✅ ⁴ ✅ ⁴ ✅ ⁴
Camera and microphone ✅ ✅ ✅ ✅
Copy and paste ✅ ✅ ✅ ² ✅
Theme and wallpaper sync ✅ ✅ ✅ ✅
Touch ID for sudo, polkit and 1Password ✅ ✅ ✅ ✅
Control centre in Omarchy ✅ ✅ ✅ ✅
Prebuilt VM (5 min) ✅ ✅ ✅ ✅
x86 Linux apps (experimental, slower) ✅ ✅ ✅ ✅
Mac input methods (Chinese, Japanese, Korean…) (experimental) ✅ ❌ ❌ ❌
CPU and memory limit none none none 4 CPUs, 8 GB on Standard

¹ after one setting in Parallels · ² when the pointer crosses the VM's edge · ³ a Graphics setting per VM (OpenGL, Vulkan, Automatic = Vulkan on macOS 26+, OpenGL before); Vulkan adds Vulkan apps next to OpenGL: on KosmicKrisp on macOS 26 or newer, on MoltenVK before; Vulkan windows reach the screen by a copy on the Mac, faster than the VM's software copy; OpenGL and browser speed are the same either way, and Vulkan brings WebGPU (Firefox, a "Chromium (WebGPU)" menu entry) and OpenCL, with their own switch (on macOS 15: opt-in, OmacVM's own Mesa) (numbers) · ⁴ with the VM in full screen on that display

Bar chart: each route as a share of the Mac, OmacVM.app first, then UTM, VMware Fusion, Parallels. CPU all cores (Geekbench 7): 99, 89, 99, 96 percent. Web apps (Speedometer 3.1): 69, 62, 73, 71 percent. Browser graphics (WebGL Aquarium): 39, 23, 37, 25. Browser overall (Basemark Web 3.0): 77, 74, 69, 74. GPU compute (Geekbench 7 GPU, OpenCL): 45, not available on UTM, VMware Fusion and Parallels. MacBook Pro M4 Max; browser tests 2026-10-09, each VM alone in a window, median of 3 runs; Geekbench from the 2026-10-03/04 rounds.

Bar chart of the whole Mac's power draw in watts, lower is better, with hours on a full 52.6 Wh battery. MacBook Air M2 8 GB, macOS 26.6.2, 2026-10-07, each VM 4 CPUs and 4 GB, median of 3, in the order OmacVM.app 3.0.3, UTM, VMware Fusion, Parallels, macOS. Idle: 6.13 W (8.6 h), 6.30 W (8.3 h), 6.21 W (8.5 h), 6.17 W (8.5 h), 5.20 W (10.1 h). Reading, Chrome scrolling a text page: 6.11 W (8.6 h), 7.43 W (7.1 h), 6.82 W (7.7 h), 6.68 W (7.9 h), 5.48 W (9.6 h). YouTube 4K at 60 fps, in the browser that played it best: OmacVM.app in Chromium, decoded on the Mac's media engine, 10.10 W (5.2 h); UTM in Chromium, decoded on the CPU, 16.46 W (3.2 h); VMware Fusion in Chrome, decoded on the CPU with 11 % of the frames dropped, 16.14 W (3.3 h); Parallels in Chromium, decoded on the CPU, 16.78 W (3.1 h); macOS in Chrome, decoded in hardware, 6.07 W (8.7 h). Every core busy, the VM's 4 cores or the Mac's 8: 21.01 W (2.5 h), 16.95 W (3.1 h), 18.16 W (2.9 h), 18.01 W (2.9 h), 19.69 W (2.7 h). WebGL Aquarium with 30,000 fish in Chrome, each at its own frame rate: OmacVM.app at 19 fps 17.11 W (3.1 h), UTM at 21 fps 18.15 W (2.9 h), VMware Fusion at 25 fps 20.64 W (2.5 h), Parallels at 17 fps 17.43 W (3.0 h), macOS at 60 fps, the display's limit, 17.34 W (3.0 h).

Power: the whole Mac from its battery's telemetry on a MacBook Air M2 8 GB, each VM 4 CPUs and 4 GB alone in native full screen, brightness 50 %; OmacVM.app played the video on the Mac's media engine. How it was measured.

Full comparison with benchmarks: docs/compare.md.

Get started

The command at the top puts OmacVM in ~/.omacvm (it follows the releases: omacvm update takes it to the newest), adds the omacvm command and starts it. Run omacvm any time after that: with no VM yet it builds one; otherwise it asks what you want to do (build another VM, switch features, update, check). Prefer git? git clone https://github.com/gillesgoetsch/omacvm and run ./install.sh in it. Using a coding agent? Copy the prompt. Only OmacVM.app? Its window's "omacvm in Terminal" Install adds the command.

Requirements

  • An Apple Silicon Mac, M1 or newer, with macOS 15 for OmacVM.app or macOS 14 for the others. (On an M1 or M2, Asahi Linux can also run Omarchy natively.)
  • About 30 GB of free disk space on the drive the VM goes to, and a decent connection.
  • One of the apps: OmacVM.app (omacvm downloads it), UTM 5 (beta), VMware Fusion 13 or Parallels Desktop 19, or newer. How to get each: docs/routes/.
  • For UTM, Fusion and Parallels: Xcode Command Line Tools and Homebrew with zstd and e2fsprogs. OmacVM.app needs neither: it brings what it runs on the Mac. (install.sh asks for the Command Line Tools once, for git.)

omacvm checks all of this first, and installs what is missing or waits for you.

Build a VM

omacvm            # or: omacvm build

It asks a few questions (the app, build or download, CPUs and memory, features, your user and password), shows a summary and builds. A build takes 30 to 70 minutes: OmacVM.app 10 to 30, VMware Fusion about 15 more. A prebuilt VM is ready a few minutes after a 3.5 to 6 GB download. A VM window opens on the way: that is the temporary installer, leave it alone.

For scripts: --vm-type app|utm|fusion|parallels, --prebuilt, --vm-dir PATH (Parallels and Fusion), --FEATURE or --no-FEATURE, --yes. omacvm build --help lists them all; every step in detail: docs/guide.md.

When it is done, allow the macOS prompts for OmacVM Bridge and OmacVM Gestures (which ones). On Parallels, change one setting so Cmd reaches Omarchy.

Everyday use

omacvm features                 # switch features on or off
omacvm update                   # the newest OmacVM, on the Mac and in every running VM
omacvm check                    # what works and what to fix; it changes nothing
omacvm vms                      # your VMs and their OmacVM version
omacvm report                   # report a problem: shows what goes into the GitHub issue first
omacvm resources --vm NAME      # change its CPUs and memory
omacvm graphics --vm NAME       # OmacVM.app: OpenGL, Vulkan or Automatic

In Omarchy, omacvm (also in the Omarchy menu and the bar; from the Mac, OmacVM.app's Features… or omacvm features --in-vm) opens the control centre: every feature with its status, on or off with space, repair, updates, and "report a problem" without personal data.

OmacVM.app looks for a new version once a week (Check Now in its window asks at once; Go Back in its menu; off in its settings or the control centre). u in the control centre updates everything: OmacVM.app on the Mac first (the VM restarts once, after one confirm), then the VM. It shows each step while it runs; R restarts the VM at the end for kernel, memory and keyboard changes.

Add --vm NAME for a VM other than the default. Have an Omarchy VM from omarchy-mac already? omacvm apply --vm NAME adds OmacVM to it.

Put the VM in full screen for the gestures. ⌃⌥ Esc moves the monitor you work on one Space over to macOS, with macOS's own animation; the VM stays full screen in its Space. Press it there again to go back into the VM; twice quickly opens Mission Control (more). Everything else: docs/guide.md.

How it works

OmacVM installs omarchy-mac, the Arch Linux ARM port of Omarchy, onto the VM's own disk: a full Omarchy with omarchy update, not a demo. Small helpers on the Mac pass its hardware to the VM over the VM's private network, with a secret token: OmacVM Bridge, OmacVM Gestures and Omanotch.

More: docs/how-it-works.md, the whole build in AGENTS.md, everything else in docs/.

Troubleshooting

Start with omacvm check: it names what is wrong and what to do. Still stuck? omacvm report (or ! in the control centre) collects the checks, versions and logs without your names, addresses, Wi-Fi names or tokens, shows you the text, then opens a pre-filled GitHub issue.

  • The Mac's menu bar stays over the full-screen VM: System Settings › Menu Bar › Automatically hide and show the menu bar: In Full Screen Only.
  • Gestures do nothing: the VM must be full screen and in front; if ⌃⌥ Esc left you in the VM without the trackpad, press it again. omacvm check says when the helpers miss a permission.
  • "answers with another SSH host key" after a rebuild: omacvm apply --vm NAME --reset-host-key.

More: docs/troubleshooting.md.

Uninstall

omacvm uninstall            # --purge also removes the bridge token and settings

Then delete the VM in its app, and remove the OmacVM apps from System Settings › Privacy & Security › Location Services if still listed. The omacvm command itself stays: rm -rf ~/.omacvm "$(command -v omacvm)" removes it. OmacVM.app stays too: drag it to the Bin (its VMs stay in ~/OmacVM, older ones in ~/Library/Application Support/OmacVM/VMs, until you delete them).

OmacVM 2.7.0 and older: don't use --purge if you have OmacVM.app VMs. It deletes them with the settings. Fixed in 2.7.1: run omacvm update first.

Credits

Omarchy (MIT) and DHH for making this!

omarchy-mac and try-omarchy by the Omarchy team. try-omarchy (MIT) gives the camera bridge, the Mac's battery in the VM and OmacVM.app's pieces. Also Arch Linux ARM; omarchy-parallels by Vincenzo Palazzo (MIT), whose image builder is the temporary installer; and omarchy-arm-utm, whose UTM findings shaped the UTM route and whose Wayland SPICE agent (MIT) is the base of omacvm-vdagent. The bar widgets are clones of Omarchy's own.

OmacVM is a community project, not affiliated with the Omarchy team, Parallels, UTM, VMware (Broadcom) or Apple.

Want to help? Start with CONTRIBUTING.md.

License

MIT, see LICENSE. Code reused from others: THIRD_PARTY_NOTICES.md.

About

Omarchy VM for Apple Silicon (OmacVM.app, UTM, VMware or Parallels), feeling native: Full notch rendering, trackpad gestures, macOS-like scrolling, GPU acceleration, synced Wi-Fi, audio and key controls AND TouchID 💥

Topics

Resources

Contributing

Stars

210 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages