Commit Graph
46 Commits
Author SHA1 Message Date
David Heinemeier Hansson dbdcd862e7 Simplify 2026-05-20 14:35:47 +02:00
David Heinemeier Hansson f6c6a6d323 Simplify 2026-05-20 14:34:15 +02:00
David Heinemeier Hansson ea1b0e7ced Extract panels out into their own top-level concern 2026-05-20 13:51:39 +02:00
David Heinemeier Hansson 3b9700682c Split out indicators 2026-05-20 13:05:56 +02:00
Ryan Hughes ad271c1fcb Fix stream displays 2026-05-19 20:44:54 -04:00
Ryan Hughes 1f3a827701 consolidate logic 2026-05-19 19:18:56 -04:00
Ryan Hughes ccc796a3e0 Consolidate utils 2026-05-19 19:03:11 -04:00
Ryan Hughes 6f72604f2c Add missing alpha tokens 2026-05-19 15:54:00 -04:00
Ryan Hughes 15f461c1df Add tooltip color tokens 2026-05-19 15:16:10 -04:00
David Heinemeier Hansson a157b98d5b No longer need wiremix 2026-05-19 18:51:05 +02:00
David Heinemeier Hansson 0f5044167c Move from hypridle to QS 2026-05-19 12:02:28 +02:00
David Heinemeier Hansson 8fa463975a Remove dead code 2026-05-19 10:50:36 +02:00
David Heinemeier Hansson 8cd9e34294 Tweak idle inhibitor 2026-05-19 10:48:28 +02:00
David Heinemeier Hansson 8da9c27aef Consistent naming 2026-05-19 09:50:20 +02:00
David Heinemeier Hansson eff07700e0 Respect style corner radius 2026-05-19 09:47:26 +02:00
David Heinemeier Hansson 2ca043c8b9 More massaging 2026-05-19 08:42:53 +02:00
David Heinemeier Hansson c6df292c80 Don't need that duplex info 2026-05-19 08:42:49 +02:00
David Heinemeier Hansson 8613ead8c1 Signify when there are multiple displays 2026-05-19 08:20:49 +02:00
David Heinemeier Hansson 2ac069e72b Drop bluetui and impala in favor of shell controls 2026-05-19 08:20:13 +02:00
Ryan Hughes 7800937b29 Use accent border for popup surfaces 2026-05-19 01:54:08 -04:00
Ryan Hughes 75962b98ea Fix audio panel scroll clipping 2026-05-19 01:32:32 -04:00
Ryan Hughes 8a74d28449 Show forget action for saved Wi-Fi networks 2026-05-19 01:15:07 -04:00
Ryan Hughes 832244c10e Refine shell cursor highlights 2026-05-19 01:02:16 -04:00
Ryan Hughes 61e7d2f307 Use singular microphone label 2026-05-18 23:10:24 -04:00
Ryan Hughes fca58df0a5 Clean up audio device choices 2026-05-18 22:46:30 -04:00
Ryan Hughes 34ff56ae19 Detect PipeWire playback streams by sink role 2026-05-18 21:51:21 -04:00
Ryan Hughes f1e6fe86b7 Remove legacy battery bar module 2026-05-18 21:27:00 -04:00
Ryan Hughes 6fa6e6cc91 Merge remote-tracking branch 'origin/omarchy-shell' into omarchy-shell
# Conflicts:
#	shell/Ui/PillButton.qml
#	shell/plugins/bar/widgets/monitorPanel.qml
#	shell/plugins/bar/widgets/networkPanel.qml
2026-05-18 21:11:37 -04:00
Ryan Hughes 8b2bb217d6 Standardize shell UI theme tokens 2026-05-18 20:13:12 -04:00
David Heinemeier Hansson 34bb950830 Keyboard nav 2026-05-18 22:50:38 +02:00
David Heinemeier Hansson bc1b824891 More tweaks 2026-05-18 22:47:06 +02:00
David Heinemeier Hansson 1a457118a5 Ensure you can click to open another panel while one is open 2026-05-18 22:38:53 +02:00
David Heinemeier Hansson 9daa0e6ed3 More tweaks 2026-05-18 22:10:26 +02:00
David Heinemeier Hansson 74f71236e0 More tweaking 2026-05-18 22:00:09 +02:00
David Heinemeier Hansson e8bfdbb13b Little more tweaks 2026-05-18 21:24:48 +02:00
David Heinemeier Hansson d99ccaf550 More power panel layouting 2026-05-18 21:13:42 +02:00
David Heinemeier Hansson 1dc2f1ec79 Introduce power panel 2026-05-18 20:47:38 +02:00
David Heinemeier Hansson c517997922 Spinning when scanning 2026-05-18 20:47:38 +02:00
Ryan Hughes 8b858d4093 Add outline cursor mode to CursorSurface for slider rows
Wide content rows (slider rows in audio / monitor panels) opted out of
the cursor fill by setting fill: "transparent" on their CursorSurface,
which left them with no cursor visual at all — j/k landed there
silently with no way to know what was selected.

