id = "iterm2" name = "iTerm2" homepage = "https://iterm2.com" description = "iTerm2 is a replacement for Terminal and the successor to iTerm." icon = "SimpleIcons:iterm2" platforms = ["macos"] # iTerm2 installs no command-line tool of its own — the `it2*` utilities are # shell-integration scripts the user opts into — so `detect` carries the bundle # identifier. It is the domain the FAQ names below and the one the Homebrew cask # zaps. executables = [] [installation] macos_bundle_ids = ["com.googlecode.iterm2"] [dotfiles] # https://iterm2.com/faq.html: "Preferences, including profiles, are stored in # ~/Library/Preferences/com.googlecode.iterm2.plist", which is [preferences]. # # https://iterm2.com/documentation-dynamic-profiles.html: Dynamic Profiles are # JSON files in "~/Library/Application Support/iTerm2/DynamicProfiles" — "When # iTerm2 starts, it creates a folder" there and reloads every file in it # whenever the contents change. # # https://iterm2.com/documentation-scripting.html: user scripts live in # "~/Library/Application Support/iTerm2/Scripts", checked at startup for .scpt # and .app entries, with "~/Library/Application Support/iTerm/Scripts" (no 2) as # the legacy fallback, so both are listed. # # [appData] is ~/Library/Application Support and [preferences] is # ~/Library/Preferences; the entry is macOS-only, so there is no other platform # for those roots to stand for. # # https://iterm2.com/documentation-preferences-general.html also offers "Load # settings from a custom folder or URL", which relocates the settings to a # directory the user picks — a location no consumer can resolve from here, so it # is not listed. paths = [ "[preferences]/com.googlecode.iterm2.plist", "[appData]/iTerm2/DynamicProfiles/", "[appData]/iTerm2/Scripts/", "[appData]/iTerm/Scripts/", ] # Nothing above is a credential file. iTerm2's password manager keeps its # entries in the macOS keychain rather than in the preference domain, and the # neighbouring com.googlecode.iterm2.private.plist — named in the Homebrew # cask's zap stanza — is deliberately not listed here. secret = [] # No machine_lines: profiles, key mappings, colour presets and fonts are the # whole point of carrying this domain, and a property list has no matcher in # this schema — `format` covers toml, yaml and json only. The per-machine keys # in it (window frames, the Sparkle update bookkeeping) are for a consumer that # can read plists to drop itself.