know.2nth.ai › Tech › Omarchy on a Mac
tech · Platform & desktop

An old Mac, rebuilt as a desktop your AI agent can edit.

Apple's current macOS runs on just four Intel Macs. Every other Intel MacBook, iMac and Mac mini is already off the current release. Omarchy is a free Linux desktop that installs on those machines in place of macOS, and it is built so that an AI coding agent can change it for you: press a key, say what you want, and see the change live. This page covers what that means for a business, what you give up, which Macs work, and — for the developers — exactly how the agent gets its hands on the system. The workstation leaf makes the broader case; this one is the practical tour.

Intel Macs 2013–2020 Omarchy 4 Hyprland · Lua Agent at a keypress Replaces macOS

A second life for Macs Apple has stopped updating.

Omarchy came out of 37signals, the company behind Basecamp and HEY. It's a complete, opinionated desktop on Arch Linux: a tiling window manager, a launcher, themes, and a curated set of apps. On a Mac it replaces macOS entirely.

For the business

Hardware you already own

Intel Macs from 2013 to 2020 that no longer get macOS feature updates become fast, current developer machines. The Omarchy team measured a 36% performance gain on a 2019 MacBook Pro just by switching. No licence cost.

For the user

Describe the change, see it happen

One keypress opens your AI coding agent with permission to change the desktop. “Move the clock left,” “bind the screenshot tool to F13,” “make it darker after sunset” — and the screen updates as it saves.

For the developer

The whole desktop is text

Every setting is a readable Lua or shell file, the system and your changes live in separate folders, and your folder can go into Git. Rebuilding a machine becomes a clone and an afternoon.

What you give up

macOS goes. Omarchy only supports being the sole operating system; the install wipes the drive. You can restore macOS later through Apple's Internet Recovery, but there is no dual boot. Apple's Secure Boot goes off, which removes the T2 chip's boot protection. And anything tied to macOS — Apple's MDM, iMessage, Final Cut, Microsoft Office desktop apps — stays behind. This is a developer workstation, not a drop-in replacement for a general staff laptop.

Intel Macs, yes. Apple Silicon, not yet.

The installer detects Mac hardware and applies the fixes each generation needs. What works depends on the security chip in the machine.

MacStatusWhat the installer does
T2 Macs (2018–2020: MacBook Pro, MacBook Air, Mac mini, iMac 2020, iMac Pro)SupportedInstalls a patched linux-t2 kernel, T2 audio config, Apple's Broadcom Wi-Fi and Bluetooth firmware, and fan control (t2fanrd). Touch Bar runs on built-in support.
Older Intel Macs (2013–2017)SupportedBroadcom Wi-Fi drivers and firmware, plus the SPI keyboard driver and an NVMe suspend fix on the MacBooks that need them.
T1 MacBook Pros (2016 Touch Bar models)Works, with gapsTouch Bar and sound don't work.
Apple Silicon (M-series)Not directly supportedThe code already names an aarch64-apple platform and separate omarchy-mac packages, but the manual says M-series installs aren't supported yet.

Getting there takes four steps. Boot into Recovery (hold Cmd-R), open Startup Security Utility, set Secure Boot to “No Security” and allow external boot media. Then restart holding Option, pick the orange EFI Boot drive, and run the normal installer.

Two details developers will appreciate. On T2 Macs the Wi-Fi firmware is only legally available from Apple, so the installer copies it off the Mac's own macOS volume — which means a machine that's already been wiped has to get the firmware from a macOS copy or a recovery image instead. And Broadcom's firmware fumbles the Wi-Fi handshake on networks in WPA2/WPA3 transition mode, so the installer hands the handshake back to software; the symptom it fixes is a correct password being rejected.

Apple displays work too. On a Studio Display or Pro Display XDR, the keyboard brightness keys adjust the monitor when it has focus.

The system's files, your files, and the commands between them.

Under the themes and the launcher, Omarchy has a simple shape: one folder it owns and replaces on every update, one folder you own that updates leave alone, and a few hundred small commands joining them. That split is what makes it safe to let an agent loose — the agent edits your folder, never the system's.

Omarchy owns

/usr/share/omarchy

Installed as the omarchy package. Default Hyprland config in Lua, the shell, about two dozen themes, a hundred-odd dated migrations, the agent skills, and every omarchy-* command. Updates replace it wholesale.

You own

~/.config

