Files
omarchycn/bin/omarchy-launch-bar-settings
T
Ryan Hughes a03f589258 Add visual bar customizer
Each layout entry is now an object — {id, ...inline settings} — instead
of a (name, separate modules map) pair. Multiple instances of the same
widget are trivially supported (spacer is the main beneficiary). Settings
travel with the entry, so reordering keeps them attached.

shell.qml:
- normalizeLayout converts string entries to {id} and drops invalid ones
- ModuleSlot binds to a full entry; moduleName and moduleSettings derive
  from it via entryId/entrySettings helpers
- centerAnchor lookup walks layoutEntries directly
- builtinBarConfig defaults use the object form
- README + bar-defaults.json updated to the new schema

bar-settings/ (new Quickshell config):
- Top toolbar with Reset / Save and Position / centerAnchor dropdowns
- Three section editors (left/center/right) with current widgets shown
  as cards: name + description + move up/down/settings/remove buttons
- '+ Add widget' menu per section, sorted alphabetically by display name
  (only spacer can repeat; everything else is one per bar)
- Per-widget settings dialog (FloatingWindow) loads an inline schema for
  widgets in the catalog. Initial schemas: spacer (size), calendar
  (formats), brightness (step)
- FileView { atomicWrites } writes to ~/.config/omarchy/bar.json on Save

omarchy-launch-bar-settings + hypr window rules pin the settings window
to a 760px floating square. controlCenter gains a 'Customize bar…' button
that launches it.
2026-05-14 02:21:47 -04:00

17 lines
547 B
Bash
Executable File

#!/bin/bash
# omarchy:summary=Launch the Omarchy bar customizer
# omarchy:group=launch
# omarchy:name=bar-settings
# omarchy:examples=omarchy launch bar-settings
OMARCHY_PATH="${OMARCHY_PATH:-$HOME/.local/share/omarchy}"
CONFIG_DIR="$OMARCHY_PATH/default/quickshell/bar-settings"
if quickshell list -p "$CONFIG_DIR" 2>/dev/null | grep -q '^Instance '; then
hyprctl dispatch focuswindow 'title:Omarchy bar settings' >/dev/null 2>&1
exit 0
fi
setsid uwsm-app -- env OMARCHY_PATH="$OMARCHY_PATH" quickshell -p "$CONFIG_DIR" >/dev/null 2>&1 &