TabLift is a lightweight macOS utility that restores minimized apps instantly when switching with ⌘+Tab
.
By default, macOS ignores minimized windows unless you hold the Option
key.
TabLift fixes this behavior, making app switching intuitive and seamless — no extra keys needed.
🌐 Visit the TabLift website → tablift.mihai.sh
⌘+Tab
TabLift uses public Apple APIs to monitor when you activate a different app (via NSWorkspace
notifications).
As soon as an app is activated, TabLift checks for minimized windows via the Accessibility API (AXUIElement
).
If a minimized window is found, it is instantly restored for you.
Technical flow:
AppMonitor
listens for app activation events.WindowManager
inspects the app's window list. If any window is minimized, it sets the AXMinimized
attribute to false
.PermissionsService
prompts you to grant Accessibility permissions, which are required for window management.git clone https://github.com/turtle-key/TabLift.git
cd TabLift
open TabLift.xcodeproj
Then build and run in Xcode.
You'll be prompted to grant Accessibility permission.
The website sources are in the website/
folder, powered by SvelteKit.
To run locally:
cd website
npm install
npm run dev
TabLift needs Accessibility Access to restore minimized windows.
You'll be prompted on first launch, or you can enable it manually:
System Settings → Privacy & Security → Accessibility → Enable TabLift
TabLift has a simple About window with helpful links:
Know more about TabLift • Buy me a coffee • Source code on GitHub • Email support
TabLift/
├── Sources/
│ ├── TabLiftApp.swift // Main app entry point and delegate
│ ├── AppMonitor.swift // Listens for app switch events
│ ├── WindowManager.swift // Restores minimized windows
│ ├── PermissionsService.swift // Handles Accessibility permissions
│ └── AboutView.swift // SwiftUI About & links window
├── website/ // SvelteKit-powered website
│ ├── src/
│ ├── static/
│ ├── package.json
│ └── ... (SvelteKit structure)
├── Images/
│ ├── banner.png
│ └── app-screenshot.png
├── Assets.xcassets/
├── Info.plist
└── TabLift.xcodeproj
Component | Technology |
---|---|
macOS App Language | Swift |
macOS UI Frameworks | SwiftUI (About window), AppKit (core behavior) |
macOS APIs Used | Accessibility API (AXUIElement ), NSWorkspace |
Platform | macOS 12.0 Monterey and later |
macOS Packaging | .app bundle (no kernel extensions) |
Website Framework | SvelteKit (Svelte, TypeScript, Vite) |
Website Styling | CSS, HTML5 |
Website Hosting | Static (exportable, deploy anywhere) |
Other | Open Graph, Twitter Cards, SEO meta, robots.txt |
Pull requests are welcome!
If you have suggestions, bug reports, or want to help improve TabLift:
git checkout -b feature/your-feature-name
MIT License
© Mihai-Eduard Ghețu – See LICENSE
for details.
Built for macOS power users frustrated with Apple's default app switching.
Thanks to the accessibility community and everyone who contributed feedback(my voices).
TabLift – Lift your windows. Free your workflow.