id = "popclip" name = "PopClip" homepage = "https://www.popclip.app" # popclip.app's own description meta tag. description = "Instant text actions for macOS" # The app icon at the largest size popclip.app publishes. icon = "https://www.popclip.app/icon512.png" # PopClip ships no command-line tool, so `detect` carries the bundle # identifier. Its own developer documentation at https://www.popclip.app/dev/ # names `com.pilotmoon.popclip` — both as the reserved extension-identifier # prefix and in the `defaults write com.pilotmoon.popclip …` commands it # documents — and this Mac's copy agrees: /Applications/PopClip.app's # Info.plist gives CFBundleIdentifier com.pilotmoon.popclip. executables = [] platforms = ["macos"] [installation] macos_bundle_ids = ["com.pilotmoon.popclip"] [dotfiles] # Two locations, both from https://www.popclip.app/dev/: # # * settings are "the standard macOS preferences system, referenced by the # bundle identifier" — the `defaults write com.pilotmoon.popclip # LoadUnsignedExtensions …` examples there read and write # ~/Library/Preferences/com.pilotmoon.popclip.plist, which is # [preferences]. Verified on this Mac: that domain holds SearchURL, # AlternateSearchURL, CombinedItemOrder, PopEnabled and one # `enable-action-…` key per action. # * extensions are installed to ~/Library/Application Support/PopClip/ # Extensions, which is [appData]. Verified here too: that directory holds # the .popclipext bundles and the Extensions.plist that records their order. # # The extensions are the user's action set — snippets they wrote and packages # they chose — which is the reason to carry PopClip to another Mac at all. paths = [ "[preferences]/com.pilotmoon.popclip.plist", "[appData]/PopClip/Extensions/", ] # The sibling ~/Library/Application Support/PopClip/_LaunchData is per-install # bookkeeping, and it is outside the Extensions directory named above, so there # is nothing to carve out of what is. # Nothing PopClip stores is a credential; extensions that need one keep it in # the login keychain, which the preferences window presents as a password field. secret = [] # No machine_lines: this is a property list, which `match` cannot read — # `format` covers toml, yaml and json only. The machine-local keys in the # domain are the learned-behaviour caches (LearnedAppsAndCursors, the # NMCursor…Hashes lists, UsageCount) and LastRunOSVersion; a consumer that can # read plists should drop those itself.