Repository navigation
Building from source
A Swift Package (Swift 6, macOS 14+). Requires Xcode or the Xcode command line tools.
git clone https://github.com/roypadina/window-organizer.git
cd window-organizer
swift test # core logic tests (Swift Testing)
Scripts/package_app.sh # writes dist/Window Organizer.app
open "dist/Window Organizer.app"| Path | What |
|---|---|
Sources/WindowOrganizerCore |
Pure, tested logic: preferences, shortcuts, target rules, action policy |
Sources/WindowOrganizerApp |
SwiftUI MenuBarExtra app: global shortcuts (Carbon hot keys), Accessibility window actions, settings UI, login item |
Tests/WindowOrganizerCoreTests |
Tests for the core |
Assets/icons |
SVG sources plus generated AppIcon.icns and template menubar.png / menubar@2x.png
|
Scripts/package_app.sh |
Builds the .app bundle |
Scripts/make_icons.sh |
Regenerates icons from the SVGs (needs brew install librsvg) |
-
swift build -c release. - Creates
dist/Window Organizer.appwith the binary,Info.plist(LSUIElement, so no Dock icon) and the icons. - Signs it:
CODE_SIGN_IDENTITYif set, else the first code-signing identity in your keychain, else ad-hoc.
Ad-hoc signing changes the code hash on every build, so macOS forgets the Accessibility grant after each rebuild. A self-signed code-signing certificate (Keychain Access → Certificate Assistant → Create a Certificate, type Code Signing) keeps the grant across rebuilds.
RELEASE=1 Scripts/package_app.shSigns the same way and writes dist/Window-Organizer.zip plus its SHA-256, the asset the Homebrew cask downloads.
swift run WindowOrganizerApp is fine for quick checks, but it is not a bundled app: it has no bundled icons (falls back to an SF Symbol), and Accessibility and Launch at Login behave differently. Use the packaged app for real testing.
See CONTRIBUTING.md.
Window Organizer · MIT © Roy Padina · Support on Ko-fi ☕