id = "stay" name = "Stay" homepage = "https://cordlessdog.com/stay/" description = "Keeps windows in their place." # Stay ships no command-line tool, so `detect` carries the bundle identifier — # the one the Homebrew cask's zap stanza names # (https://formulae.brew.sh/api/cask/stay.json: # ~/Library/Preferences/com.cordlessdog.Stay.plist). executables = [] platforms = ["macos"] [installation] macos_bundle_ids = ["com.cordlessdog.Stay"] [dotfiles] # The description is Cordless Dog's own subtitle for the app on its page. # # Stay is a direct download rather than an App Store app, so its settings land # in the ordinary preferences domain. The same page describes what that domain # holds: "Move your windows to where you want them, then have Stay store them", # and "Stay can store a set of windows for every combination of displays that # you use with your computer" — the stored window sets, plus the shortcuts and # the automatic-restore behaviour, are the app's whole configuration. # # [preferences] is ~/Library/Preferences; the entry is macOS-only, so there is # no other platform for that root to stand for. paths = ["[preferences]/com.cordlessdog.Stay.plist"] # The cask's zap list also names ~/Library/Application Support/com.cordlessdog.Stay # and ~/Library/Application Support/Stay. Neither Cordless Dog's page nor # anything else the author of this entry could check says what those hold, so # they are neither listed as config nor claimed to be state. exclude = [] # No whole-file credential. Stay is a paid direct download, but nothing in the # preferences domain above is a credential end to end. secret = [] # No machine_lines. The stored window sets are keyed by display arrangement, so # they land on a Mac with the same monitors and are ignored on one without — # which is Stay's own design rather than something to hold back. A property # list has no matcher in this schema in any case: `format` covers toml, yaml # and json only.