What Wayland Compositor Does Omarchy Use?

Omarchy uses Hyprland, a modern, dynamic tiling Wayland compositor and window manager, as the foundation of its desktop environment.

The Omarchy project explicitly declares Hyprland as its compositor in official documentation, and the entire repository is structured around Hyprland-specific configuration, utilities, and launch mechanisms. This article examines how Omarchy integrates with Hyprland at the source code level.


Hyprland as Omarchy's Declared Compositor

According to the omacom/omarchy source code, Hyprland is formally designated as the "Wayland compositor/WM" in the project's skill definition.

In default/agents/skills/omarchy/SKILL.md, the documentation states:

Omarchy is a desktop environment built on Hyprland, a modern Wayland compositor/WM.

This declaration appears early in the skill file (lines 7-8), establishing Hyprland as a core dependency and architectural choice for the entire desktop experience.

The same documentation further specifies that Hyprland configuration files are expected at ~/.config/hypr/ and are populated from the repository's default/hypr/ directory (lines 103-105). This creates a clear path from the repository's default configuration to the user's live environment.


Hyprland Configuration Structure in the Repository

The Omarchy repository contains a dedicated default/hypr/ hierarchy that houses the complete Hyprland configuration.

This directory includes:

  • Lua configuration files for window rules, animations, and layout behaviors
  • Theme definitions that integrate with Omarchy's visual design system
  • Helper scripts that extend Hyprland's native capabilities

By maintaining configuration in the repository rather than treating Hyprland as an external black box, Omarchy achieves tight integration between the compositor and the broader desktop environment.


Hyprland Integration in Omarchy's Launch and Runtime Tools

Omarchy provides several shell utilities that directly interface with Hyprland. These tools demonstrate deep integration at the implementation level.

Shell Launch Wrapper

The omarchy-launch-shell script in bin/omarchy-launch-shell (lines 35-37) handles session initialization and ensures Hyprland is available before proceeding. This wrapper abstracts the complexity of starting a Hyprland-based session behind a single command.

Safe Configuration Reloading

The omarchy-hyprland-reload-guard utility manages Hyprland's live configuration reloading. This is critical during Omarchy updates to prevent partial configuration states from causing visual glitches or crashes.

Typical usage from the codebase:


# Pause live reloads before making changes

omarchy-hyprland-reload-guard pause

# Apply updates to configuration files

# ...

# Resume normal operation

omarchy-hyprland-reload-guard resume

Hyprctl Queries for System Information

Omarchy utilities frequently query Hyprland's state through hyprctl, Hyprland's control interface. A common pattern extracts display information:


# Query monitor configuration as JSON

hyprctl -j monitors | jq '.[] | .name, .width, .height'

This approach allows Omarchy's shell components to adapt dynamically to display topology changes without restarting the session.


Hyprland Socket Dependency in Testing

The test suite in test/shell.d/runtime-smoke-test.sh (lines 20-29) requires a running Hyprland instance and validates connectivity through its socket. This confirms that Hyprland is not merely a launch-time dependency but an ongoing runtime requirement for full Omarchy functionality.

Tests that fail when Hyprland is unreachable demonstrate that the compositor is integral to Omarchy's operation rather than an interchangeable backend.


Why Hyprland Was Selected for Omarchy

While the source code does not explicitly document the rationale, the technical implementation reveals several likely factors:

  • Modern protocol support: Hyprland implements recent Wayland protocols that enable advanced features Omarchy leverages
  • Declarative configuration: Hyprland's configuration syntax aligns with Omarchy's philosophy of explicit, version-controlled desktop settings
  • Extensibility through hyprctl: The IPC interface allows Omarchy's shell scripts to query and modify compositor state programmatically
  • Active development: Hyprland's rapid evolution matches Omarchy's own development velocity

Summary

  • Omarchy uses Hyprland as its exclusive Wayland compositor, formally declared in default/agents/skills/omarchy/SKILL.md
  • The default/hypr/ directory contains the complete Hyprland configuration hierarchy deployed to ~/.config/hypr/
  • omarchy-launch-shell and omarchy-hyprland-reload-guard provide safe session management and configuration updates
  • hyprctl serves as the primary interface for runtime introspection and control
  • The test suite validates Hyprland connectivity as a runtime requirement

Frequently Asked Questions

Can Omarchy run with a different Wayland compositor?

No. The Omarchy source code contains hard dependencies on Hyprland-specific features, file paths, and the hyprctl command. Replacing Hyprland would require significant modifications to the launch scripts, configuration system, and runtime utilities.

Where is Hyprland configured in an Omarchy installation?

Configuration lives at ~/.config/hypr/ on the local system, populated from default/hypr/ in the Omarchy repository. This includes Lua configs, themes, and helper scripts that define the desktop behavior.

How does Omarchy safely update Hyprland configuration?

Through the omarchy-hyprland-reload-guard utility, which pauses Hyprland's live reload mechanism during updates and resumes it atomically once changes are complete. This prevents intermediate configuration states from affecting the user experience.

What Hyprland version does Omarchy require?

The source code does not specify a minimum version in the analyzed files. Users should consult the project's current documentation or package declarations for version constraints, as Hyprland's rapid development may introduce breaking changes.

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:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →