You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Improve design system: new widgets, bug fixes, no more black window at launch
New widgets: OmarchyDialog (+showOmarchyDialog/showOmarchyConfirmDialog),
OmarchyContextMenuArea/showOmarchyContextMenu, showOmarchyToast,
OmarchySlider, OmarchyRadio and OmarchyBadge, all covered in the gallery
example and by widget tests.
Fixes across existing components: tab close buttons now invoke onClose,
command panel keyboard navigation works, select highlights the selected
option, PanelSize.absolute resolves to its own size, split panel honors
min/max sizes and vertical orientation, status bar trailing grouping,
divider orientation semantics, button style equality, and several
controller/focus-node lifecycle fixes.
The Linux runners (example, examples/app) and the omarchy_app template now
only show the GTK window after Flutter renders its first frame, removing
the black window at startup; documented in the README.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VuFFumwANFHGJH6eHFmcjD
Copy file name to clipboardExpand all lines: packages/flutter_omarchy/CHANGELOG.md
+32Lines changed: 32 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,35 @@
1
+
## 0.3.0
2
+
3
+
### New widgets
4
+
5
+
*`OmarchyDialog`, `showOmarchyDialog` and `showOmarchyConfirmDialog` for modal dialogs.
6
+
*`OmarchyContextMenuArea` and `showOmarchyContextMenu` for right-click context menus (with icons, shortcut hints, accents, disabled items and dividers).
7
+
*`showOmarchyToast` for transient notifications stacked at the bottom right of the screen.
8
+
*`OmarchySlider`, a horizontal slider with divisions and keyboard support.
9
+
*`OmarchyRadio`, a radio button for single-choice groups.
10
+
*`OmarchyBadge`, a small status/count label (filled and outlined).
11
+
12
+
### Improvements
13
+
14
+
*`OmarchyTab.closable` now actually invokes `onClose` when the close icon is pressed (with its own hover feedback).
15
+
*`OmarchyCommandPanel` keyboard navigation (arrows, Enter, Escape) now works, and the item list refreshes when `items` changes.
16
+
*`OmarchySelect` now highlights the currently selected option in the dropdown.
17
+
*`OmarchyCheckbox`, `OmarchyToggle` and the new `OmarchyRadio` accept a `focusNode` and show a focus highlight; `OmarchyButton` gained `autofocus`.
18
+
*`OmarchyTile` gained a `trailing` widget slot.
19
+
*`OmarchyResizeDivider` uses the correct resize cursor for vertical splits.
20
+
*`OmarchySplitPanel` respects `minPanelSize`/`maxPanelSize` while dragging and sizes the panel correctly in vertical orientation.
21
+
*`PanelSize.absolute` now resolves to its own size instead of the available space.
22
+
*`OmarchyStatusBar` renders `trailing` statuses with proper grouping.
23
+
* The Linux runner of the example (and the `omarchy_app` template) now waits for Flutter's first frame before showing the window, removing the black window at startup. See the README section "Avoid the Black Window at Startup".
24
+
* Lifecycle fixes: external `OmarchySidePanelController`s are no longer disposed by the panel, `OmarchyFocusBorder` disposes its internal focus node, and theme config reloads no longer call `setState` after unmount.
25
+
26
+
### Breaking changes
27
+
28
+
*`OmarchyDivider` semantics were inverted and have been fixed: `direction` is now the axis along which the line extends (`OmarchyDivider.horizontal()` is a full-width line for columns, `OmarchyDivider.vertical()` a full-height line for rows). The default is now horizontal.
29
+
* Removed the unused `padding` parameter of `OmarchyButton` (use the style's `padding` instead).
30
+
* Removed the unused `alignment` parameter of `OmarchyPopOverContainer`.
31
+
* Removed the unimplemented `OmarchyBordered` placeholder.
32
+
1
33
## 0.2.0
2
34
3
35
* Support for the latest Omarchy theming system: colors are now read from the canonical `~/.local/state/omarchy/current/theme/colors.toml` palette.
To bundle and run your Flutter Omarchy application on Linux, follow these steps:
130
144
131
145
### Remove the Title Bar
132
146
133
-
Flutter Linux apps are GTK windows. To remove the default title bar, edit `linux/runner/my_application.cc`.
147
+
Flutter Linux apps are GTK windows. To remove the default GTK header bar, edit `linux/runner/my_application.cc` and disable it:
134
148
135
-
Remove the code related to the title bar:
149
+
```c
150
+
gboolean use_header_bar = FALSE;
151
+
```
152
+
153
+
Under Hyprland (Omarchy's compositor) windows are tiled and undecorated, so this is all that is needed for a clean, borderless window. Rebuild the app to apply the change. The `omarchy_app` mason template applies this automatically.
154
+
155
+
### Avoid the Black Window at Startup
156
+
157
+
By default, older Flutter Linux runners show the GTK window immediately, before Flutter has rendered anything. Since the Flutter view's surface defaults to black, the window appears filled with black for a moment at startup, before the theme background is painted.
158
+
159
+
The fix is to keep the window hidden until Flutter has rendered its first frame, using the `first-frame` signal of `FlView`. Recent Flutter versions (3.22+) generate a `linux/runner/my_application.cc` that already does this. If your runner was generated by an older Flutter version, update `my_application_activate` in `linux/runner/my_application.cc`:
160
+
161
+
```c
162
+
// Called when the first Flutter frame is received: only show the
163
+
// window at this point to avoid a black window at startup.
0 commit comments