id = "slate" name = "Slate" homepage = "https://github.com/jigish/slate" # The project's own repository description. description = "A window management application (replacement for Divvy/SizeUp/ShiftIt)" # The app icon from the icons directory in the project's own repository. icon = "https://raw.githubusercontent.com/jigish/slate/master/icons/IMG/icon_256.png" # Slate ships no command-line tool, so `detect` carries the bundle identifier. # Slate/Slate-Info.plist sets CFBundleIdentifier to # com.slate.${PRODUCT_NAME:rfc1034identifier}, which for the "Slate" target is # com.slate.Slate. executables = [] platforms = ["macos"] [installation] macos_bundle_ids = ["com.slate.Slate"] [dotfiles] # The README says it twice, and the source agrees. README, "Configuring Slate": # "Slate is configured using a '.slate' file in the current user's home # directory", and, above it, "You may now use a '.slate.js' file to configure # slate using JavaScript". Slate/SlateConfig.m loads exactly those two literals # at startup — `[self loadConfigFileWithPath:@"~/.slate"]` and # `[self loadConfigFileWithPath:@"~/.slate.js"]` — falling back to the bundled # default.slate when neither exists. Both are joined to the home directory, so # both stay literal. paths = [ "~/.slate", "~/.slate.js", ] # Snapshots are not config: SlateConfig.m writes them to # `[sharedFM applicationSupportDirectory]` under the name SNAPSHOTS_FILE # ("snapshots"), and they are window arrangements Slate captured at runtime for # one screen layout, not something the user wrote. They are not below either # path above, so nothing needs carving out. exclude = [] # A window-management config: bindings, layouts and screen-configuration # defaults. No credential file. secret = [] # No machine_lines. A `default` directive names a screen configuration — # `default myLayout resolutions:1440x900;1680x1050` — which is arguably about # one desk rather than one user, but Slate's whole point is that those layouts # follow the monitors, and a rule holding them back would strip the part of the # file the user spent the most time on. The absolute paths that appear in # `shell` operations sit inside a command string rather than in a keyword of # their own, so no prefix can name them either. # No side_effect = false: Slate reads the config once at launch (and again on # "Load Config"), so a rewrite mid-session is not picked up on its own.