Your hypr/*.lua overrides, omarchy/ hooks, themes, menu extensions, plugins and which agent you use. Nothing in an update writes here except a migration.

The glue

omarchy-* commands

Roughly 440 bash and Python scripts on the path in 4.0. The biggest families install apps, set themes, handle hardware and launch things. Every keybinding and menu item ends up calling one.

The face

omarchy-shell

One Quickshell (QML) process draws the bar, launcher, menus, notifications and lock screen. It also hosts the agents panel that shows your AI usage.

Your settings load last, so they win.

Start at the package and follow the arrows. The main row is what runs when you press a key; above it is where the code comes from; below it is what happens afterwards.

Interactive: pan, zoom, trace. Open full screen ↗

The load order is the design. ~/.config/hypr/hyprland.lua loads Omarchy's bootstrap and defaults first, then your monitors, input, bindings, looknfeel and autostart files. Omarchy can improve its defaults on every update without touching your files, and anything you set overrides them. One flag, omarchy_default_bindings = false, switches off every default keybinding.

Changes are live the moment they're saved. Hyprland 0.56 is configured in Lua, and the bootstrap clears its own modules from Lua's cache on reload — no logout, no restart. That's what makes the agent loop feel instant.

Themes are templates; events have hooks. Setting a theme renders .tpl files with its colours, restyles the shell and apps, then runs anything you've put in ~/.config/omarchy/hooks/theme-set.d/. The same mechanism covers boot, updates, font changes and low battery.

Updates are packages plus migrations. omarchy-update installs the new package, then runs any dated migration scripts that haven't run yet. Migrations are the one place Omarchy deliberately reaches into your folder.

Press a key, describe the change, watch it land.

This is what makes Omarchy 4 agent-driven rather than merely agent-friendly. Each step is a short script you can read — and reading them is the best way to understand what you've agreed to.

Interactive: pan, zoom, trace. Open full screen ↗

  1. You choose your agent once. omarchy default agent claude saves the choice. Omarchy ships without a default; until you pick one, the keybinding opens a picker.
  2. The launcher pre-approves it. omarchy agent starts the agent with its own “don't stop to ask” flag: claude --permission-mode auto, gemini --yolo, copilot --allow-all, opencode --auto and so on. The reasoning, in the script's own comment: an agent launched from a keybinding runs unattended.
  3. It starts in a work folder. If ~/Work exists, the launcher moves there first, because agents won't remember trust for your home folder.
  4. Skills tell it the rules. Two agent skills ship with Omarchy — omarchy (Hyprland, theming, hooks, plugins) and diagnose-crash — and are linked into the agent's skills folder. The agent arrives knowing that edits go in ~/.config, never in the system folder.
  5. It edits; the desktop reloads. The agent saves a Lua file, Hyprland picks it up, and you see the result. No approval step anywhere in the loop.
  6. Crashes and spend use the same machinery. omarchy agent crash <pid> collects the crash details and briefs the agent through the crash skill. The shell's agents panel shows usage and rate limits for your chosen agent.

One correction to the launch coverage. Omarchy 4 was pitched as offering your agent the details whenever an app crashes. As of 4.0.4, the command and skill exist but nothing triggers them automatically. Treat crash triage as a command you run, not a pop-up you can count on.

A routing table for you and your agent.

Most Omarchy breakage comes from an edit in the wrong place — whoever made it. This is the list worth pinning.

You want to changeEditNever
Keybindings~/.config/hypr/bindings.luadefault/hypr/bindings/*
Monitors, input, gaps, animations~/.config/hypr/{monitors,input,looknfeel}.luaThe bootstrap or omarchy.lua
Startup apps~/.config/hypr/autostart.luasystemd units Omarchy owns
React to theme, font, boot or update~/.config/omarchy/hooks/<event>.d/Patching omarchy-theme-set
Menu entries~/.config/omarchy/extensions/omarchy-menu.jsoncThe shell QML
Bar widgetsA plugin via omarchy plugin add/usr/share/omarchy/shell
Theme colours for another app~/.config/omarchy/themed/*.tplThe generated output files
Which agent launchesomarchy default agent <name>Editing omarchy-agent

A sign it's working: after a few weeks of agent changes you'll find bindings.lua.bak.<timestamp> files next to the real ones. The agent backs up before it writes. That's good manners, not version control — put ~/.config in Git.

Who should do this — and when to let the agent drive.

A good fit

  • Developers who live in a terminal, a browser and an editor
  • A cupboard of 2018–2020 Intel MacBooks that Apple no longer updates
  • Teams that want every workstation rebuilt from one Git repo
  • People curious to run their desktop through an AI agent

Let the agent drive when

  • ~/.config is in Git and you commit before each session
  • The change is cosmetic or easy to undo: bindings, gaps, themes, widgets
  • You're diagnosing, not changing — crash triage, for example
  • The machine is yours and nobody depends on it being up

Imported hardware, dollar meters, capped data.

Old Macs are expensive to replace here. A new MacBook carries import duty and the exchange rate on top of Apple's price. Turning a 2019 MacBook Pro that Apple has stopped updating into a current developer machine defers that spend by years, and keeps a working laptop out of landfill.

The meter in the bar is in dollars. The agents panel sits next to the battery for a reason: every “make my bar look nicer” session draws on a subscription billed in USD. Once you know which file to open (section 06), small changes are cheaper by hand.

Rolling updates on capped data. Updates are package downloads plus migrations. On LTE, update deliberately rather than whenever the indicator nags; with several machines, run a local package mirror.

Your config repo is also your recovery plan. If the Omarchy layer is text in Git, rebuilding after a theft or a dead SSD takes an afternoon rather than a week.

Where this links in the tree.

Primary sources.

Paths and behaviour checked against Omarchy 4.0 (4.0.4, Hyprland 0.56, Quickshell 0.3) and the project source in October 2026. Counts move between releases; re-check after a major update.