Add an `outline: bool` flag to CursorSurface. When true, hasCursor
paints an accent border (Style.focusBorderColor at
Style.focusBorderWidth) instead of a fill, leaving the row's chrome
fully visible underneath. Use for slider rows where a fill would
obscure the track.

Audio output / input slider rows and the monitor brightness row opt
in. The dev gallery's slider section replaces its bespoke Rectangle
wrapper with the same CursorSurface { outline: true }, so what the
gallery documents is what the panels ship.
2026-05-18 12:19:23 -04:00
Ryan Hughes b5f7ba02c2 Unify PillButton, CursorPill, ChoiceButton into qs.Ui.Button + ButtonGroup
The three components were three takes on the same shape \u2014 a clickable
rectangle with text/icon, a hot/hover state, an optional persistent
border, and an optional 'selected' or 'active' highlight. CursorPill
was a 30-line PillButton wrapper that added a hovered() signal;
ChoiceButton was effectively PillButton with selected: bool painting
an accent fill+border.

Collapse them into a single qs.Ui.Button. State flags compose
independently:

  hasCursor / hover         hot fill
  active                    persistent foreground-tint fill
  selected                  accent fill + accent border
  bordered: true            persistent 1px idle border (form primaries)
  focusable: true           Tab focus paints the accent ring
  pressed                   pressed fill

The hovered(bool) signal is now built-in, so CursorPill's wrapper is
unnecessary. ButtonGroup wraps a Row+Repeater for the form-style
'pick one of N' pattern; panel-cursor-driven cases still compose
Buttons directly in a Row with per-instance hasCursor wiring.

Theme tokens move into a new [style] section in shell.toml:

  border-width        = 1
  focus-border-width  = 3
  idle-border-alpha   = 0.4
  hot-fill-alpha      = 0.08
  selected-fill-alpha = 0.18
  pressed-fill-alpha  = 0.22
  focus-fill-alpha    = 0.22

Style.qml parses these out of the same shell.toml [font] / [bar]
already reads, and exposes pre-computed Style.hotFill / selectedFill /
pressedFill / idleBorderColor / selectedAccentFill / borderWidth +
the existing focusBorder* tokens. Themes that don't ship a [style]
section get the previous defaults unchanged.

Dev gallery consolidates three sections (PillButton, CursorPill,
ChoiceButton) into Button + ButtonGroup, with the cursor model
sections renamed accordingly.
2026-05-18 12:09:13 -04:00
Ryan Hughes 648bc54db1 Unify font sizes through qs.Commons.Style
Themes now drive typography the same way they drive colors: one [font]
base-size in shell.toml is the rem root, and every Style.font.<token>
(caption, bodySmall, body, subtitle, title, heading, display,
displayLarge, iconSmall, icon, iconLarge) derives from it via a fixed
multiplier. Themes can also pin individual tokens for stylistic
emphasis. base-size is clamped 11..13 until row-height tokens exist.

Bar dimensions move to the same singleton: [bar] size-horizontal /
size-vertical replace the hardcoded 26/28 in Bar.qml, exposed as
Style.bar.sizeHorizontal / sizeVertical.

Style.qml also resolves the fontconfig 'monospace' alias via fc-match
and exposes Style.font.resolvedFamily so panels can display the
concrete family. Watches ~/.config/fontconfig/fonts.conf so it tracks
'omarchy font set <name>'.

The qs.Ui kit (PillButton, Dropdown, Toggle, TextField, etc.) and
every first-party plugin (bar widgets, settings, menu, clipboard,
emoji, polkit, notifications, osd, image-picker, dev-gallery) now
bind to Style.font.* instead of pixel literals. Only three deliberate
display-scale outliers remain: the notification empty-state glyph and
the weather flyout's hero temperature pair, all commented.

Background plugin's applyTheme IPC fast-path also pushes shell.toml to
Style so theme swaps update typography and bar size without waiting
for inotify debounce.

Dev gallery (omarchy dev ui-preview) now ships a Typography section
that renders the full scale and theme tokens live, and its summon
command is fixed (omarchy-shell-ipc -> omarchy-shell).
2026-05-18 11:33:19 -04:00
Ryan Hughes e9e5040bf3 Refresh idle indicator on bar IPC 2026-05-18 10:17:01 -04:00
David Heinemeier Hansson f3ba505558 More tweaking and standardization 2026-05-18 15:54:14 +02:00
David Heinemeier Hansson debda5cef8 Just make bluetooth panel show human options 2026-05-18 15:41:21 +02:00
David Heinemeier Hansson cddc18b1cd Panel tweaks 2026-05-18 15:30:29 +02:00
David Heinemeier Hansson 0fe985b45d Promote shell to its own top-level directory 2026-05-18 14:56:59 +02:00