Files
omarchycn/default/themed/shell.toml.tpl
T
Ryan Hughes f404a81c6a Consolidate omarchy-shell colors into a single shell.toml surface
Five plugins each owned their own colors.toml watcher with subtly
different parsers, plus two ad-hoc per-theme override files
(notifications.json, image-picker-colors.json). This collapses all of
that into one source of truth: Commons/Color.qml watches colors.toml +
shell.toml and exposes Color.bar.*, Color.popups.*, Color.notifications.*,
Color.menu.*, Color.imagePicker.* for every surface to bind to.

shell.toml is generated by the existing template pipeline from
default/themed/shell.toml.tpl. Themes can ship their own shell.toml to
override individual keys; everything missing falls back to the
foundational palette via root.pick(). Settings panel is intentionally
not themable beyond the foundational tokens.

last-horizon and solitude ship a minimal shell.toml to preserve their
historical 'notification border matches Hyprland active border'
behavior, which previously came from parsing the theme's hyprland.conf
(now removed).
2026-05-16 00:30:27 -04:00

51 lines
1.9 KiB
Smarty

# Omarchy shell colors. Defaults below derive from colors.toml. Any theme
# can ship its own shell.toml at themes/<name>/shell.toml to override
# individual keys — anything left out falls back to the values here.
[bar]
# The bar strip itself
background = "{{ background }}"
# Clock, weather, workspace numbers, indicator glyphs
text = "{{ foreground }}"
# Module in an "active" state: screen recording, voxtype listening,
# weather alert, update available. Same color is used everywhere a
# module wants to call attention to itself.
active = "{{ color1 }}"
[popups]
# Body fill for every flyout opened from the bar: wifi, bluetooth, audio,
# calendar, weather, control-center, notification-center, media. Body text
# inside the flyouts is not separately themable — it follows [bar].text.
background = "{{ background }}"
# 1px outline around the flyout
border = "{{ foreground }}"
[notifications]
# Toast card body
background = "{{ background }}"
# Title and message text
text = "{{ foreground }}"
# Card outline. Most themes match this to their Hyprland active-window
# border so notifications visually belong to the focused window.
border = "{{ accent }}"
# Bottom countdown bar that drains while the toast is on screen
countdown = "{{ accent }}"
[menu]
# Omarchy menu surface (the launcher-style picker invoked by the menu key)
background = "{{ background }}"
# Unhighlighted menu items
text = "{{ foreground }}"
# Currently hovered / keyboard-selected item
selected = "{{ accent }}"
[image-picker]
# Backdrop scrim behind the picker (the picker draws this at ~70% alpha)
background = "{{ background }}"
# Tile labels (image filename / theme name)
text = "{{ foreground }}"
# 3px stroke around the currently selected tile
selected-border = "{{ accent }}"
# 1px stroke around every other tile (picker applies ~28% alpha)
unselected-border = "{{ foreground }}"