Skip to content

Keys: a Keys menu with window tiling (#272) - #319

Open
addhumal wants to merge 1 commit into
Saffsanity:mainfrom
addhumal:keys-menu-272
Open

addhumal wants to merge 1 commit into
Saffsanity:mainfrom
addhumal:keys-menu-272

Conversation

@addhumal

@addhumal addhumal commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

Part of #272. Split from #293, which keeps the iPhone's arrow keys (#287): one change per pull request.

What it does

  • The Keys menu: a long press on the Keyboard button, on every bar (the landscape bar, a phone's row 1, the iPad's key-row cap).
    • Mac: Lock Screen (⌃⌘Q), Force Quit… (⌥⌘⎋), Screenshot… (⇧⌘5), Switch to the Last App (⌘⇥).
    • Window (Window tiling shortcuts in Desktop mode #272): Left, Right, Top and Bottom Half; Fill; Center; Return to Previous Size. These are macOS 15's own Globe-Control shortcuts, shown only for a Mac that says it takes fn.
  • Host: a device's fn bit (bit 23, the Globe key) now reaches the Mac as maskSecondaryFn. UIKit has no fn flag, so only these shortcuts set it. The window list gains an additive fnKey, sent only from macOS 15 (KeyStrokes.fnKey).

Checks

What I tried

  • On a 14-inch MacBook Pro (M4 Pro, macOS 27.0.1), Xcode 27.2: the checks and builds above. Not on a device.

Problems found, and how they were fixed

Not checked

  • The shortcuts on a real Mac: whether macOS 15+ tiles from a posted Globe-Control chord, and Lock Screen, Force Quit and Screenshot.
  • The long press on a device, and VoiceOver.

A long press on the Keyboard button, on every bar (the landscape bar, a phone's row 1, the iPad's key-row
cap), opens the Keys menu: Lock Screen (⌃⌘Q), Force Quit… (⌥⌘⎋), Screenshot… (⇧⌘5), Switch to the Last App
(⌘⇥), and for a Mac that takes fn, macOS 15's window tiling (Left, Right, Top and Bottom Half, Fill,
Center, Return to Previous Size). A device's fn bit (bit 23, the Globe key) reaches the Mac as
maskSecondaryFn; the window list gains an additive fnKey. Split from Saffsanity#293, which keeps the iPhone's arrow
keys (Saffsanity#287). key-strokes 522 checks, compatibility 154; swift build -c release, only the CaptureProbe
warning; the iOS app for the simulator, only the known StreamClient warning.

This branch has not been deployed

No deployments
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