id = "spectacle" name = "Spectacle" homepage = "https://www.spectacleapp.com/" # The project's own repository description. description = "Spectacle allows you to organize your windows without using a mouse." # The app icon, from the asset catalogue in the project's repository. # spectacleapp.com is a parked domain now. icon = "https://raw.githubusercontent.com/eczarny/spectacle/master/Spectacle/Resources/Images.xcassets/Spectacle.appiconset/Spectacle%20256.png" # Spectacle ships no command-line tool, so `detect` carries the bundle # identifier. The Homebrew cask names it in `uninstall quit:` — # com.divisiblebyzero.Spectacle — and zaps the matching preferences domain # (Casks/s/spectacle.rb). executables = [] platforms = ["macos"] [installation] macos_bundle_ids = ["com.divisiblebyzero.Spectacle"] [dotfiles] # Development stopped in 2018 — the cask has been `disable!`d since 2024-12-16 # as discontinued — but the app still runs and its files are where it left # them. # # The shortcuts live in a JSON file the project writes itself. # Spectacle/Sources/SpectacleShortcutJSONStorage.m resolves it as # `findOrCreateSpectacleDirectory()` — the user's Application Support directory # with "Spectacle" appended — plus the component "Shortcuts.json", and # `storeShortcuts:` writes the whole shortcut list there. That is the file to # carry: `jsonObjectFromShortcuts` in the same file makes it an array of # objects with exactly two keys, "shortcut_name" and "shortcut_key_binding", # one per window action. # # The preferences domain beside it, named in the cask's zap stanza, holds the # rest of the settings — the login item and the alternate-shortcut behaviour. # # [appData] and [preferences] are ~/Library/Application Support and # ~/Library/Preferences; the entry is macOS-only, so there is no other platform # for those roots to stand for. paths = [ "[appData]/Spectacle/Shortcuts.json", "[preferences]/com.divisiblebyzero.Spectacle.plist", ] # The other home locations in the same zap stanza are caches and crash-reporter # state (~/Library/Caches/com.divisiblebyzero.Spectacle, # ~/Library/Caches/com.plausiblelabs.crashreporter.data/ # com.divisiblebyzero.Spectacle, ~/Library/Cookies/ # com.divisiblebyzero.Spectacle.binarycookies), none of them below a path # above. exclude = [] # No credential: Spectacle is free and open source, and the two files above are # keyboard shortcuts and window-action settings. secret = [] # No machine_lines: a keyboard shortcut is precisely what a user wants on the # next Mac — Shortcuts.json holds nothing else — and the preferences file is a # property list, which has no matcher in this schema in any case.