Skip to content

Add an in-panel settings page - #11

Merged
robzolkos merged 2 commits into
mainfrom
settings-panel
Aug 24, 2026
Merged

Add an in-panel settings page#11
robzolkos merged 2 commits into
mainfrom
settings-panel

Conversation

@robzolkos

Copy link
Copy Markdown
Owner

Asked for in #9: a settings page inside the panel, so the everyday options don't require a trip to Omarchy's bar widget settings or the CLI.

A gear button in the panel header flips the card to a settings page carrying:

  • Open links — Web app window (default) or Browser tab
  • Repository scope, Refresh interval
  • Toggles for keep the bar icon unlit, include archived repositories, include forked repositories

The Actions-scanning knobs, review-request filters, and display limits stay in Omarchy's settings UI — they're set-once options and a scrolling wall of them would bury the ones people actually reach for.

Open links returns as a setting. #10 hardcoded omarchy-launch-webapp, which leaves anyone without a Chromium-based default browser unable to open rows at all. The web app window stays the default; Browser tab routes through omarchy-launch-browser instead. An unrecognised value falls back to the web app window, so a stale entry can't silently change behaviour.

On persistence. Settings are written to the widget's entry in shell.json via bar.shell.updateEntryInline, which rebuilds the entry as {id} plus the keys it's handed — a whole replacement, not a merge. So every persist copies the current settings forward first; sending only the changed key would erase the rest. The value is applied locally before the shell call so controls move on the click rather than after the file write and hot-reload.

Two other details worth knowing for anyone extending this page: Dropdown assigns value imperatively when a row is picked, so reads use Binding on value elements rather than inline bindings, which would be destroyed on first use. And PanelKeyCatcher is blocked while the settings page is up, or it swallows Tab, Space, and the single-letter shortcuts before the controls ever see them.

The pattern follows the settings view in the Omarchy HEY plugin.

The dashboard's everyday options were only reachable through Omarchy's
bar widget settings or the CLI. A gear button in the panel header now
flips the card to a settings page carrying the open-links behaviour,
repository scope, refresh interval, and the archived, forked, and
unlit-icon toggles.

Open links returns as a setting rather than a hardcoded launcher, so
machines without a Chromium-based browser can go back to a browser tab.

Settings are written to the widget's entry in shell.json through
updateEntryInline, which replaces the entry whole, so every persist
merges the current settings forward first.
QML string literals have no \U escape, so the back button rendered the
literal text instead of the arrow.
@robzolkos

Copy link
Copy Markdown
Owner Author

@AnthonyPoschen this is the settings panel you asked for in #9 — and Open links is one of the toggles on it, so you can put the plugin back on a browser tab if the web app window doesn't grow on you after all.

One deliberate difference from what you described: you asked for a right-click settings panel, and I've put it on a gear button in the panel header instead. Right and middle click on the Octocat are already bound to Refresh, and I'd rather not move a binding people have in their fingers. The gear matches the settings view in the Omarchy HEY plugin, so the two widgets behave the same way. If the button turns out to be hard to find in practice, I'm open to adding right-click as a second route.

@ujo4eva you pushed for exactly this in #7, point 1 — a proper enum rather than an unconditional swap, with the non-Chromium case in mind. That's what this does, though the default is the web app window rather than the browser tab.

Would appreciate either of you giving it a look before or after it lands:

cd ~/.config/omarchy/plugins/robzolkos.github
git fetch origin settings-panel && git checkout settings-panel
omarchy restart shell

To go back: git checkout main && omarchy restart shell.

@robzolkos
robzolkos merged commit 54874c9 into main Aug 24, 2026
1 check passed
@robzolkos
robzolkos deleted the settings-panel branch August 24, 2026 01:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant