How to Build Omarchy from the Repository: Complete Source Compilation Guide
To build Omarchy from the repository, clone the omacom/omarchy source, install the Arch Linux dependencies listed in install/omarchy-base.packages, run ./bin/omarchy-install-dev-env to bootstrap Rust, Node, Python, and OCaml toolchains, then build the PKGBUILDs from the companion omarchy-pkgs repository using makepkg -si.
Omarchy is an Arch Linux-centric desktop configuration framework that compiles into a pair of Arch packages. Building Omarchy from the repository requires compiling Rust binaries, bundling QML-based UI components from shell/shell.qml, and packaging configuration templates. This guide walks through the complete build process using the actual source files from the quattro branch.
Repository Structure and Build Components
Understanding the repository layout is essential before compiling. The omacom/omarchy repository contains the source code, while the packaging definitions reside in a separate repository.
Core Source Layout
The root directory contains the following key components:
bin/– Build helpers and installation scripts, includingbin/omarchy-install-dev-envandbin/omarchy-upgrade-to-quattroshell/– The Quickshell UI written in QML and JavaScript, withshell/shell.qmlserving as the main entry pointconfig/– Default user configuration templates that are copied to~/.config/omarchy/during setupinstall/omarchy-base.packages– A manifest listing all required Arch Linux system dependenciesmigrations/– Version-specific upgrade scripts (e.g.,migrations/1788848726.sh) invoked during major updates
Package Architecture
The actual Arch packages are defined in the companion omarchy-pkgs repository. The main source tree maintains the runtime dependency list in install/omarchy-base.packages, while the PKGBUILD files handle the compilation of Rust code and the bundling of the Quickshell interface.
Step-by-Step Build Instructions
Follow these steps to compile Omarchy from the source code on a fresh Arch Linux system.
1. Clone the Repository and Checkout the Correct Branch
Begin by cloning the source and switching to the active development branch:
git clone https://github.com/omacom/omarchy.git
cd omarchy
git checkout quattro
2. Install System Dependencies
Omarchy requires base Arch packages including Qt 6, multimedia libraries, and systemd utilities. Install them directly from the provided package list:
sudo pacman -S --needed $(cat install/omarchy-base.packages)
3. Bootstrap the Development Environment
Execute the environment installer to set up the language toolchains required for compilation:
./bin/omarchy-install-dev-env
According to the source code, this script installs:
- Rust (
rustupandcargo) – Used for compiling theomarchybinary - Node (
npm) – Required for Quickshell bar plugins - Python (
uv) – Powers the build helpers and test suite - OCaml (
opam) – Needed for optional system agents
4. Fetch the PKGBUILD Definitions
The packaging files are stored separately from the main source. Clone the omarchy-pkgs repository adjacent to your source tree:
cd ..
git clone https://github.com/omacom/omarchy-pkgs.git
cd omarchy-pkgs
# Checkout the matching tag or commit for the quattro branch
git checkout <matching-tag>
5. Build and Install the Packages
Compile both the runtime and development packages using makepkg:
cd omarchy
makepkg -si # Builds and installs omarchy (runtime)
cd ../omarchy-dev
makepkg -si # Builds and installs omarchy-dev (optional tooling)
The makepkg process automatically invokes the build scripts defined in the PKGBUILD, which compile the Rust binary, bundle the QML UI, and install all configuration files under /usr/share/omarchy/.
6. Initialize User Configuration
After package installation, populate your home directory with the default configuration files:
omarchy-refresh-config omarchy/shell.json
omarchy-refresh-config omarchy/menu.json
This command copies templates from /usr/share/omarchy/config/ to ~/.config/omarchy/.
7. Launch and Verify the Build
Start the Quickshell UI to confirm the build succeeded:
omarchy-shell
To run the automated verification suite located in the source tree:
./test/all
Handling Version Upgrades
If you are upgrading from an older Omarchy version, the repository includes migration logic in migrations/. The helper script bin/omarchy-upgrade-to-quattro executes these migration scripts sequentially to transition your configuration safely from legacy versions to the current quattro release.
Summary
- Omarchy is built from the
omacom/omarchyrepository using Arch Linux PKGBUILDs defined in a companion repository. - System dependencies are defined in
install/omarchy-base.packagesand must be installed before compilation. - Toolchains including Rust, Node, Python, and OCaml are bootstrapped via
./bin/omarchy-install-dev-env. - Compilation occurs through
makepkg -siin theomarchy-pkgsdirectory, producing installable Arch packages. - Configuration is initialized using
omarchy-refresh-configto copy templates from/usr/share/omarchy/to your home directory.
Frequently Asked Questions
What is the difference between the main omarchy repository and omarchy-pkgs?
The omacom/omarchy repository contains the source code, scripts, and configuration templates, while omacom/omarchy-pkgs contains the PKGBUILD files that define how to compile and package that source into installable Arch Linux packages. You need both to build from source.
Which programming languages are required to build Omarchy?
You need Rust for the core binary, Node.js for Quickshell UI plugins, Python for build helpers and testing, and optionally OCaml for certain system agents. The ./bin/omarchy-install-dev-env script automates the installation of these toolchains.
How do I upgrade my Omarchy installation after building from source?
Run the upgrade helper script bin/omarchy-upgrade-to-quattro from the updated source tree. This script executes migration scripts stored in migrations/ to transition your configuration and system state to the new version.
Where are the default configuration files stored after installation?
Default templates reside in /usr/share/omarchy/config/ as installed by the PKGBUILD. The omarchy-refresh-config utility copies these to ~/.config/omarchy/ where user modifications should be made.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →