Add an in-panel settings page - #11
Conversation
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.
|
@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 shellTo go back: |
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:
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 throughomarchy-launch-browserinstead. 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.jsonviabar.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:
Dropdownassignsvalueimperatively when a row is picked, so reads useBinding on valueelements rather than inline bindings, which would be destroyed on first use. AndPanelKeyCatcherisblockedwhile 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.