id = "processing" name = "Processing" homepage = "https://processing.org" # processing.org's own og:description, first sentence. description = "Processing is a flexible software sketchbook and a language for learning how to code." icon = "theSVG:processing" # `processing-java` is the command-line tool the IDE installs and the word a # user types; org.processing.app is the bundle identifier of the macOS app, from # the Homebrew cask's quit stanza (https://formulae.brew.sh/api/cask/processing.json). executables = ["processing-java"] [installation] macos_bundle_ids = ["org.processing.app"] [dotfiles] # The settings folder is `getSettingsFolder()` in the project's own source, # app/src/processing/app/platform/*Platform.java on the processing4 main branch: # # MacPlatform new File(getLibraryFolder(), "Processing") where # getLibraryFolder() is System.getProperty("user.home") + # "/Library" — so ~/Library/Processing, which is neither # Application Support nor .config and has no named root. # LinuxPlatform getenv("XDG_CONFIG_HOME") if set and existing, else # new File(getHomeDir(), ".config"), then "processing". # WindowsPlatform getAppDataPath() + APP_NAME, i.e. %APPDATA%\Processing. # # The second and third are $XDG_CONFIG_HOME-or-~/.config and %APPDATA%, which # is what [configHome] names; Processing reads the variable itself, so the # named root is right rather than a hard-coded ~/.config. macOS takes the # MacPlatform branch instead, so a Mac simply has no [configHome]/processing # and a consumer skips it. # # The sketchbook — where libraries, modes and tools are installed — is a # different directory (getDefaultSketchbookFolder(): ~/Documents/Processing on # macOS) and is not settings. paths = [ "~/Library/Processing/", "[configHome]/processing/", ] # Recent.java: `static final String FILENAME = "recent.txt"` opened through # Base.getSettingsFile — the list of recently opened sketches, which is one # machine's history rather than a preference. exclude = [ "~/Library/Processing/recent.txt", "[configHome]/processing/recent.txt", ] # Editor font, theme, compilation and update settings. No account, no # credential. secret = [] # preferences.txt is Preferences.java's `PREFS_FILE`, a flat `key=value` file, # so a prefix rule reads it and needs no `format`. `sketchbook.path.four` (and # `sketchbook.path.three` before it, which Preferences.java still reads for # migration) is the absolute path to the sketchbook directory on this machine — # ~/Documents/Processing by default, but the setting exists precisely because # people move it. Both spellings are named, or the line would only be held back # on macOS. [[dotfiles.machine_lines]] file = ["~/Library/Processing/preferences.txt", "[configHome]/processing/preferences.txt"] match = { prefix = ["sketchbook.path"] }