Reduce Settings to just Bar Settings

The other don't add enough over the Omarchy Menu
This commit is contained in:
David Heinemeier Hansson
2026-05-16 21:47:54 +02:00
parent db5c09fc2e
commit eaea4cd577
12 changed files with 118 additions and 1524 deletions
+18
View File
@@ -0,0 +1,18 @@
#!/bin/bash
# omarchy:summary=Launch the Omarchy bar settings panel
# omarchy:group=launch
# omarchy:name=settings
# omarchy:args=[bar]
# omarchy:examples=omarchy launch settings | omarchy launch settings bar
case "${1:-}" in
""|bar)
;;
*)
echo "Usage: omarchy-launch-settings [bar]" >&2
exit 1
;;
esac
exec omarchy-shell-ipc shell summon omarchy.settings "{}"
-23
View File
@@ -1,23 +0,0 @@
#!/bin/bash
# omarchy:summary=Launch the Omarchy settings panel
# omarchy:group=launch
# omarchy:name=settings
# omarchy:args=[bar|plugins|defaults|style]
# omarchy:examples=omarchy launch settings | omarchy launch settings defaults | omarchy launch settings style
category="${1:-}"
payload="{}"
case "$category" in
bar|plugins|defaults|style)
payload=$(printf '{"category":"%s"}' "$category")
;;
"")
;;
*)
echo "Usage: omarchy-launch-settings [bar|plugins|defaults|style]" >&2
exit 1
;;
esac
exec omarchy-shell-ipc shell summon omarchy.settings "$payload"
+1 -1
View File
@@ -1,6 +1,6 @@
#!/bin/bash
# omarchy:summary=Set or toggle corner radius for the omarchy-shell menu and settings panel
# omarchy:summary=Set or toggle corner radius for the omarchy-shell menu and bar settings panel
# omarchy:args=[toggle|sharp|round]
# omarchy:examples=omarchy style corners quickshell toggle | omarchy style corners quickshell round | omarchy style corners quickshell sharp
+7 -7
View File
@@ -1,6 +1,6 @@
-- Window and layer rules for the Omarchy Quickshell surfaces. The
-- shell-wide bar / menu / popouts are layer-shell; the settings panel is
-- a regular Hyprland window via Quickshell's FloatingWindow.
-- shell-wide bar / menu / popouts are layer-shell; the bar settings panel
-- is a regular Hyprland window via Quickshell's FloatingWindow.
-- Keep the menu instant: no layer-shell fade/slide animation.
hl.layer_rule({ match = { namespace = "omarchy-menu" }, no_anim = true, animation = "none" })
@@ -8,13 +8,13 @@ hl.layer_rule({ match = { namespace = "omarchy-menu" }, no_anim = true, animatio
-- Image selector overlay should also pop without animation.
hl.layer_rule({ match = { namespace = "omarchy-image-selector" }, no_anim = true, animation = "none" })
-- Settings panel floats centered with a sensible default size instead of
-- Bar settings floats centered with a sensible default size instead of
-- tiling — it's a transient dialog, not a workspace surface.
hl.window_rule({ match = { class = "^org.quickshell$", title = "^Omarchy Settings$" }, float = true })
hl.window_rule({ match = { class = "^org.quickshell$", title = "^Omarchy Settings$" }, center = true })
hl.window_rule({ match = { class = "^org.quickshell$", title = "^Omarchy Settings$" }, size = { 960, 700 } })
hl.window_rule({ match = { class = "^org.quickshell$", title = "^Omarchy Bar Settings$" }, float = true })
hl.window_rule({ match = { class = "^org.quickshell$", title = "^Omarchy Bar Settings$" }, center = true })
hl.window_rule({ match = { class = "^org.quickshell$", title = "^Omarchy Bar Settings$" }, size = { 760, 620 } })
-- Per-widget settings dialog opens as a smaller FloatingWindow off the
-- settings panel; keep it floating with its own default size.
-- bar settings panel; keep it floating with its own default size.
hl.window_rule({ match = { class = "^org.quickshell$", title = "^Widget settings " }, float = true })
hl.window_rule({ match = { class = "^org.quickshell$", title = "^Widget settings " }, size = { 380, 320 } })
+1 -2
View File
@@ -164,9 +164,8 @@
"setup.config.hypridle": {"icon":"","label":"Hypridle","keywords":"idle","action":"omarchy-launch-config-editor ~/.config/hypr/hypridle.conf && omarchy-restart-hypridle"},
"setup.config.hyprlock": {"icon":"","label":"Hyprlock","keywords":"lock","action":"omarchy-launch-config-editor ~/.config/hypr/hyprlock.conf"},
"setup.config.hyprsunset": {"icon":"","label":"Hyprsunset","keywords":"night light","action":"omarchy-launch-config-editor ~/.config/hypr/hyprsunset.conf && omarchy-restart-hyprsunset"},
"setup.config.osd": {"icon":"","label":"OSD","action":"omarchy launch settings"},
"setup.config.walker": {"icon":"󰌧","label":"Walker","keywords":"launcher","action":"omarchy-launch-config-editor ~/.config/walker/config.toml && omarchy-restart-walker"},
"setup.config.bar": {"icon":"󰍜","label":"Bar","keywords":"quickshell shell config","action":"omarchy-launch-settings bar"},
"setup.config.bar": {"icon":"󰍜","label":"Bar","keywords":"quickshell shell config settings widgets position","action":"omarchy-launch-settings bar"},
"setup.config.xcompose": {"icon":"󰞅","label":"XCompose","keywords":"compose key","action":"omarchy-launch-config-editor ~/.XCompose && omarchy-restart-xcompose"},
// Install
@@ -8,12 +8,15 @@ so they cannot be disabled.
User-installed plugins live alongside these conceptually but on disk under
`~/.config/omarchy/plugins/<plugin-id>/` rather than in this directory.
| Plugin | id | kinds | activation | entry point |
|------------------|--------------------------|--------------|-------------|----------------------------------------------|
| Bar | `omarchy.bar` | `bar` | persistent | `bar/Bar.qml` |
| Settings | `omarchy.settings` | `panel` | on-demand | `settings/SettingsPanel.qml` |
| Image picker | `omarchy.image-picker` | `overlay` | on-demand | `image-picker/ImagePicker.qml` |
| Omarchy menu | `omarchy.menu` | `menu` | on-demand | `menu/Menu.qml` |
| Plugin | id | kinds | activation | entry point |
|---------------|-------------------------|-----------|------------|-------------------------------------|
| Bar | `omarchy.bar` | `bar` | persistent | `bar/Bar.qml` |
| Bar settings | `omarchy.settings` | `panel` | on-demand | `settings/SettingsPanel.qml` |
| Image picker | `omarchy.image-picker` | `overlay` | on-demand | `image-picker/ImagePicker.qml` |
| Omarchy menu | `omarchy.menu` | `menu` | on-demand | `menu/Menu.qml` |
| Notifications | `omarchy.notifications` | `service` | persistent | `notifications/Service.qml` |
| OSD | `omarchy.osd` | `panel` | persistent | `osd/Osd.qml` |
| Polkit agent | `omarchy.polkit` | `service` | persistent | `polkit/PolkitAgent.qml` |
## Bar
@@ -26,16 +29,14 @@ and customization schema.
## Bar settings
Visual editor for the entire shell config. Summoned by
Visual editor for the bar layout. Summoned by
`omarchy-shell-ipc shell summon omarchy.settings "{}"` (which is what
`omarchy launch settings` ultimately calls). Provides:
- bar position and center-anchor controls
- per-section add/move/remove/edit of bar widget entries
- a separate "Other plugins" section for panels, overlays, services,
and menus (entries that live in `plugins[]` rather than the bar layout)
- a Plugin Manager tab listing every discovered plugin with its manifest
- a dynamic settings form driven by each widget's manifest schema, that
writes inline back to the corresponding shell.json entry
- dynamic per-widget settings forms that write inline back to the
corresponding shell.json entry
## Image picker
@@ -64,6 +65,13 @@ clears it without writing a selection.
The plugin has `keepLoaded: true` so the layer-shell window survives
between summons within a single shell session.
## Polkit agent
Theme-aware authentication dialog for privileged actions. It uses
Quickshell's native `Quickshell.Services.Polkit.PolkitAgent` backend and
runs inside the long-lived `omarchy-shell` process, replacing the old
`polkit-gnome-authentication-agent-1` autostart.
## Omarchy menu
Quickshell-powered replacement for the legacy Walker-driven `omarchy-menu`.
@@ -18,7 +18,7 @@ Item {
// The omarchy-shell host injects omarchyPath when it instantiates this Bar.
// Default fallback keeps the file loadable in isolation (e.g. for QML tooling).
required property string omarchyPath
// Injected by the host shell. Shared with the settings panel so both
// Injected by the host shell. Shared with the bar settings panel so both
// see the same widget catalogue.
required property var barWidgetRegistry
// Injected by the host shell every time shell.json is reloaded. Holds the
@@ -169,6 +169,6 @@ layout list.
Third-party widgets ship as separate plugins under
`~/.config/omarchy/plugins/<plugin-id>/` with their own `manifest.json`
declaring `kinds: ["bar-widget"]` and a `barWidget` entry point. See
[../../README.md](../../README.md) for the manifest schema and the
Plugin Manager tab in `omarchy launch settings` for enable/disable
controls.
[../../README.md](../../README.md) for the manifest schema. Enable or
rescan third-party plugins with `omarchy-shell-ipc shell setPluginEnabled`
and `omarchy-shell-ipc shell rescanPlugins`.
@@ -34,7 +34,7 @@ Item {
readonly property string imageCacheDir: cacheDir + "notification-images/"
readonly property string styleStatePath: home + "/.local/state/omarchy/toggles/quickshell-menu.json"
// Corner radius is shared with omarchy-shell menu and settings panel —
// Corner radius is shared with omarchy-shell menu and bar settings panel —
// `omarchy style corners <sharp|round>` writes this file once and every
// surface reads it. Default 0 for sharp corners.
property int cornerRadius: 0
File diff suppressed because it is too large Load Diff
@@ -1,10 +1,10 @@
{
"schemaVersion": 1,
"id": "omarchy.settings",
"name": "Omarchy Settings",
"name": "Omarchy Bar Settings",
"version": "1.0.0",
"author": "Omarchy",
"description": "Customize the bar, plugins, defaults, and look-and-feel of Omarchy",
"description": "Customize the Omarchy bar position and widgets",
"kinds": ["panel"],
"activation": "on-demand",
"entryPoints": { "panel": "SettingsPanel.qml" }
@@ -3,7 +3,7 @@ import QtQuick
// Instance, not a singleton — instantiated once by shell.qml and injected into
// plugins that need to read or extend the widget catalogue. Relative-path
// singleton imports were creating per-importer instances which prevented the
// settings panel from seeing what the bar registered.
// bar settings panel from seeing what the bar registered.
QtObject {
id: registry