v0.4.0
Recommended install: brew install itsdezen/tap/tili —
Homebrew downloads via curl, which doesn't set macOS's
quarantine flag, so Gatekeeper never enters the picture.
The tarballs below are codesigned with tili's self-signed
certificate (hardened runtime) — see
CONTRIBUTING.md.
That's for a stable signing identity across releases (so
your Accessibility grant survives an upgrade), not for
passing Gatekeeper — a self-signed cert isn't notarized. If
you download tili.app directly from this page instead of
using Homebrew, Gatekeeper will still prompt on first launch:
right-click → Open, or xattr -d com.apple.quarantine tili.app.
Added
- Animated window movement (opt-in). New
animatesetting (#false,
#true,"medium", or"high"— default#false;#trueis
shorthand for"medium") eases tiled relayout and floating-window
placement — including a newly-centered floating window's placement —
into their new frame over a short duration (90ms) instead of jumping
straight there, fixing the visible "flick" on relayout, post-drag
mouse-resize snap, and floating centering."medium"/"high"pick the
animation's tick rate (~60fps/~120fps) —tili-daemonreconstructs its
dedicated animation timer to match on every config change, and that
timer only runs at all while something is actually animating.
Performance tradeoff: each animation step is a real AX write, not a free
interpolation, so"medium"costs roughly 6x the AX round-trips of a
plain instant move per relayout, and"high"roughly 11x (double
"medium") — negligible on responsive native apps, more noticeable as
extra per-relayout latency on a slow-to-respond one. Implemented as
TweenedFrameSetter, a secondWindowFrameSetteralongside the
existingInstantFrameSetter. Doesn't affect a user's own native
drag/resize of a floating window (tili never writes during that);
parking a window off-screen and the size-discovery step of centering a
floating window stay instant on purpose, and so does revealing a
workspace's windows on switch (they're showing at wherever they were
parked, which was never meant to be seen, so there's no start point to
meaningfully ease from).
Full changelog: CHANGELOG.md