Skip to content
omarchyFIELD GUIDE
PRACTICAL KNOWLEDGE / FIELD GUIDE

Customize the bar layout and text without losing your settings

Build a compact Omarchy Shell bar, understand layout and appearance overrides, and restore your previous setup.

Based on public documentation; not hardware-tested. Match the instructions to your version and hardware.

Suppose the clock is too long, the text is small, and the bar feels crowded on your laptop. The goal here is a shorter clock, a deliberate widget order, and larger shell text without automatically making the horizontal bar taller. Change those separately so you can tell which adjustment helped.

These examples target the built-in Omarchy Shell bar in the pinned source, not Waybar. Check omarchy version, omarchy bar --help, and omarchy plugin list first. If your installation uses Waybar or lacks these commands, use its matching documentation rather than creating files from this tutorial. The source version is a development baseline, not a compatibility promise for every 4.x installation.

1. Layout and appearance answer different questions

Section titled “1. Layout and appearance answer different questions”
shell.json → which bar and widgets run, their order and settings
active theme/shell.toml → the theme's colors, spacing and sizes
personal shell.toml → local appearance overrides above the theme
Omarchy Shell → renders the bar and its panels
Goal Control What it changes
Move the bar or a widget omarchy bar / shell.json Placement
Change the clock format The clock’s own setting Text content
Enable a widget Plugin commands Presence in the layout
Enlarge shell text Personal shell.toml, [font] Shell typography
Keep a fixed bar height Personal shell.toml, [bar] Bar sizing policy
Change palette Theme selector Theme-provided appearance

shell.json is the full personal configuration once customized; it does not deep-merge a tiny fragment with the shipped file. Do not replace it with a three-line example. shell.toml provides appearance overrides, and its personal keys win over the active theme. Consequently, a local fixed height can survive a theme change even when the colors change.

Use the commands below as queries, one at a time:

Terminal window
omarchy bar position
omarchy bar background
omarchy bar get omarchy.clock format
omarchy plugin list

An absent explicit clock format may produce no value and a nonzero exit status; record that it was inherited. Also record the clock’s section and neighbours from your current ~/.config/omarchy/shell.json.

Back up that file if it exists:

Terminal window
cp -i ~/.config/omarchy/shell.json ~/.config/omarchy/shell.json.before-bar-edit

If it does not exist, record that fact: the shell is using defaults. Keep the generated personal file after the exercise for inspection; to return to the absent-file state, move it to a fresh archive name and restart the shell. Do not copy a guessed default over unrelated settings.

If ~/.config/omarchy/shell.toml already exists, back it up separately to shell.toml.before-bar-edit. If the backup name exists, choose a new name; do not overwrite an earlier checkpoint.

3. Shorten the clock before removing widgets

Section titled “3. Shorten the clock before removing widgets”
Terminal window
omarchy bar set omarchy.clock format "HH:mm"

Look for a 24-hour time such as 14:35. This changes the displayed format, not the system timezone. Try opening the clock panel as well: changing its label should not remove calendar access.

Then, if you want the clock first in the center section:

Terminal window
omarchy bar move omarchy.clock --section center --index 0

Index 0 means the first entry within that section, not the first widget across the screen. Center anchoring and the widths of other sections still affect its visual location. On a vertical bar, widgets may use compact forms instead of the same horizontal text.

Conceptual layout, not an operating-system screenshot:

before: [menu · workspaces] [indicators · long clock · weather] [tray · controls]
after: [menu · workspaces] [short clock · indicators · weather] [tray · controls]

Keep weather for now. If shortening the clock resolves the crowding, you have avoided removing a useful feature unnecessarily.

Find the exact id in omarchy plugin list. For example, if omarchy.media is available and you want playback controls:

Terminal window
omarchy plugin enable omarchy.media --section center

Start playback in an application that exposes media information. An enabled widget can remain empty when there is nothing to display; that is different from an unknown plugin id. If it was absent before this exercise, disabling it reverses this addition:

Terminal window
omarchy plugin disable omarchy.media

For a widget already present, omarchy bar move changes its location. omarchy bar put leaves an existing placement alone. Do not repeatedly add the same id hoping that it will move. Widgets that permit multiple instances need source placement arguments to identify the intended instance.

Reordering the right section can also change the panel addressed by numbered shortcuts. Check both the mouse action and the numbered shortcut you actually use.

5. Increase text while controlling the bar height

Section titled “5. Increase text while controlling the bar height”

Open your personal ~/.config/omarchy/shell.toml in an editor. Merge these keys into existing sections; create the file only if absent. Do not duplicate [font] or [bar] headers:

[font]
base-size = 14
[bar]
scale-with-font = false
size-horizontal = 28

This example targets shell text and a horizontal bar. base-size scales shell typography, including menus and popups. The sizing flag stops the bar’s configured height from scaling along with that base size. 28 is a starting point, not a guarantee that every font will fit.

If text clips, increase the height or reduce the text size. Fixed height is not an automatic fit algorithm. A supported display cutout can impose a higher minimum on a top bar. Vertical bars use size-vertical instead. Screen scaling also changes how logical sizes appear physically; see display scaling.

For a coordinated change to shell, GTK and terminal text, use the separate font and text-size guide. That control has a wider effect than editing the shell alone.

Observation Check next
Command reports an unknown option Installed command help and version
Entire bar is missing Bar visibility toggle and whether the shell is running
One widget is missing Exact id, enabled state, and whether it has data to show
Edit is ignored Personal file location and JSON/TOML syntax
Theme changes everything except height Personal [bar] override above the theme
Larger text overlaps icons Available space, height and font metrics

If you edited JSON by hand and jq is installed, jq empty ~/.config/omarchy/shell.json checks JSON syntax. It does not validate plugin ids or guarantee that the layout is usable. Do not edit the file and drag widgets simultaneously; both modify the same personal state.

Check the clock, panels, smallest screen, and a different theme. Save the previous theme name and return to it afterwards. Log out and back in after saving work if you need to confirm persistence.

For exact rollback, restore the saved JSON and TOML files, then run omarchy restart shell from an unlocked graphical session. The shell briefly restarts its UI, including panels and notification handling; this is not merely a clock refresh. If you created the TOML file, remove only the keys added here, or archive the whole file only when it contains nothing else you want to keep.

omarchy bar reset selects the built-in bar; it does not restore your old layout. omarchy bar defaults replaces the bar with the shipped layout, including relevant service widgets; it is not a restoration of your personal backup. A visibility toggle is separate from layout files and must be restored separately.

Bar command implementation · Shell configuration and sizing · Official bar manual

Continue with configuration loading, text and fonts, or application theme differences.