# How to Reorder Omarchy Status Bar Plugins: Complete Configuration Guide

> Easily reorder Omarchy status bar plugins using shell.json configuration or the omarchy bar CLI. Get instant updates without restarting. Learn how to customize your status bar now.

- Repository: [Omacom/omarchy](https://github.com/omacom/omarchy)
- Tags: how-to-guide
- Published: 2026-08-31

---

**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](https://github.com/omacom/omarchy).

## Understanding the Bar Layout Configuration

The Omarchy status bar is divided into three horizontal sections defined in [`shell.json`](https://github.com/omacom/omarchy/blob/main/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/main/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

```bash

# 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

```bash
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)

```bash
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`](https://github.com/omacom/omarchy/blob/quattro/bin/omarchy) source, these commands wrap the same file operations.

### Move a Widget Interactively

```bash

# Launch interactive mover for the clock widget

omarchy bar move omarchy.clock

```

The tool prompts for target section and position, then updates [`shell.json`](https://github.com/omacom/omarchy/blob/main/shell.json) automatically.

### Other Available Commands

```bash

# 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/main/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`](https://github.com/omacom/omarchy/blob/main/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/main/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)

```bash
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/main/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`](https://github.com/omacom/omarchy/blob/main/BarModel.js) with CLI entry points in `bin/omarchy`

## Frequently Asked Questions

### Does reordering require restarting Omarchy?

No. The bar watches [`shell.json`](https://github.com/omacom/omarchy/blob/main/shell.json) and reloads automatically when you save changes. You can verify this behavior in [[`BarModel.js`](https://github.com/omacom/omarchy/blob/main/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/main/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`](https://github.com/omacom/omarchy/blob/main/shell.json).