Skip to content

shidil/strip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Strip

Strip is an experimental macOS window manager that arranges application windows on a horizontal "film strip": the focused window stays centered while its neighbors flow past it.

Warning

Strip is an early, source-first project for developers and testers. There are no supported public binary releases yet. It can move and resize other applications' windows.

parked  ←  [ window ] [ window ] [ FOCUSED ] [ window ] [ window ]  →  parked

Strip is built with Swift and AppKit. It uses macOS Accessibility for window control and does not require disabling System Integrity Protection or installing a scripting addition.

Status and Scope

  • Status: experimental alpha / daily-driver spike, not a supported product.
  • Tested platform: macOS 14 and newer, primarily on a single ultrawide display.
  • Architecture: menu-bar accessory app with a pure, unit-tested layout engine.
  • Distribution: source builds only until Developer ID signing and notarized releases are ready.
  • App Store: not eligible while it uses the private _AXUIElementGetWindow identity bridge.

Multi-display behavior, separate Spaces, polished installation, and stable binary releases remain incomplete. See PLAN.md and BUGS.md for current status.

Requirements

  • macOS 14 or newer
  • Xcode 16 command-line tools
  • Accessibility permission for moving, resizing, observing, and focusing windows
  • Screen Recording permission only for Overview thumbnails

Build and Run

make test
make bundle
make open

Use make open for real testing. Launching the inner executable from a terminal does not receive the same Accessibility trust because macOS TCC attributes that execution differently.

make setup-signing is an optional developer-only convenience. It creates a local self-signed identity named Strip Dev so repeated development builds retain a stable TCC identity. It is not an installation method and must never produce public binaries. See docs/DEVELOPMENT_SIGNING.md.

Permissions and Privacy

Permission Why Strip uses it When requested
Accessibility Enumerate, focus, move, and resize windows; receive global hotkeys At first launch
Screen Recording Capture still in-memory thumbnails for Overview When Overview first requests thumbnails

Strip currently contains no networking, telemetry, analytics, crash-upload, or update-checking code. Window data and thumbnails remain local. Thumbnails are held in memory and are not written to disk by Strip. _AXUIElementGetWindow is used only for stable identity; movement and resizing use public Accessibility APIs.

Read PRIVACY.md for the complete data model, compatibility warning, and revocation steps.

Uninstall

  1. Quit Strip from its menu-bar menu and delete Strip.app.
  2. Remove Strip from System Settings → Privacy & Security → Accessibility.
  3. Remove Strip from Screen & System Audio Recording in the same settings area.
  4. Contributors who ran make setup-signing may delete Strip Dev from the login keychain.

If macOS retains stale records:

tccutil reset Accessibility io.github.shidil.strip
tccutil reset ScreenCapture io.github.shidil.strip

Known Limitations

  • The private identity symbol can change or disappear in a future macOS release.
  • Mac App Store distribution is not supported.
  • Terminal applications resize in character-cell increments and may visibly step.
  • Applications can impose minimum or fixed window sizes that differ from requested layouts.
  • Multi-display and Spaces behavior is deliberately limited.
  • Privacy grants are tied to bundle identity and code signing.

Development

License

Strip is available under the MIT License. Vendored development tooling retains its own license; see THIRD_PARTY_NOTICES.md.

About

Strip is an experimental macOS window manager that arranges application windows on a horizontal "film strip": the focused window stays centered while its neighbors flow past it.

Topics

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Contributors

Languages