Files
dotfiles/omarchy

Omarchy config

Omarchy 4 replaced waybar with the Quickshell bar built into omarchy-shell. shell.json is the whole bar config; it hot-reloads on save, and install.sh deploys it to ~/.config/omarchy/shell.json.

Bar layout

Ported from the old waybar/config.jsonc, section for section:

Old waybar module shell.json widget
custom/omarchy omarchy.menu
hyprland/workspaces blob.workspaces (cloned plugin)
clock blob.clock (custom module)
custom/update omarchy.system-update
custom/voxtype dropped (voxtype is not installed)
custom/screenrecording-indicator AGS quick settings -> Record tile
custom/idle-indicator AGS quick settings -> Stay Awake tile
custom/notification-silencing-indicator AGS quick settings -> Silence tile
group/tray-expander omarchy.tray
bluetooth omarchy.bluetooth
network omarchy.network
pulseaudio omarchy.audio
battery omarchy.power
cpu blob.cpu (custom module)
custom/notification blob.notifications (custom module)
(new in Omarchy 4) omarchy.agents - AI agent usage
(new in Omarchy 4) omarchy.monitor - brightness and display controls

The bar carries no omarchy.indicators widget: those four toggles live in the AGS quick settings panel instead, so the bar keeps only the clock and the update indicator in its center. Add { "id": "omarchy.indicators" } back to center to restore them (omit items for all six, which adds NightLight and Reminder).

Custom modules

The bar accepts arbitrary ids with type: "command", which is how the two AGS entry points survive the move off waybar:

  • blob.cpu - left opens btop, middle opens alacritty, right toggles the AGS system monitor
  • blob.notifications - left toggles the AGS notification center, right toggles notification silencing
  • blob.clock - left toggles AGS quick settings, middle opens the shell's own calendar panel, right opens the timezone selector. omarchy.clock hardcodes its click actions, so matching the old waybar behavior needs a command module and centerAnchor pointed at it.

A command module with no exec key is a static icon; add exec and interval for one that refreshes its own text.

Cloned plugins

plugins/blob.workspaces/ is a clone of omarchy.workspaces, made with omarchy plugin clone. The stock widget hardcodes workspaces 1-5 as always visible and has no setting for it, so the clone changes that list to 1-9 to match the old waybar persistent-workspaces. Cloning also switches the bar to the cloned id, which is why shell.json says blob.workspaces.

Re-clone after an Omarchy update if the upstream widget gains something worth picking up: omarchy plugin clone omarchy.workspaces, then re-apply the one-line workspaceIds() change.

Editing

Dragging widgets in the bar rewrites ~/.config/omarchy/shell.json directly. That makes the live file diverge from this one, so after rearranging by hand, copy it back:

cp ~/.config/omarchy/shell.json omarchy/shell.json

Run ./install.sh --check to see whether the two have drifted.

Not portable from waybar

  • Bar height: fixed by the shell's style (26px horizontal, 28px vertical).
  • Per-widget click actions on first-party widgets: omarchy.network and omarchy.bluetooth own their popups, so the old right-click-into-AGS bindings only exist on the custom modules above.