Skip to content

Move the Mac's desktop defaults into omarchy-mac's platform hooks - #639

Merged
maralcbr merged 1 commit into
quattro-upstreamfrom
mac/103-platform-hooks
Sep 27, 2026
Merged

maralcbr merged 1 commit into
quattro-upstreamfrom
mac/103-platform-hooks

Conversation

@maralcbr

Copy link
Copy Markdown
Collaborator

Ticket 103, step 6 "what omarchy-mac must ship". Upstream's step 6 (omacom#13362, local 7fabb9b) gives only platform-neutral hooks; this ports them to quattro-upstream and fills them from omarchy-mac, so one package gives a Mac on quattro-upstream and a Mac on upstream + step 6 the same behaviour.

  • Runtime (step 6's versions): early Hyprland defaults default/hypr/platform/defaults/*.lua (chord takeover, bind decorators) and late default/hypr/platform/*.lua, read from the packaged tree; key names default/omarchy/platform/key-names in the keybindings menu; display cutouts default/shell/platform/display-cutouts.json for the bar's notch floor. Shared files lose their Apple branches (lid switch, capture chords, omarchy-brightness-shift, tap-to-click devices, built-in-screen focus, F1/F2 names, notch table). Bar.qml keeps appleSiliconHost only for the microphone widget and audio panel (no seam yet).
  • omarchy-mac: defaults/apple.lua (trackpad, SMC lid, capture chords, Shift+brightness on the keyboard backlight, menus on the built-in screen), apple-gestures.lua fixed (it relied on o.apple_silicon, which upstream lacks, so the swipe silently skipped there), key-names, display-cutouts.json.

Differences from before: Shift+brightness binds are described as "Keyboard brightness up/down" (same action); an unlisted notched panel gets no floor (all shipping M1/M2 panels are listed).

Tests: new apple-platform-hooks-test.sh and the reworked gesture test pass against this runtime and the step 6 worktree (OMARCHY_TEST_RUNTIME); ported fkeys, binding-conflicts, bar-notch, input-default, hw-laptop, fnmode tests; package suite green. Full runtime suite: only the usual environment failures.

M2 (live session, files deployed then restored): binds identical except the Shift+brightness description; lid (SMC) and capture chords bound; bar 32 px on eDP-1; hyprctl eval shows the swipe registered, the focus decorator active and o.apple_silicon nil; F1/F2 names in the keybindings menu; no config errors.

Debated (README notch claim fixed) and reviewed (re-homed test cases, README accuracy fixed); no blockers.

Omarchy's Hyprland config, keybindings menu and bar now read a platform
package's defaults from the packaged tree, as upstream's step 6 does:
Hyprland defaults before Omarchy's and after the user's files, key names,
and the panels' camera cutouts. omarchy-mac fills them with the Mac's lid
switch, capture chords, keyboard backlight chords, trackpad default, menus
on the built-in screen, F1/F2 names and notch sizes, which leave the shared
files. The workspace swipe no longer depends on a helper upstream lacks.
@maralcbr
maralcbr merged commit c446c8d into quattro-upstream Sep 27, 2026
5 checks passed
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