SwiftShift

Sweet window management for macOS

406
18
Swift

SwiftShift.app Github all releases

Sweet window management for macOS

https://github.com/pablopunk/SwiftShift/assets/4324982/8f0566b9-d18e-462e-8d74-52bcf6c95f52

Installation

There are several ways:

  • 💰 Buy it at swiftshift.app (pay what you want)
  • 🍺 Install it with homebrew brew install --cask swift-shift
  • ⬇️ Download the latest release on Github
  • 🚀 Clone it and build it yourself

Features

  • Launch at login
  • Hide menubar icon
  • Focus on window
  • Smart resizing with quadrants
  • Ignore custom apps

Quadrants

https://github.com/pablopunk/SwiftShift/assets/4324982/5aac5bab-ad87-43c1-b2fe-fd55077f56f6

Contributing

You can either use Xcode (be careful with signing) or build it
directly from the command line:

Build and run from the command line

make run

Accessibility permissions running locally

Make sure you don’t have Swift Shift running already. If you have 2 versions of Swift Shift, only one will get
Accessibility permissions. To fix it:

  • Quit all Swift Shift instances
  • Remove Swift Shift from the System Preferences > Security & Privacy > Accessibility
  • Run the app you want to test
  • Enable Accessibility permissions

I’m open to PRs and requests. If you are looking for something to do, take a look at the issues marked as help wanted.

Release

  1. Xcode > Swift Shift > General > Targets > Swift Shift > bump the version and the build (e.g. 0.26.0)
  2. Xcode > Product > Archive
  3. Select latest build and Distribute App > Direct Distribution > Distribute
  4. Wait for Apple service to notarize it
  5. Go to Distribute App again > Distribute > Export > Save it somewhere in your computer
  6. make appcast "path/to/the/folder/you/saved" (make sure to use quotes)
  7. Create a new branch, create a commit, tag it and push it
export APP_VERSION=0.26.0
git checkout -b "$APP_VERSION"
git commit -am "$APP_VERSION"
git tag "$APP_VERSION"
git push
git push --tags
  1. Create a PR from that branch and merge it
  2. Draft a new release and select that new tag
  3. Click “Generate release notes”
  4. Upload the SwiftShift.zip from the folder you saved the notarized app
  5. Publish release

header
header