id = "terminal" name = "Terminal" homepage = "https://support.apple.com/guide/terminal/welcome/mac" description = "Use Terminal on your Mac to interact with macOS using the command line." # Terminal ships no command-line tool of its own — the shell it hosts is not # Terminal — so `detect` carries the bundle identifier. Verified on this # machine: `defaults domains` lists com.apple.Terminal, and # /System/Applications/Utilities/Terminal.app is that identifier's app. executables = [] platforms = ["macos"] [installation] macos_bundle_ids = ["com.apple.Terminal"] [dotfiles] # The description is trimmed from Apple's own summary of the Terminal User # Guide ("Learn how to use Terminal on your Mac to interact with macOS using # the command line"). # # Terminal keeps its settings in an ordinary preferences domain rather than in # a file of its own. Read back on this machine, ~/Library/Preferences/ # com.apple.Terminal.plist is where the user's setup lives: "Window Settings" # is the dictionary of profiles — each with its font, colours, cursor, window # size and shell — while "Default Window Settings" and "Man Page Window # Settings" name which of them Terminal opens for a new window and for a man # page. Terminal's Settings ▸ Profiles ▸ Export writes one profile out as a # .terminal file, which is the same property list for a single profile. # # [preferences] is ~/Library/Preferences; the entry is macOS-only, so there is # no other platform for that root to stand for. paths = ["[preferences]/com.apple.Terminal.plist"] exclude = [] # Nothing in the domain is a credential: Terminal authenticates to nothing and # holds no keys — anything an ssh session needs belongs to apps/ssh.toml. secret = [] # No machine_lines: profiles, colours, fonts and the startup shell are exactly # what a user wants on their next Mac. The same domain also carries per-machine # leftovers — the saved window frames, "CommandHistory" from the Open Command # panel, "LastTerminalStartTime" — but a property list has no matcher in this # schema, since `format` covers toml, yaml and json only.