id = "textexpander" name = "TextExpander" homepage = "https://textexpander.com" description = "The most popular text replacement and shortcut app: generate custom word, sentence, and paragraph text with keyboard shortcuts." # The app icon, the apple-touch-icon on textexpander.com. icon = "https://textexpander.com/wp-content/themes/textexpander-web/images/icons/apple-touch-icon-180x180.png" # TextExpander ships no command-line tool, so `detect` is the bundle # identifier. Verified on this Mac: `osascript -e 'id of app "TextExpander"'` # answers com.smileonmymac.textexpander, and `defaults domains` lists both it # and the com.smileonmymac.textexpander.helper agent beside it. executables = [] # TextExpander also has a Windows build, but only the macOS locations below # were verified, so the entry claims macOS alone. platforms = ["macos"] [installation] macos_bundle_ids = ["com.smileonmymac.textexpander"] [dotfiles] # Verified on a Mac with TextExpander installed, and against the Homebrew cask # `textexpander`, whose zap stanza names ~/Library/Application Support/ # TextExpander and ~/Library/Preferences/com.smileonmymac.textexpander.plist. # # The support directory is where the snippets live. On this machine it holds # Settings.textexpander — an XML property list whose keys are the snippet # library itself (groupsTE2, snippetsTE2, and per-snippet abbreviation, # abbreviationMode, plainText, snippetType, label) together with the app's # settings (Auditory Feedback, Restore Pasteboard, Status Item, # suggestAbbreviations, expandAfterMode, autoCapExceptions) — and # TESettings.textexpanderlocal/, a directory of per-group index_*.xml and # group_*.xml files with statistics_*.xml beside them. paths = [ "[appData]/TextExpander/", "[preferences]/com.smileonmymac.textexpander.plist", ] # Settings Backup.textexpander and the Backups/ directory beside it are the # automatic snapshots TextExpander keeps of earlier snippet libraries — this # machine's copies are named "TextExpander Backup 2015-12-14-2317461_8 # .textexpbackup" and so on. They are history of the file that is already # being carried, so they stay behind. exclude = [ "[appData]/TextExpander/Backups/", "[appData]/TextExpander/Settings Backup.textexpander", ] # No whole-file credential among the paths above. The keys in # Settings.textexpander are snippets and preferences; the account TextExpander # signs in to for its own snippet sync is not represented by a file here. secret = [] # No machine_lines: these are property lists, and `match` only understands # line-oriented files, TOML, YAML and JSON. The machine-local keys in # Settings.textexpander are the usage counters — Characters Saved, Snippet # Count, useCount, lastUsed, the Statistics and DeviceStats dictionaries, Date # Installed — which a consumer that can read plists should drop itself.