Omarchy System Defaults Location: Where Configuration Files Are Stored and How to Refresh Them

Omarchy system defaults are stored in the default/ directory at the repository root, which serves as the source of truth for all configuration files copied to user home directories via the omarchy-refresh-config command.

Omarchy uses a refresh-based configuration model where built-in defaults live in version control and are selectively copied into ~/.config/ only when invoked. This design keeps the repository as the authoritative baseline while giving users full control over which defaults they adopt. Understanding where Omarchy system defaults are located is essential for customizing your desktop environment without losing the ability to revert to known-good configurations.

The default/ Directory Structure

The default/ folder at the repository root contains reference implementations for every configurable Omarchy component. When you run omarchy-refresh-config, the tool resolves paths relative to $OMARCHY_PATH and copies files into your user configuration tree.

Core Subdirectories

  • default/hypr/ — Hyprland window manager configuration written in Lua, including layouts, bindings, appearance, and runtime helpers
  • default/omarchy/ — Core Omarchy assets such as menu definitions and launcher configurations
  • default/systemd/ — Systemd unit overrides and sleep-hook scripts for shutdown behavior, zram settings, and hardware wake handling
  • default/uwsm/ — UW-SM session manager integration files with environment variable bootstrapping
  • default/fonts/omarchy/ — The bundled Omarchy icon font used by UI components

Key Default Configuration Files

These specific files represent the most commonly referenced Omarchy system defaults:

File Path Purpose
default/hypr/omarchy.lua Central Hyprland configuration that loads other defaults
default/hypr/bindings.lua Default key-binding definitions for the window manager
default/omarchy/omarchy-menu.jsonc Menu schema powering the Omarchy desktop UI
default/systemd/faster-shutdown.conf Systemd override reducing shutdown timeouts
default/fonts/omarchy/omarchy.ttf Icon font for Omarchy interface elements
default/uwsm/env.d/10-omarchy Environment bootstrap for UW-SM sessions
default/chromium/native-messaging-hosts/com.omarchy.copy_url.json Chromium extension host registration
default/xdg-terminal-exec/hyprland-xdg-terminals.list Terminal emulator list for XDG integration
default/systemd/user@.service.d/faster-shutdown.conf Per-user systemd service override

Refreshing Defaults with omarchy-refresh-config

The omarchy-refresh-config command copies files from default/ to your user configuration while backing up existing files. This is the primary mechanism for adopting or resetting Omarchy system defaults.

Common Refresh Commands


# Copy Hyprland default configuration to ~/.config/hypr/hyprland.lua

omarchy-refresh-config hypr/hyprland.lua

# Refresh the Omarchy menu definition

omarchy-refresh-config omarchy/omarchy-menu.jsonc

# Refresh all defaults under the systemd subtree

omarchy-refresh-config systemd/

Each command performs three operations:

  1. Locates the source file under default/ relative to $OMARCHY_PATH
  2. Creates a backup of any existing user file at the destination
  3. Copies the default into the appropriate ~/.config/ subdirectory

How Omarchy Resolves Default Paths

The refresh mechanism uses $OMARCHY_PATH to locate the repository root, then constructs source paths by prepending default/ to your argument. For example:

omarchy-refresh-config hypr/omarchy.lua

# Reads from: $OMARCHY_PATH/default/hypr/omarchy.lua

# Writes to:  ~/.config/hypr/omarchy.lua

This resolution happens consistently across all Omarchy subsystems, ensuring that the default/ directory remains the single source of truth for system-wide configuration baselines.

Customizing Without Losing Defaults

Because Omarchy only copies files when explicitly refreshed, you can safely edit user configurations without repository conflicts. To revert a customized file to its original state:


# Restore a single file to its default

omarchy-refresh-config hypr/bindings.lua

# Backup is automatically created as: ~/.config/hypr/bindings.lua.backup

This workflow lets you experiment freely while maintaining an escape hatch to known-good configurations.

Summary

  • Omarchy system defaults are located in the default/ directory at the repository root
  • The omarchy-refresh-config command copies defaults into ~/.config/ on demand
  • default/hypr/ contains Hyprland Lua configurations; default/omarchy/ holds core UI assets
  • default/systemd/ and default/uwsm/ manage system services and session initialization
  • Files are only overwritten when you explicitly refresh, making customization safe

Frequently Asked Questions

Where is the main Hyprland configuration stored in Omarchy?

The primary Hyprland configuration is default/hypr/omarchy.lua. This file serves as the entry point that loads other Hyprland defaults including bindings, appearance settings, and runtime helpers. Refresh it with omarchy-refresh-config hypr/omarchy.lua to deploy the latest window manager defaults.

What happens to my existing config when I run omarchy-refresh-config?

Omarchy automatically creates a .backup suffix copy of any existing user file before overwriting it. This preserves your customizations and allows manual restoration if needed. The backup is created in the same ~/.config/ subdirectory as the target file.

Can I refresh multiple defaults at once?

Yes. Pass a directory path to omarchy-refresh-config to recursively process all files under that subtree. For example, omarchy-refresh-config systemd/ refreshes all systemd overrides, sleep hooks, and service configurations in a single operation.

How do I inspect defaults without installing them?

Browse the default/ directory directly in the Omarchy repository. All files are plain text (Lua, JSONC, or systemd unit files) viewable in any editor or on GitHub. This lets you review configurations before deciding whether to adopt them via refresh.

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 →