Run Omarchy 4 in UTM on Apple Silicon
Run and harden an Omarchy 4 VM on Apple Silicon with UTM.
Introduction
30 Second Summary
Trying a new operating system can feel risky when your Mac holds the files and apps you rely on every day. One experiment should not put your main computer at risk.
In this project, you will run a checksum-verified Omarchy 4 workstation inside UTM on your Apple M1 or M2 Mac. You will harden the imported system into a recoverable workstation that works with your Mac keyboard and clipboard.
What You'll Build
Picture launching the Omarchy menu from your Mac keyboard inside a themed Hyprland desktop that runs beside your macOS apps.
By the end of this project, you'll have:
- A verified ARM64 workstation that starts from the UTM Library inside a normal Mac window.
- A secured baseline that uses your chosen password. Terminal checks confirm an active UFW firewall. They also show a named Snapper snapshot ready before customization.
- A Mac-integrated workflow where Option-key shortcuts open the menu, terminal, and keybinding list. Two-way text clipboard sharing lets you move text between macOS and Omarchy.
- Secret Mission: Add Retina sharpness to the VM. Test its responsiveness. Keep a one-command rollback to the default display mode.
Are there any prerequisites?
You need an Apple M1 or M2 Mac with UTM already installed, reliable internet, about 8 GB of free disk space, and experience with Arch Linux.
This project uses an unofficial community image because Omarchy does not directly support M-series Macs.
Before We Start
Before any hands-on work, lock in the local Omarchy workstation you are about to run in UTM. Your reason for keeping macOS unchanged becomes the safety boundary for the project.
Verify and Import the ARM VM
A community virtual machine image carries an entire operating system. You need to prove the corrected archive matches its published checksum before UTM opens it.
In this step, you will confirm your UTM version in macOS Terminal. You will verify the unofficial Omarchy ARM v2 archive before importing its powered-off VM.
In this step, get ready to:
- Confirm UTM 4.7 or later with its bundled command-line tool.
- Download the corrected v2 archive with its published checksum file.
- Verify the archive before importing the powered-off VM.
Confirm the UTM version
UTM includes utmctl for controlling the app from macOS Terminal. Its version command confirms that your installed release meets the community image requirement.
- Display the installed UTM version by running this command:
/Applications/UTM.app/Contents/MacOS/utmctl version
What does this command do?
The bundled utmctl command reads the installed UTM app version without starting a virtual machine.
The current stable release is v4.7.5. The Omarchy ARM image requires 4.7 or later.
- Compare the displayed version with the minimum version 4.7.
A result of 4.7 or later confirms that your Mac can import this image. Your virtualization host is ready for the verified bundle.
Version check not working?
- Confirm UTM is installed in /Applications.
- Update UTM before continuing if the displayed version is earlier than 4.7.
- help me diagnose the UTM version check.
Download the verification files
The community project publishes the corrected archive through the Internet Archive. Its separate SHA-256 checksum gives you an independent fingerprint for checking the download.
Why use the prebuilt image?
The prebuilt v2 image fits the project time limit. A source build takes longer than this project allows.
This path also avoids adding Homebrew or Xcode Command Line Tools to your Mac.
A several-minute wait is normal while the 3.6 GB archive downloads.
- Open the Internet Archive download page in your web browser.
- Download omarchy-arm-utm-v2.zip into ~/Downloads.
- Download omarchy-arm-utm-v2.zip.sha256 into ~/Downloads.
You now have the archive plus its independent checksum ready for a local trust check.
Download incomplete?
- Return to the Internet Archive download page to retrieve any missing file.
- Confirm both downloaded names contain -v2 before continuing.
- help me troubleshoot the Omarchy ARM v2 download.
Verify the archive before import
Artifact verification compares the downloaded archive with the fingerprint published by its creator. A successful match gives you the evidence needed to extract the VM bundle.
- Move macOS Terminal into ~/Downloads by running this command:
cd ~/Downloads
What does this command do?
The cd command moves your terminal session into ~/Downloads. The archive plus its checksum file are stored there.
Before you run the check, what result would convince you that the archive matches its published fingerprint?
- Compare the archive with its published checksum by running this command:
shasum -a 256 -c omarchy-arm-utm-v2.zip.sha256
How does the checksum check work?
- The shasum command calculates a cryptographic fingerprint for the downloaded archive.
- The -a 256 option selects the SHA-256 algorithm.
- The -c option compares the calculated fingerprint with the value in the checksum file.
You will see omarchy-arm-utm-v2.zip: OK. That match confirms the downloaded archive has the published fingerprint.
Checksum did not pass?
- Stop before extraction if the check reports a mismatch or cannot find a required file.
- Return to the download page for fresh copies of both v2 files.
- help me resolve the failed Omarchy archive checksum.
A successful checksum match makes the archive ready for extraction. UTM can then import the verified virtual machine bundle.
Before you run the import, where do you expect the powered-off VM to appear?
- Extract the verified archive and open its VM bundle by running these commands:
unzip omarchy-arm-utm-v2.zip
open *.utm
What do these commands do?
- The unzip command expands the verified archive into ~/Downloads.
- The open command sends the extracted .utm bundle to UTM for import.
- Confirm the imported Omarchy ARM v2 VM appears in the UTM Library with its power state off.
You should see the imported VM listed without a running desktop. You have imported the community VM without skipping its trust check.
VM missing from the UTM Library?
- Confirm the extracted .utm bundle exists in ~/Downloads.
- Keep the VM powered off if it appears in the UTM Library.
- help me troubleshoot the Omarchy VM import.
✔️ Awesome, I've got everything!
The archive passed verification. The imported Omarchy ARM v2 VM is listed in the UTM Library with its power state off.
ⓧ I'd like to double check the full code
This is the complete command sequence used in this step.
/Applications/UTM.app/Contents/MacOS/utmctl version
cd ~/Downloads
shasum -a 256 -c omarchy-arm-utm-v2.zip.sha256
unzip omarchy-arm-utm-v2.zip
open *.utm
The powered-off VM now waits in the UTM Library. Next, you will boot it into the Hyprland desktop.
Boot Omarchy and Meet the Default
Your checksum check proved that the community archive is intact. The imported Omarchy virtual machine is now waiting in UTM for its first boot.
A polished desktop can look ready before its inherited access settings are safe for personal work. This step gives you the visible win first. You will then inspect the account boundary before trusting the guest.
In this step, get ready to:
- Boot the verified VM to its themed Hyprland desktop.
- Test the Mac Option-key mapping for the menu, terminal, and keybinding list.
- Confirm the shared account and recognize its published default-credential risk.
Start the verified VM
The imported VM contains a complete ARM Linux desktop. Starting it in an attached window gives the guest access to your Mac keyboard input.
- Switch back to the UTM Library from the previous step.
- Select the imported Omarchy ARM UTM v2 entry.
- Start the selected VM from the toolbar's run control.
- Keep the VM running in its attached UTM window after the desktop loads.
You will see the themed Hyprland desktop. The guest signs in automatically.
That is your first tangible win: the verified ARM desktop is now running beside macOS.
Desktop not loading?
- Confirm that the selected Library entry is the verified Omarchy ARM UTM v2 VM.
- Keep the guest attached to its normal UTM window while it boots.
- Ask me to diagnose a VM that does not reach the Hyprland desktop.
Test the Mac Option shortcuts
The image maps the Mac Option key to the Linux SUPER modifier. This mapping lets your Mac keyboard trigger the desktop's main shortcuts.
- Click once inside the UTM window to direct keyboard input to the guest.
Before you test the mapping, which Omarchy surface do you expect each shortcut to reveal?
- Press Option+Space inside the VM.
You will see the Omarchy menu open on the desktop.
- Press Option+Return inside the VM.
You will see an Omarchy terminal open.
- Press Option+K inside the VM.
You will see the keybinding list displayed on the Hyprland desktop.
You have now proved that all three Mac Option-key shortcuts reach the expected Omarchy tools.
Option shortcuts not responding?
- Click inside the attached UTM window to return keyboard focus to the guest.
- Press the shortcut again while the Hyprland desktop is visible.
- Ask me to troubleshoot Mac Option-key shortcuts in the Omarchy ARM UTM v2 guest.
Confirm the public account
The imported desktop inherited an account from the community image. Identifying that account reveals whether this environment is ready to hold anything personal.
- Return to the Omarchy terminal from your shortcut test.
Before you check, do you think this polished desktop belongs to a personal account or to the image's shared account?
- Check the running account by running this command:
whoami
What does this command do?
The whoami command prints the name of the account running your current terminal session. It gives you a direct account check without changing the guest.
- Compare the single line of terminal output with the community image's published account name.
The terminal prints omarchy. The image documentation also publishes omarchy as this account's default password.
This is the intended shortfall: anyone who knows the image defaults also knows its credential. The running desktop is unsuitable for personal files or credentials in its current state.
- Keep personal files and credentials out of the guest while the published default password remains in place.
No username in the terminal?
- Click inside the attached VM window to return keyboard input to the guest.
- Run the account check again in the Omarchy terminal.
- Ask me to troubleshoot the account check in the running Omarchy guest.
Before the final check, which three surfaces should the Mac Option shortcuts reveal?
- Press Option+Space inside the running VM.
- Press Option+Return inside the running VM.
- Press Option+K inside the running VM.
You will see the Omarchy menu after the first shortcut.
You will see a terminal after the second shortcut.
You will see the keybinding list after the third shortcut.
Your verified Omarchy desktop is running with working Mac keyboard shortcuts. Next, you will replace the published password, confirm the firewall state, and create a recovery baseline.
Secure the Imported System
Your verified Omarchy VM is already running inside UTM on the Hyprland desktop. You have also proved its Mac keyboard shortcuts.
The published omarchy password still leaves the imported account exposed to anyone who knows the community image defaults. You need to replace it before adding personal files or credentials.
You will confirm that UFW is active in the corrected image. You will also use Snapper to mark this secured state as a recovery point.
In this step, get ready to:
- Replace the published account password with a learner-chosen strong password.
- Confirm that the guest firewall reports an active state.
- Create a named root filesystem snapshot for the secured baseline.
Replace the published password
A public default password gives anyone who knows it a path into the account. Changing it turns the shared image into your own workstation.
This password change stays inside the Omarchy guest account. Your macOS password remains untouched.
- Keep the Omarchy terminal from the previous step in focus.
- Start the password update by running this command:
passwd
What Does This Command Do?
- The passwd command changes the password for the current account.
- It checks the current password before accepting a replacement.
- It asks for the replacement twice to catch typing differences.
- Enter omarchy when the command asks for the current password.
- Enter your learner-chosen strong password when the replacement prompt appears.
- Enter the same new password again when the confirmation prompt appears.
After the second new-password entry, the command confirms that the password was updated successfully.
You have closed the most immediate risk in the imported image. The public credential no longer unlocks your account.
Password Change Not Completing?
- Confirm that you entered omarchy as the current password.
- Run passwd again if the two replacement entries did not match.
- Ask for help with the password prompts without sharing your new password: help me troubleshoot the passwd process in my Omarchy guest.
Confirm the firewall is active
UFW manages the guest firewall rules. The corrected v2 image ships with the firewall enabled.
Checking its status proves that the expected hardening survived the download and import process.
Before you run this check, predict whether the firewall will report an active state.
- Prepare to authenticate sudo with your new password if asked.
- Check the guest firewall state by running this command:
sudo ufw status
What Does This Command Check?
- The sudo command runs the firewall check with the required administrative permission.
- The ufw command reports the firewall state and its managed rules.
- An active result confirms that the corrected v2 image retained its expected firewall configuration.
You should see Status: active in the output.
That is a key hardening check complete. You have proved that the guest firewall is active.
Seeing an Inactive Firewall?
- Stop here if the status reports that the firewall is inactive.
- Confirm that the imported archive is named omarchy-arm-utm-v2.zip.
- Return to the checksum result from Step 1 to confirm that the v2 archive passed verification.
- Ask for help investigating the unexpected state: help me diagnose an inactive UFW result in the verified Omarchy ARM v2 image.
Create the secured baseline
A Snapper snapshot records the current state of the guest root filesystem on Btrfs. Naming this point gives you a clear baseline before deeper customization.
Its scope is the guest root filesystem. The full UTM bundle and data outside the snapshotted subvolume remain outside this recovery point.
Before you run these commands, predict where the baseline label will appear in the snapshot list.
- Create the secured root snapshot and list the available snapshots by running these commands:
sudo snapper create --description "secured-omarchy-baseline"
sudo snapper list
What Do These Commands Do?
- The first command creates a standalone snapshot for the default root configuration.
- The --description flag assigns the name secured-omarchy-baseline to the recovery point.
- The second command lists the snapshots so you can verify that the new baseline exists.
You should see secured-omarchy-baseline in the Description column of the snapshot list.
Baseline Missing From the List?
- Check that both commands include sudo.
- Look through the entire Description column for secured-omarchy-baseline.
- Ask for help checking the snapshot result: help me find my secured Omarchy baseline in the Snapper list.
Solid work. Your guest account now has a learner-chosen password.
The active firewall protects the guest network boundary. The named baseline gives you a root filesystem recovery point.
Your imported system now has a safer baseline for continued use. Next, you will prove that text and keyboard actions cross the Mac-to-Omarchy boundary predictably.
Enable the Mac-Integrated Workflow
Your Omarchy workstation now uses your strong password. Its active firewall remains in place.
Your Snapper baseline gives you a recovery point before deeper customization.
A local workstation becomes practical when text crosses the VM boundary predictably. This step enables UTM clipboard sharing through its attached window.
In this step, get ready to:
- Enable clipboard sharing for the powered-off VM.
- Prove two-way text sharing between macOS and Omarchy.
- Reconfirm the Mac keyboard mapping after the restart.
Enable clipboard sharing in UTM
UTM applies this sharing setting while the VM is powered off. Restarting the guest connects the new clipboard channel to its desktop session.
- Switch back to the running Omarchy VM from earlier.
- Press Option+Escape to open the system menu.
- Choose the shutdown action from the system menu.
You will see the Hyprland desktop disappear. UTM will show that the VM has stopped.
- Select the imported Omarchy ARM VM in the UTM Library.
- Open the selected VM's settings from the UTM toolbar.
The settings window now belongs to the powered-off Omarchy VM. Its hardware options are available to change.
- Select Sharing in the settings sidebar.
- Enable Share clipboard.
The clipboard setting now shows as enabled for this VM.
- Close the settings window.
- Start the imported Omarchy VM from the UTM Library.
You will see the Omarchy desktop load into its normal UTM window again.
- Leave the restarted VM open in its attached UTM window.
Why must the VM stay visible?
Two-way clipboard sharing uses an attached SPICE client. A headless start has no attached client. Keeping the guest in a normal UTM window preserves the text channel.
Can't enable clipboard sharing?
- Power off the VM again if its sharing controls are unavailable.
- Confirm that Share clipboard remains enabled after closing the settings window.
- Restart the VM after changing the setting.
- Help me troubleshoot clipboard sharing in my Omarchy UTM VM.
Prove two-way text sharing
Clipboard sharing in this image handles text only. A TextEdit document makes the return trip visible on macOS.
Before the first paste, do you expect text copied on macOS to reach the guest terminal unchanged?
- Press Cmd+Space to open Spotlight on macOS.
- Type mac-to-omarchy into the Spotlight search field.
- Press Cmd+A to select the complete string.
- Press Cmd+C to copy the selected text.
The Mac clipboard now holds the exact host-to-guest test string.
- Click the attached UTM window to return to Omarchy.
- Press Option+Return to open a guest terminal.
- Press Option+V to paste the copied text at the prompt.
You will see mac-to-omarchy at the terminal prompt. Every character should match the text you copied on macOS.
- Press Option+Return to open another guest terminal.
- Type omarchy-to-mac at the new terminal prompt.
- Drag the pointer across omarchy-to-mac to select the complete string.
- Press Option+C to copy the selected guest text.
The guest clipboard now holds the exact return string.
- Press Cmd+Space to open Spotlight on macOS.
- Type TextEdit into Spotlight.
- Press Return to open TextEdit.
- Press Cmd+N to create a blank document.
- Press Cmd+V to paste the guest text.
You will see omarchy-to-mac in TextEdit. The exact match proves that text also crosses from the guest back to macOS.
That is the VM boundary crossed in both directions. Your Mac can now exchange text with Omarchy without retyping it.
Clipboard text not crossing?
- Confirm that the VM remains open in a normal UTM window.
- Power off the VM before checking whether Share clipboard is still enabled.
- Restart the guest after correcting the sharing setting.
- Help me diagnose failed two-way text sharing.
Recheck the Mac keyboard shortcuts
Before you try the shortcuts again, do you expect restarting the VM to preserve its Mac keyboard mapping?
- Return to the attached UTM window.
- Press Option+Space.
You will see the Omarchy menu open from the Mac keyboard.
- Press Option+Return.
You will see a new Omarchy terminal open.
- Press Option+K.
You will see the Omarchy keybinding list. This confirms that the Mac keyboard mapping still works after the clipboard restart.
That completes the host integration check. Your secured Omarchy VM now handles Mac shortcuts predictably.
Secret mission
Add a Reversible Retina Display Mode
Test a Retina-sharp Omarchy desktop at 3840x2400 with scale 2. Then prove the 1920x1200 rollback before keeping the mode that gives you the best balance of clarity and responsiveness.
Clean Up Your Resources
Clean Up Your Resources
Your Omarchy workstation runs locally in UTM. Both the app and community image cost $0.
The VM's sparse disk can grow toward its configured 80 GB cap as you install software. Choose whether to keep the workstation, pause it for later, or delete it entirely.
Resources you used:
- The imported Omarchy ARM v2 VM in the UTM Library.
- The secured-omarchy-baseline root snapshot managed by Snapper inside the guest.
- The verified ~/Downloads/omarchy-arm-utm-v2.zip archive.
- The published ~/Downloads/omarchy-arm-utm-v2.zip.sha256 checksum file.
Keep everything running
No deletion is needed. Choose this if you plan to keep using the secured Omarchy workstation.
- Shut down the guest normally from the desktop when you finish using it.
- Keep the imported Omarchy ARM v2 VM in the UTM Library.
- Keep the secured-omarchy-baseline snapshot inside the guest.
The imported VM no longer depends on the downloaded ZIP. Moving the ZIP to Trash leaves the VM and Snapper baseline intact.
- Open ~/Downloads in the macOS file browser.
- Move omarchy-arm-utm-v2.zip to Trash.
- Review the contents of Trash before clearing it.
- Empty Trash when you are ready to reclaim the archive's disk space.
- Confirm that omarchy-arm-utm-v2.zip is no longer present in ~/Downloads.
Pause - I'll come back to this later
Shutting down the guest frees its active memory. The imported VM and secured baseline remain available for your next session.
- Shut down the running guest normally from the desktop.
- Confirm that the attached VM window closes.
- Keep the imported Omarchy ARM v2 VM in the UTM Library.
- Keep the secured-omarchy-baseline snapshot inside the powered-off guest.
- Start the VM from the UTM Library when you are ready to continue.
Delete - I don't want to use this again
This option returns your Mac to a clean project state. Deleting the VM is permanent.
Anything stored only inside the guest disappears with it. Take a moment to confirm that you do not need any guest-only work.
- Shut down the guest normally from the desktop.
- Return to the UTM Library after the guest shuts down.
- Select the imported Omarchy ARM v2 VM in the UTM Library.
- Use the VM removal control in the UTM Library to remove the selected VM.
- Approve the removal if UTM asks for confirmation.
- Confirm that the Omarchy ARM v2 VM no longer appears in the UTM Library.
What Happens to the Baseline?
The secured-omarchy-baseline snapshot lives inside the guest's root filesystem. Removing the imported VM removes that snapshot with the rest of the guest data.
The downloaded archive and checksum file remain separate from the imported VM. Removing both files completes the host cleanup.
- Open ~/Downloads in the macOS file browser.
- Move omarchy-arm-utm-v2.zip to Trash.
- Move omarchy-arm-utm-v2.zip.sha256 to Trash.
- Review the contents of Trash before clearing it.
- Empty Trash when you are ready to reclaim the downloaded files' disk space.
- Confirm that both files are no longer present in ~/Downloads.
Nice Work!
Nice Work!
Mission accomplished! You now have a checksum-verified Omarchy 4 virtual machine running beside macOS in an attached UTM window.
You've learned how to:
- Verified the corrected ARM64 community image against its published checksum. Imported the trusted virtual machine into UTM. Booted the Hyprland desktop without modifying macOS.
- Replaced the public default password with a learner-chosen strong password. Confirmed the UFW firewall reports an active state. Created the secured-omarchy-baseline Snapper root snapshot before deeper customization.
- Confirmed Option+Space opens the Omarchy menu. Confirmed Option+Return opens a terminal. Confirmed Option+K opens the keybinding list. Proved two-way text clipboard sharing between macOS and Omarchy.
- Secret Mission: Tested Retina mode at 3840x2400 with scale 2. Confirmed the default mode returned the desktop to 1920x1200. Retained the preferred display mode with a tested one-command rollback ready.
Ready to quiz yourself?