How to Reorder Omarchy Status Bar Plugins: Complete Configuration Guide

Reorder Omarchy status bar plugins by editing the bar.layout arrays in ~/.config/omarchy/shell.json or using the omarchy bar CLI commands—changes apply instantly without restarting.

The order of widgets displayed in the Omarchy status bar is controlled through a simple JSON configuration system. Whether you prefer direct file editing or command-line convenience, Omarchy provides multiple paths to rearrange your bar layout. This guide covers both approaches using the official codebase from github.com/omacom/omarchy.

Understanding the Bar Layout Configuration

The Omarchy status bar is divided into three horizontal sections defined in shell.json:

  • left — widgets aligned to the left edge
  • center — widgets centered on the bar
  • right — widgets aligned to the right edge

Each section contains an array of objects with an id field identifying the plugin. The array order determines visual placement.

Default configuration lives at [config/omarchy/shell.json](https://github.com/omacom/omarchy/blob/quattro/config/omarchy/shell.json). Omarchy falls back to this file when no user config exists at ~/.config/omarchy/shell.json.

Method 1: Edit shell.json Directly

Locate or Create Your Configuration


# Open your personal shell.json (creates from template if missing)

omarchy edit-shell

This launches $EDITOR targeting ~/.config/omarchy/shell.json.

Example: Move Clock from Center to Right

jq '
  .bar.layout.center |= map(select(.id != "omarchy.clock")) |
  .bar.layout.right  |= . + [{ "id": "omarchy.clock" }]
' "$HOME/.config/omarchy/shell.json" >"$HOME/.config/omarchy/shell.json.tmp" &&
mv "$HOME/.config/omarchy/shell.json.tmp" "$HOME/.config/omarchy/shell.json"

Example: Reorder Left Section (Menu After Workspaces)

jq '
  .bar.layout.left |= [
    { "id": "omarchy.workspaces" },
    { "id": "omarchy.menu" }
  ]
' "$HOME/.config/omarchy/shell.json" >"$HOME/.config/omarchy/shell.json.tmp" &&
mv "$HOME/.config/omarchy/shell.json.tmp" "$HOME/.config/omarchy/shell.json"

Method 2: Use the omarchy bar CLI

The omarchy bar subcommands provide an interactive alternative to manual JSON manipulation. According to the bin/omarchy source, these commands wrap the same file operations.

Move a Widget Interactively


# Launch interactive mover for the clock widget

omarchy bar move omarchy.clock

The tool prompts for target section and position, then updates shell.json automatically.

Other Available Commands


# Add a new widget to a specific section

omarchy bar add <widget-id> <section> [position]

# Remove a widget entirely

omarchy bar remove <widget-id>

# Set explicit order for a section

omarchy bar set left workspace menu spacer

Full command reference is documented in [shell/plugins/bar/README.md](https://github.com/omacom/omarchy/blob/quattro/shell/plugins/bar/README.md).

How Runtime Reloading Works

Omarchy monitors shell.json for changes via its Quickshell-based architecture. When you save the file:

  1. The filesystem watcher in the bar plugin detects the modification
  2. [BarModel.js](https://github.com/omacom/omarchy/blob/quattro/shell/plugins/bar/BarModel.js) re-parses the bar.layout arrays
  3. The visual bar rebuilds with new widget ordering

No manual restart required—reordering Omarchy status bar plugins happens in real time.

Force Reload (Optional)

omarchy reload

Use only if automatic detection fails.

Common Widget IDs for Reordering

Widget ID Typical Default Position Purpose
omarchy.workspaces left Desktop workspace switcher
omarchy.menu left Application launcher
omarchy.window center Active window title
omarchy.clock center or right Date/time display
omarchy.tray right System tray icons
omarchy.battery right Power status
omarchy.network right Connection status
omarchy.volume right Audio controls

Find complete lists in the default [shell.json](https://github.com/omacom/omarchy/blob/quattro/config/omarchy/shell.json).

Summary

  • Primary method: Edit ~/.config/omarchy/shell.json and rearrange objects in bar.layout.left, bar.layout.center, or bar.layout.right
  • CLI alternative: Use omarchy bar move, add, remove, or set commands for guided editing
  • Instant apply: Changes reload automatically; no bar restart needed
  • Source authority: Implementation resides in BarModel.js with CLI entry points in bin/omarchy

Frequently Asked Questions

Does reordering require restarting Omarchy?

No. The bar watches shell.json and reloads automatically when you save changes. You can verify this behavior in [BarModel.js](https://github.com/omacom/omarchy/blob/quattro/shell/plugins/bar/BarModel.js), which handles runtime layout reconstruction.

Where is the default bar layout defined?

The fallback configuration is hardcoded at [config/omarchy/shell.json](https://github.com/omacom/omarchy/blob/quattro/config/omarchy/shell.json). Omarchy copies this to ~/.config/omarchy/shell.json on first run if no user config exists.

Can I place the same widget in multiple bar sections?

Technically yes—each array is independent. However, most widgets assume single-instance operation. Test thoroughly if duplicating IDs across left, center, and right arrays.

What happens if I delete a widget ID from all sections?

The widget simply won't render. The bar skips missing IDs gracefully. Restore it by adding the object back to any section array, or reset to defaults by removing your custom shell.json.

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 →