id = "spacelauncher" name = "SpaceLauncher" homepage = "https://spacelauncherapp.com/" # The product's own words, the og:description on its homepage. description = "Hold Space, press a key, run an action. SpaceLauncher puts your everyday Mac shortcuts behind the Space key." # The app icon at the largest size spacelauncherapp.com publishes. icon = "https://spacelauncherapp.com/icons/favicon-152.png" # SpaceLauncher ships no command-line tool, so `detect` carries the bundle # identifier. The Homebrew cask's zap stanza is built around it — # ~/Library/Application Support/name.guoc.SpaceLauncher, ~/Library/Preferences/ # name.guoc.SpaceLauncher.*plist (Casks/s/spacelauncher.rb). executables = [] platforms = ["macos"] [installation] macos_bundle_ids = ["name.guoc.SpaceLauncher"] [dotfiles] # SpaceLauncher's homepage says the setup is a file rather than an opaque # store: "Your setup is not locked away. You can export your config as # documented, plain-text JSON, then parse it, migrate it, diff it, or script # against it", and its /references/config-format.html documents the shape — # key bindings, the actions they run, per-application scope rules, the command # tree and the disabled-application list. # # The vendor does not publish where that file sits, so the locations come from # the Homebrew cask's `zap trash:`, which is the app's own uninstall list: # ~/Library/Application Support/name.guoc.SpaceLauncher (the app's directory) # and ~/Library/Preferences/name.guoc.SpaceLauncher.*plist (its preferences # domains — the glob is the cask's, and it is kept here because a helper # process gets a domain of its own). [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. # # The support directory is listed whole rather than by file name, because the # vendor does not publish the names inside it — which is also why the fixture # holds only the preferences domain: inventing a file name there would put a # guess where this catalog states facts. paths = [ "[appData]/name.guoc.SpaceLauncher/", "[preferences]/name.guoc.SpaceLauncher*.plist", ] # The homepage says SpaceLauncher "keeps local rolling, timestamped backups, so # a damaged configuration can be recovered". Those backups are per-machine # history of the same configuration, but the vendor does not name the directory # they go in, and an exclude that names the wrong path silently matches # nothing — so they are described here rather than guessed at. The cask's other # home locations, ~/Library/Caches/name.guoc.SpaceLauncher and # ~/Library/HTTPStorages/name.guoc.SpaceLauncher, are outside the paths above. # No whole-file credential: SpaceLauncher has no account — its own security # note is that "What you type stays on your Mac" — and its configuration is # bindings and the actions they run. A licence key for the paid version could # land in either location above; it is not a file of its own, and a property # list cannot be matched field-wise by this schema. secret = [] # No machine_lines: the bindings and their actions are the whole reason to # carry the configuration. An Open File action names an absolute path, but it # is one field of an action object among many, and the vendor's config-format # reference does not fix a key path stable enough to name.