Flip 1.3.0
The wheel steps through the grid. Hovering already picked a tile and
clicking already took it; scrolling was the one thing a hand on the mouse could
not do. A notch is one window, the way it is in any list, and it follows the
scrolling direction set on the machine rather than deciding for itself. A
trackpad has to travel about a tile's width to earn a step, so a flick browses
rather than bolting to the end.
Five fixes from a full read of the source.
A tap that failed to start had no way back. The port is created on its own
thread, so a failure arrived after startup had already recorded the tap as
running — no hotkey worked until the next launch, and the menu bar went on
saying everything was fine. It now reports back, retries, and says so in the
menu when it cannot.
The safety timer that closes an overlay nobody let go of was re-armed on every
narrowing, leaving the first one in the runloop. Half a minute later it could
close a session it had nothing to do with. It now belongs to the session, which
is what it was always measuring.
Choosing an application with ⌘Tab when macOS reported no frontmost application
gave up without telling the router, which went on swallowing arrows and escape
until the modifier came back up. Every other giving-up path already reported.
Thumbnails were captured twice whenever two requests overlapped — reliably with
the overlay delay set to Immediately — because a capture in flight was invisible
to the check for what still needed one. The captures are also ordered around the
tile that ends up selected now, rather than the one selected before the grid had
stepped.
A window closed by quitting its application left its remembered position behind,
and window IDs get reused.
The shortcut editor warns when your leader is already spoken for. Window
actions are matched before application shortcuts, so choosing ⌃⌥ as the leader
left bindings on u i j k and Return permanently unreachable, with nothing
saying why.
The settings window stays in front. Flip runs as an accessory application —
no Dock icon, never the active one — and macOS will not reliably bring such an
application's window forward. The window did open; it landed behind whatever was
in front and looked as though the menu item had done nothing. It now floats above
ordinary windows, and well below the switcher's own level, so the grid still draws
over it.
The display moves are settable. They share the arrow keys with the halves, so
they have always needed a modifier of their own — and which one is a matter of
what else is bound on the machine. Settings › Windows now offers ⇧⌥ as before,
or ⌃⌥⌘, all three at once. It switches rather than adds: whichever you do not
pick stops working, so nothing is bound twice behind your back.
The halves and quarters stay fixed, and the settings window now says why rather
than only that they cannot be changed.
A keyboard along the bottom of the settings window, with the keys of whichever
tab you are on lit up. ⌃⌥⌘⇧ mean nothing until you can see which physical key
each one is, and the settings window was full of them — so the modifiers carry the
word as well as the symbol, in the positions your thumbs already know.
Three questions go into drawing it, and they are not the same one. The letters
come from the keyboard layout, so a German one shows Z and ß where an American
shows Y and a hyphen. The shape comes from the hardware, which macOS reports
separately — a German layout is typed on plenty of ANSI boards, and those have no
key between the left shift and Z and no key beside the return.
The third is where command sits in the bottom row, and that one macOS genuinely
cannot answer: the modifier remapping it exposes says what each key does, not
where it is, and a board like the Nuphy Air75 reports Apple's own vendor
identifier while carrying the Windows arrangement — control, command, option. So
it is a small switch under the picture, and nothing else depends on it.
Installing
brew install --cask mxwnk/tap/flipOr take the disk image below. Flip is signed with its own certificate
rather than notarised, so a copy installed by hand has to be allowed once
under System Settings › Privacy & Security. Homebrew does that for you.
Accessibility is asked for on first run, Screen Recording only if you
want thumbnails. Both survive updates: the signature is pinned to the same
certificate every release, and the pipeline refuses to publish one where
it has drifted.