id = "rectangle" name = "Rectangle" homepage = "https://rectangleapp.com" description = "A window management app for macOS based on Spectacle, written in Swift." # The app icon its own site publishes; the 2x file beside it is too large to # cache. icon = "https://rectangleapp.com/assets/images/mac512pts1x.png" # Rectangle ships no command-line tool, so `detect` carries the bundle # identifier. It is the one the app's own README uses — `defaults delete # com.knollsoft.Rectangle`, `tccutil reset All com.knollsoft.Rectangle` — and # the Homebrew cask quits the same identifier # (https://formulae.brew.sh/api/cask/rectangle.json). executables = [] platforms = ["macos"] [installation] macos_bundle_ids = ["com.knollsoft.Rectangle"] [dotfiles] # README.md, "Configuration file location": "The configuration for Rectangle is # stored using NSUserDefaults, meaning it is stored in the following location: # ~/Library/Preferences/com.knollsoft.Rectangle.plist". That is the [preferences] # base directory, and this entry is macOS-only, so there is no other platform # for it to stand for. # # ~/Library/Application Support/Rectangle is deliberately left out. The same # README describes it as an inbox rather than a store: "Upon launch, Rectangle # will load a config file at # ~/Library/Application Support/Rectangle/RectangleConfig.json if it is present # and will rename that file with a time/date stamp so that it isn't read on # subsequent launches." A file the app renames out of the way after reading it # once is not where the configuration lives. paths = ["[preferences]/com.knollsoft.Rectangle.plist"] # The remaining home locations in the cask's zap stanza are caches and WebKit # state (~/Library/Caches/com.knollsoft.Rectangle, # ~/Library/HTTPStorages/com.knollsoft.Rectangle, # ~/Library/WebKit/com.knollsoft.Rectangle), none of them under the path above. exclude = [] # No credential: Rectangle is free and open source, and the domain holds window # actions, their keyboard shortcuts and the snap-area settings. secret = [] # No machine_lines: the shortcuts, gaps and snap behaviour are the whole reason # to carry the domain. macOS property lists have no matcher in this schema # anyway — `format` covers toml, yaml and json only — so a plist entry is paths # and nothing else.