TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻譯準備中
正在載入完整 README。 以下為已儲存的摘錄。
A macOS window switcher focused on a single purpose: switching between apps and windows in a more natural way. Inspired by Contexts, it keeps the core idea and enhances the parts that matter most.
When using the native Cmd+Tab to switch applications, you cannot see the windows and can only cycle through apps one by one. The native Cmd+` within the current app is also a slow trial-and-error process. AppWindow turns both into something visible, previewable, and mouse-friendly.檢視完整 README ↗A macOS window switcher focused on a single purpose: switching between apps and windows in a more natural way. Inspired by Contexts, it keeps the core idea and enhances the parts that matter most.
When using the native Cmd+Tab to switch applications, you cannot see the windows and can only cycle through apps one by one. The native `Cmd+`` within the current app is also a slow trial-and-error process. AppWindow turns both into something visible, previewable, and mouse-friendly.
Hold Cmd and press Tab; a horizontal icon panel appears in the center of the screen with a size close to the native one:
Tab / → moves forward, Shift+Tab / ← / ` moves backward↑ / ↓ selects a window from the highlighted app's window list; releasing Cmd switches directly to that windowHold Cmd and press `; a popup appears in the center of the screen showing all windows of the current app at about 70% of the screen height:
` immediately switches to the next window: keep pressing to cycle through all windows in order; the window you just left is moved to the end of the cycle and returns only after the rest are visited; release and press again to continue moving forward↑ / ↓ moves one row and switches immediatelyEsc or clicking outside the panel dismisses it (Cmd+`` switch actions are not undone, matching native behavior; Cmd+Tab` is canceled before release)⌘,) hosts configurable trigger keys, the full panel geometry (icon size, row height, panel width, spacing, corner radii, fonts — with live previews), glass mode & blur strength, launch at login, the update channel and diagnostics. While open, the Settings window itself appears in the Cmd+Tab listDownload the latest DMG from Releases, open it, and drag AppWindow into Applications.
On first launch, enable AppWindow in
System Settings → Privacy & Security → Accessibility(the menu bar icon can open this directly).
If the first launch shows: “Cannot verify that AppWindow.app is malicious” (on macOS 15/26, the right-click “Open” option is no longer available), allow it once using either method below:
xattr -dr com.apple.quarantine /Applications/AppWindow.appAppWindow updates itself in place via Sparkle: use Check for Updates… in the menu bar, or leave the default automatic update check on (once a day). New versions are downloaded, verified and installed inside the app.
Pre-release builds go to a beta channel; opt in via Settings → 更新 → 参与测试版. Stable releases are always visible regardless of the channel setting.
Versions installed before auto-update was introduced need one manual install of the latest DMG; after that, updates happen in-app. The Gatekeeper prompt above only affects that first manual install.
Requirements: macOS 14+, Xcode Command Line Tools.
./scripts/build-app.sh # Build and assemble AppWindow.app
./scripts/package-dmg.sh # Optional: package a DMG
The first build fetches the Sparkle dependency via SPM (requires access to GitHub).
activate behavior; in some cases it may not jump to the target window's Space_AXUIElementGetWindow to match CGWindow and AXWindow objects (resolved dynamically via dlsym; if unavailable, it falls back to window bounds matching); therefore it cannot be submitted to the App StoreSwift + AppKit (built with SPM). Core components:
Sources/Context/
├── main.swift # Entry point; accessory app (no Dock icon)
├── AppDelegate.swift # Menu bar, accessibility permission guidance, and polling
├── EventTapManager.swift # CGEventTap + keyboard state machine (core interaction logic)
├── AppSwitcherPanel.swift # Cmd+Tab icon panel + window list (multi-screen)
├── SwitchPanel.swift # Cmd+` window list panel (multi-screen)
├── WindowListService.swift # Window enumeration: CGWindowList z-order + AX titles/references
├── WindowActivator.swift # Window activation: minimize/restore → AXRaise → activate
├── ListScrolling.swift # Continuous list-scrolling controller + wheel response container
├── AXHelpers.swift # Swift wrapper around AX APIs + private symbol isolation
├── UpdaterManager.swift # Auto-update: Sparkle wrapper, mirror fallback, update UI activation
├── UpdateMenuState.swift # Update menu state machine (checking / up to date / available)
├── Shortcut.swift # Configurable trigger keys: model, matching, validation, storage
├── ShortcutRecorderView.swift # Shortcut recording session + recorder control
├── SettingsWindowController.swift # Settings window (behavior / updates / general / shortcuts)
├── LoginItemManager.swift # Launch at login (SMAppService)
└── Theme.swift # Global panel appearance settings
GPL-3.0 — any project that uses or modifies this software must also remain open source under GPL-3.0. Third-party: Sparkle (MIT; license text ships in ThirdPartyLicenses/Sparkle.txt).